From 284468108511fd96ebb71f95cc043c9c8463eb8a Mon Sep 17 00:00:00 2001 From: Tim Trevor Date: Thu, 14 May 2026 18:48:01 +0100 Subject: [PATCH] Regenerate checkout extension docs JSON for 2025-10 Run yarn docs:checkout 2025-10 to refresh generated_docs_data.json and generated_docs_data_v2.json. Co-authored-by: Cursor --- .../generated/generated_docs_data.json | 16782 +++++++++++++--- .../generated/generated_docs_data_v2.json | 2963 +-- 2 files changed, 15707 insertions(+), 4038 deletions(-) diff --git a/packages/ui-extensions/docs/surfaces/checkout/generated/generated_docs_data.json b/packages/ui-extensions/docs/surfaces/checkout/generated/generated_docs_data.json index 5f7cb9c08c..ce183fa21e 100644 --- a/packages/ui-extensions/docs/surfaces/checkout/generated/generated_docs_data.json +++ b/packages/ui-extensions/docs/surfaces/checkout/generated/generated_docs_data.json @@ -565,7 +565,7 @@ "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true } ], @@ -2301,7 +2301,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." } ], "value": "export interface Docs_Standard_AnalyticsApi\n extends Pick {}" @@ -2309,24 +2309,24 @@ "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -2367,10 +2367,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" } } } @@ -2529,7 +2529,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -2544,7 +2544,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" } } }, @@ -2564,7 +2564,7 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_AttributesApi\n extends Pick {}" @@ -2634,7 +2634,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -2649,7 +2649,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -2803,7 +2803,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -2818,7 +2818,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -2936,7 +2936,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -2951,7 +2951,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" } } }, @@ -3203,7 +3203,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -3256,7 +3256,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -3539,7 +3539,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -3592,7 +3592,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -4075,11 +4075,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -4143,7 +4143,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -4154,7 +4154,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -4425,11 +4425,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -4493,7 +4493,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -4504,7 +4504,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -4707,11 +4707,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -4775,7 +4775,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -4786,7 +4786,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -5099,7 +5099,7 @@ "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." } ], "value": "export interface Docs_Standard_CartInstructionsApi\n extends Pick {}" @@ -5783,7 +5783,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -5798,7 +5798,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLineCost": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -6404,7 +6404,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -6419,7 +6419,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLineCost": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -6917,7 +6917,7 @@ "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_CartLinesApi\n extends Pick {}" @@ -7023,7 +7023,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -7038,7 +7038,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLine": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -7753,7 +7753,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -7763,7 +7763,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } } }, @@ -7887,7 +7887,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -7902,7 +7902,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLine": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -8617,7 +8617,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -8627,7 +8627,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } } }, @@ -8647,7 +8647,7 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." + "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." } ], "value": "export interface Docs_CartLineItem_CartLinesApi\n extends Pick {}" @@ -8795,7 +8795,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -8810,7 +8810,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLineCost": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -9416,7 +9416,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -9431,7 +9431,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLineCost": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -10037,7 +10037,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -10052,7 +10052,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLineCost": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -10599,7 +10599,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." } ], "value": "export interface Docs_Standard_CheckoutTokenApi\n extends Pick {}" @@ -10760,17 +10760,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -11154,7 +11154,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/docs.ts", @@ -11270,10 +11270,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -11482,31 +11482,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -11691,31 +11691,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -11902,7 +11902,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." } ], "value": "export interface Docs_Standard_DeliveryApi\n extends Pick {}" @@ -13698,7 +13698,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -13713,7 +13713,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLineCost": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -14975,7 +14975,7 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option." + "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -14989,10 +14989,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details." + "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" + "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -18258,10 +18258,10 @@ "syntaxKind": "PropertySignature", "name": "isLocationFormVisible", "value": "SubscribableSignalLike", - "description": "Whether the location search form is currently visible to the buyer. Use this to conditionally render UI that depends on the buyer actively searching for pickup points." + "description": "Reflects which view was active when the extension loaded. When the buyer moves to the next view, the extension restarts with the current value rather than updating in place." } ], - "value": "export interface PickupPointListApi {\n /**\n * Whether the location search form is currently visible to the buyer.\n * Use this to conditionally render UI that depends on the buyer actively\n * searching for pickup points.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" + "value": "export interface PickupPointListApi {\n /**\n * Reflects which view was active when the extension loaded. When the\n * buyer moves to the next view, the extension restarts with the\n * current value rather than updating in place.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -18380,17 +18380,17 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location." + "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/pickup/pickup-location-item.ts", "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details." + "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n */\n isTargetSelected: SubscribableSignalLike;\n}" + "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -19547,7 +19547,7 @@ "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_DiscountsApi\n extends Pick {}" @@ -20009,7 +20009,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." } ], "value": "export interface Docs_Standard_ExtensionMetaApi\n extends Pick {}" @@ -20017,7 +20017,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20043,7 +20043,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20091,7 +20091,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -20107,7 +20107,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -20164,7 +20164,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20200,7 +20200,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20226,7 +20226,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20274,7 +20274,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -20290,7 +20290,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -20347,7 +20347,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20383,7 +20383,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20409,7 +20409,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20457,7 +20457,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -20473,7 +20473,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -20530,7 +20530,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20629,7 +20629,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -20826,7 +20826,7 @@ "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_GiftCardsApi\n extends Pick {}" @@ -20914,7 +20914,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -20924,7 +20924,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } } }, @@ -21121,7 +21121,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -21131,7 +21131,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } } } @@ -21187,14 +21187,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/docs.ts", "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." } ], "value": "export interface Docs_Standard_LocalizationApi\n extends Pick {}" @@ -21202,7 +21202,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -21238,21 +21238,21 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -21280,18 +21280,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -21709,7 +21709,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" } @@ -21988,7 +21988,7 @@ "UseLocalizedFieldGeneratedType": { "filePath": "src/surfaces/checkout/preact/localized-fields.ts", "name": "UseLocalizedFieldGeneratedType", - "description": "Returns the current localized field or undefined for the specified localized field key and re-renders your component if the value changes.", + "description": "Returns the current localized field or undefined for the specified localized field key and re-renders your component if the value changes.\n\nReturns `undefined` when no field is configured for the buyer's country.", "isPublicDocs": true, "params": [ { @@ -22740,7 +22740,7 @@ "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_MetafieldsApi\n extends Pick {}" @@ -23004,7 +23004,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -23014,7 +23014,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } } }, @@ -23296,7 +23296,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -23306,7 +23306,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } } } @@ -23462,7 +23462,7 @@ "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_NoteApi\n extends Pick {}" @@ -23543,7 +23543,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -23553,7 +23553,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } } }, @@ -23652,7 +23652,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -23662,7 +23662,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } } } @@ -23791,7 +23791,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -23802,7 +23802,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } } }, @@ -23872,14 +23872,14 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/docs.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." } ], "value": "export interface Docs_Standard_PaymentOptionsApi\n extends Pick<\n StandardApi,\n 'availablePaymentOptions' | 'selectedPaymentOptions'\n > {}" @@ -24139,7 +24139,7 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." } ], "value": "export interface Docs_Standard_QueryApi extends Pick {}" @@ -24258,7 +24258,7 @@ "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." } ], "value": "export interface Docs_Standard_SessionTokenApi\n extends Pick {}" @@ -24266,7 +24266,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -24302,7 +24302,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -24564,7 +24564,7 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." } ], "value": "export interface Docs_Standard_ShopApi extends Pick {}" @@ -24572,7 +24572,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -24612,11 +24612,11 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" } } }, @@ -24642,7 +24642,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -24682,11 +24682,11 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" } } } @@ -24742,7 +24742,7 @@ "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." } ], "value": "export interface Docs_Standard_StorageApi\n extends Pick {}" @@ -24750,21 +24750,21 @@ "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -24774,7 +24774,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" } } }, @@ -24800,21 +24800,21 @@ "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -24824,7 +24824,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" } } } @@ -25443,49 +25443,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -25498,7 +25498,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -25565,7 +25565,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -25580,7 +25580,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -26433,7 +26433,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -26443,7 +26443,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -26623,7 +26623,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -26633,7 +26633,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -26894,7 +26894,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -26904,7 +26904,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -26982,7 +26982,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -26992,7 +26992,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -27572,7 +27572,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27586,7 +27586,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27607,7 +27607,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27644,7 +27644,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27665,7 +27665,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27686,7 +27686,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27694,7 +27694,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -27713,14 +27713,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27734,7 +27734,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27763,21 +27763,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27799,14 +27799,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27828,29 +27828,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -27891,10 +27891,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -28067,10 +28067,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -28369,7 +28369,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -28422,7 +28422,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "StoreCreditAccount": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -28681,11 +28681,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -28749,7 +28749,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -28760,7 +28760,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -28981,17 +28981,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -29078,31 +29078,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -29640,7 +29640,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -29666,7 +29666,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -29714,7 +29714,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -29730,7 +29730,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -29749,7 +29749,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -29764,7 +29764,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -29800,7 +29800,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -29968,14 +29968,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -30003,18 +30003,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -30215,7 +30215,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -30238,7 +30238,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -30278,30 +30278,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -30311,7 +30311,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -30338,10 +30338,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." + "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." } ], - "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" + "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" }, "RedeemableApi": { "filePath": "src/surfaces/checkout/api/redeemable/redeemable.ts", @@ -30606,10 +30606,10 @@ "syntaxKind": "PropertySignature", "name": "isLocationFormVisible", "value": "SubscribableSignalLike", - "description": "Whether the location search form is currently visible to the buyer. Use this to conditionally render UI that depends on the buyer actively searching for pickup points." + "description": "Reflects which view was active when the extension loaded. When the buyer moves to the next view, the extension restarts with the current value rather than updating in place." } ], - "value": "export interface PickupPointListApi {\n /**\n * Whether the location search form is currently visible to the buyer.\n * Use this to conditionally render UI that depends on the buyer actively\n * searching for pickup points.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" + "value": "export interface PickupPointListApi {\n /**\n * Reflects which view was active when the extension loaded. When the\n * buyer moves to the next view, the extension restarts with the\n * current value rather than updating in place.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" }, "ShippingOptionItemApi": { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -30622,7 +30622,7 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option." + "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -30636,10 +30636,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details." + "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" + "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" }, "ShippingOptionItemRenderMode": { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -30784,7 +30784,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -30795,7 +30795,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" }, "AllowedComponents": { "filePath": "src/surfaces/checkout/shared.ts", @@ -30815,17 +30815,17 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location." + "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/pickup/pickup-location-item.ts", "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details." + "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n */\n isTargetSelected: SubscribableSignalLike;\n}" + "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n}" }, "AnyThankYouComponent": { "filePath": "src/surfaces/checkout/shared.ts", @@ -31490,49 +31490,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -31545,7 +31545,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -31612,7 +31612,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -31627,7 +31627,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -32480,7 +32480,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -32490,7 +32490,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -32670,7 +32670,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -32680,7 +32680,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -32941,7 +32941,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -32951,7 +32951,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -33029,7 +33029,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -33039,7 +33039,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -33619,7 +33619,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33633,7 +33633,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33654,7 +33654,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33691,7 +33691,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33712,7 +33712,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33733,7 +33733,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33741,7 +33741,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -33760,14 +33760,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33781,7 +33781,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33810,21 +33810,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33846,14 +33846,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33875,29 +33875,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -33938,10 +33938,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -34114,10 +34114,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -34416,7 +34416,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -34469,7 +34469,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "StoreCreditAccount": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -34728,11 +34728,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -34796,7 +34796,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -34807,7 +34807,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -35028,17 +35028,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -35125,31 +35125,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -35687,7 +35687,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -35713,7 +35713,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -35761,7 +35761,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -35777,7 +35777,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -35796,7 +35796,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -35811,7 +35811,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -35847,7 +35847,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -36015,14 +36015,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -36050,18 +36050,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -36262,7 +36262,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -36285,7 +36285,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -36325,30 +36325,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -36358,7 +36358,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -36385,10 +36385,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." + "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." } ], - "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" + "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" }, "RedeemableApi": { "filePath": "src/surfaces/checkout/api/redeemable/redeemable.ts", @@ -36653,10 +36653,10 @@ "syntaxKind": "PropertySignature", "name": "isLocationFormVisible", "value": "SubscribableSignalLike", - "description": "Whether the location search form is currently visible to the buyer. Use this to conditionally render UI that depends on the buyer actively searching for pickup points." + "description": "Reflects which view was active when the extension loaded. When the buyer moves to the next view, the extension restarts with the current value rather than updating in place." } ], - "value": "export interface PickupPointListApi {\n /**\n * Whether the location search form is currently visible to the buyer.\n * Use this to conditionally render UI that depends on the buyer actively\n * searching for pickup points.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" + "value": "export interface PickupPointListApi {\n /**\n * Reflects which view was active when the extension loaded. When the\n * buyer moves to the next view, the extension restarts with the\n * current value rather than updating in place.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" }, "ShippingOptionItemApi": { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -36669,7 +36669,7 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option." + "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -36683,10 +36683,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details." + "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" + "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" }, "ShippingOptionItemRenderMode": { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -36831,7 +36831,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -36842,7 +36842,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" }, "AllowedComponents": { "filePath": "src/surfaces/checkout/shared.ts", @@ -36862,17 +36862,17 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location." + "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/pickup/pickup-location-item.ts", "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details." + "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n */\n isTargetSelected: SubscribableSignalLike;\n}" + "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n}" }, "AnyThankYouComponent": { "filePath": "src/surfaces/checkout/shared.ts", @@ -37704,7 +37704,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", @@ -37725,7 +37725,7 @@ "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of 5 minutes.\n\nIf the previous token expires, this value will reflect a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of 5 minutes.\n\nIf the previous token expires, this value will reflect a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", @@ -37776,29 +37776,29 @@ ] } ], - "value": "export interface AddressAutocompleteStandardApi<\n Target extends\n | 'purchase.address-autocomplete.suggest'\n | 'purchase.address-autocomplete.format-suggestion',\n> {\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` is not supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.*\n */\n appMetafields: AppMetafieldEntry[];\n\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The custom attributes left by the customer to the merchant, either in their cart or during checkout.\n */\n attributes: Attribute[] | undefined;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: MailingAddress | undefined;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: CheckoutToken | undefined;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/apis/localization)\n * Type 'RunnableExtensionInstance' is not assignable to type 'ExtensionInstance'.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n * They are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n */\n metafields: Metafield[];\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of 5 minutes.\n *\n * If the previous token expires, this value will reflect a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/apis/settings#examples) for more information.\n *\n * > Note: The settings are empty when an extension is being installed in the [checkout editor](https://help.shopify.com/en/manual/checkout-settings/checkout-extensibility/checkout-editor).\n\n */\n settings: ExtensionSettings;\n\n /**\n * The proposed customer shipping address. During the information step,\n * the address updates when the field is committed (on change) rather than every keystroke.\n *\n * > Note: An address value is only present if delivery is required. Otherwise, the subscribable value is undefined.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: MailingAddress | undefined;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The runner version being used for the extension.\n *\n * @example 'unstable'\n */\n version: Version;\n}" + "value": "export interface AddressAutocompleteStandardApi<\n Target extends\n | 'purchase.address-autocomplete.suggest'\n | 'purchase.address-autocomplete.format-suggestion',\n> {\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` is not supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.*\n */\n appMetafields: AppMetafieldEntry[];\n\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The custom attributes left by the customer to the merchant, either in their cart or during checkout.\n */\n attributes: Attribute[] | undefined;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: MailingAddress | undefined;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: CheckoutToken | undefined;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/apis/localization)\n * Type 'RunnableExtensionInstance' is not assignable to type 'ExtensionInstance'.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n * They are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n */\n metafields: Metafield[];\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of 5 minutes.\n *\n * If the previous token expires, this value will reflect a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/apis/settings#examples) for more information.\n *\n * > Note: The settings are empty when an extension is being installed in the [checkout editor](https://help.shopify.com/en/manual/checkout-settings/checkout-extensibility/checkout-editor).\n\n */\n settings: ExtensionSettings;\n\n /**\n * The proposed customer shipping address. During the information step,\n * the address updates when the field is committed (on change) rather than every keystroke.\n *\n * > Note: An address value is only present if delivery is required. Otherwise, the subscribable value is undefined.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: MailingAddress | undefined;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The runner version being used for the extension.\n *\n * @example 'unstable'\n */\n version: Version;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -37839,10 +37839,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "AppMetafieldEntry": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -37972,7 +37972,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -37987,7 +37987,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "MailingAddress": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -38343,7 +38343,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -38358,7 +38358,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -38394,7 +38394,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -38643,7 +38643,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -38666,7 +38666,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -38706,30 +38706,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -38739,7 +38739,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -38912,10 +38912,10 @@ "syntaxKind": "PropertySignature", "name": "suggestions", "value": "AddressAutocompleteSuggestion[]", - "description": "An array of address autocomplete suggestions to show to the buyer.\n\n> Note: Only the first five suggestions will be displayed to the buyer." + "description": "An array of address autocomplete suggestions to show to the buyer. Checkout displays up to five address suggestions. Return no more than five. Additional suggestions are ignored." } ], - "value": "export interface AddressAutocompleteSuggestOutput {\n /**\n * An array of address autocomplete suggestions to show to the buyer.\n *\n * > Note: Only the first five suggestions will be displayed to the buyer.\n */\n suggestions: AddressAutocompleteSuggestion[];\n}" + "value": "export interface AddressAutocompleteSuggestOutput {\n /**\n * An array of address autocomplete suggestions to show to the buyer.\n * Checkout displays up to five address suggestions. Return no more\n * than five. Additional suggestions are ignored.\n */\n suggestions: AddressAutocompleteSuggestion[];\n}" }, "AddressAutocompleteSuggestion": { "filePath": "src/surfaces/checkout/api/address-autocomplete/shared.ts", @@ -39277,7 +39277,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", @@ -39298,7 +39298,7 @@ "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of 5 minutes.\n\nIf the previous token expires, this value will reflect a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of 5 minutes.\n\nIf the previous token expires, this value will reflect a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", @@ -39349,29 +39349,29 @@ ] } ], - "value": "export interface AddressAutocompleteStandardApi<\n Target extends\n | 'purchase.address-autocomplete.suggest'\n | 'purchase.address-autocomplete.format-suggestion',\n> {\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` is not supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.*\n */\n appMetafields: AppMetafieldEntry[];\n\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The custom attributes left by the customer to the merchant, either in their cart or during checkout.\n */\n attributes: Attribute[] | undefined;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: MailingAddress | undefined;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: CheckoutToken | undefined;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/apis/localization)\n * Type 'RunnableExtensionInstance' is not assignable to type 'ExtensionInstance'.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n * They are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n */\n metafields: Metafield[];\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of 5 minutes.\n *\n * If the previous token expires, this value will reflect a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/apis/settings#examples) for more information.\n *\n * > Note: The settings are empty when an extension is being installed in the [checkout editor](https://help.shopify.com/en/manual/checkout-settings/checkout-extensibility/checkout-editor).\n\n */\n settings: ExtensionSettings;\n\n /**\n * The proposed customer shipping address. During the information step,\n * the address updates when the field is committed (on change) rather than every keystroke.\n *\n * > Note: An address value is only present if delivery is required. Otherwise, the subscribable value is undefined.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: MailingAddress | undefined;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The runner version being used for the extension.\n *\n * @example 'unstable'\n */\n version: Version;\n}" + "value": "export interface AddressAutocompleteStandardApi<\n Target extends\n | 'purchase.address-autocomplete.suggest'\n | 'purchase.address-autocomplete.format-suggestion',\n> {\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` is not supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.*\n */\n appMetafields: AppMetafieldEntry[];\n\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The custom attributes left by the customer to the merchant, either in their cart or during checkout.\n */\n attributes: Attribute[] | undefined;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: MailingAddress | undefined;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: CheckoutToken | undefined;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/apis/localization)\n * Type 'RunnableExtensionInstance' is not assignable to type 'ExtensionInstance'.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n * They are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n */\n metafields: Metafield[];\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of 5 minutes.\n *\n * If the previous token expires, this value will reflect a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/apis/settings#examples) for more information.\n *\n * > Note: The settings are empty when an extension is being installed in the [checkout editor](https://help.shopify.com/en/manual/checkout-settings/checkout-extensibility/checkout-editor).\n\n */\n settings: ExtensionSettings;\n\n /**\n * The proposed customer shipping address. During the information step,\n * the address updates when the field is committed (on change) rather than every keystroke.\n *\n * > Note: An address value is only present if delivery is required. Otherwise, the subscribable value is undefined.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: MailingAddress | undefined;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The runner version being used for the extension.\n *\n * @example 'unstable'\n */\n version: Version;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -39412,10 +39412,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "AppMetafieldEntry": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -39545,7 +39545,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -39560,7 +39560,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "MailingAddress": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -39916,7 +39916,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -39931,7 +39931,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -39967,7 +39967,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -40216,7 +40216,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -40239,7 +40239,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -40279,30 +40279,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -40312,7 +40312,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -40389,49 +40389,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -40444,7 +40444,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -40511,7 +40511,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -40526,7 +40526,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -41379,7 +41379,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -41389,7 +41389,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -41569,7 +41569,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -41579,7 +41579,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -41840,7 +41840,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -41850,7 +41850,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -41928,7 +41928,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -41938,7 +41938,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -42525,7 +42525,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42539,7 +42539,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42560,7 +42560,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42597,7 +42597,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42618,7 +42618,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42639,7 +42639,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42647,7 +42647,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -42666,14 +42666,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42687,7 +42687,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42716,21 +42716,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42752,14 +42752,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42781,29 +42781,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -42844,10 +42844,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -43061,10 +43061,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -43278,7 +43278,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -43293,7 +43293,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -43644,7 +43644,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -43697,7 +43697,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -43979,11 +43979,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -44047,7 +44047,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -44058,7 +44058,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -44279,17 +44279,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -44376,31 +44376,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -45092,7 +45092,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -45118,7 +45118,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -45166,7 +45166,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -45182,7 +45182,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -45201,7 +45201,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -45216,7 +45216,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -45252,7 +45252,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -45816,14 +45816,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -45851,18 +45851,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -46063,7 +46063,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -46322,7 +46322,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -46362,30 +46362,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -46395,7 +46395,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -46472,49 +46472,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -46527,7 +46527,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -46594,7 +46594,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -46609,7 +46609,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -47462,7 +47462,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -47472,7 +47472,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -47652,7 +47652,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -47662,7 +47662,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -47923,7 +47923,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -47933,7 +47933,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -48011,7 +48011,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -48021,7 +48021,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -48608,7 +48608,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48622,7 +48622,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48643,7 +48643,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48680,7 +48680,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48701,7 +48701,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48722,7 +48722,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48730,7 +48730,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -48749,14 +48749,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48770,7 +48770,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48799,21 +48799,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48835,14 +48835,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48864,29 +48864,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -48927,10 +48927,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -49144,10 +49144,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -49361,7 +49361,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -49376,7 +49376,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -49727,7 +49727,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -49780,7 +49780,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -50062,11 +50062,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -50130,7 +50130,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -50141,7 +50141,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -50362,17 +50362,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -50459,31 +50459,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -51175,7 +51175,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -51201,7 +51201,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -51249,7 +51249,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -51265,7 +51265,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -51284,7 +51284,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -51299,7 +51299,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -51335,7 +51335,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -51899,14 +51899,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -51934,18 +51934,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -52146,7 +52146,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -52405,7 +52405,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -52445,30 +52445,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -52478,7 +52478,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -52555,10 +52555,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." + "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." } ], - "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" + "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -52703,7 +52703,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -52718,7 +52718,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLineCost": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -53216,49 +53216,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -53271,7 +53271,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -53338,7 +53338,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -53353,7 +53353,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -54206,7 +54206,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -54216,7 +54216,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -54396,7 +54396,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -54406,7 +54406,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -54667,7 +54667,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -54677,7 +54677,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -54755,7 +54755,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -54765,7 +54765,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -55352,7 +55352,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55366,7 +55366,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55387,7 +55387,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55424,7 +55424,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55445,7 +55445,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55466,7 +55466,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55474,7 +55474,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -55493,14 +55493,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55514,7 +55514,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55543,21 +55543,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55579,14 +55579,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55608,29 +55608,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55671,10 +55671,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -55888,10 +55888,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -56105,7 +56105,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -56120,7 +56120,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -56471,7 +56471,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -56524,7 +56524,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -56806,11 +56806,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -56874,7 +56874,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -56885,7 +56885,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -57106,17 +57106,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -57203,31 +57203,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -57919,7 +57919,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -57945,7 +57945,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -57993,7 +57993,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -58009,7 +58009,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -58028,7 +58028,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -58043,7 +58043,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -58079,7 +58079,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -58643,14 +58643,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -58678,18 +58678,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -58890,7 +58890,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -59149,7 +59149,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -59189,30 +59189,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -59222,7 +59222,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -59299,49 +59299,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -59354,7 +59354,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -59421,7 +59421,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -59436,7 +59436,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -60289,7 +60289,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -60299,7 +60299,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -60479,7 +60479,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -60489,7 +60489,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -60750,7 +60750,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -60760,7 +60760,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -60838,7 +60838,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -60848,7 +60848,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -61435,7 +61435,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61449,7 +61449,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61470,7 +61470,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61507,7 +61507,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61528,7 +61528,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61549,7 +61549,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61557,7 +61557,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -61576,14 +61576,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61597,7 +61597,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61626,21 +61626,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61662,14 +61662,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61691,29 +61691,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -61754,10 +61754,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -61971,10 +61971,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -62188,7 +62188,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -62203,7 +62203,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -62554,7 +62554,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -62607,7 +62607,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -62889,11 +62889,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -62957,7 +62957,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -62968,7 +62968,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -63189,17 +63189,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -63286,31 +63286,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -64002,7 +64002,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -64028,7 +64028,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -64076,7 +64076,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -64092,7 +64092,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -64111,7 +64111,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -64126,7 +64126,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -64162,7 +64162,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -64726,14 +64726,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -64761,18 +64761,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -64973,7 +64973,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -65232,7 +65232,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -65272,30 +65272,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -65305,7 +65305,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -65382,49 +65382,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -65437,7 +65437,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -65504,7 +65504,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -65519,7 +65519,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -66372,7 +66372,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -66382,7 +66382,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -66562,7 +66562,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -66572,7 +66572,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -66833,7 +66833,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -66843,7 +66843,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -66921,7 +66921,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -66931,7 +66931,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -67518,7 +67518,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67532,7 +67532,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67553,7 +67553,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67590,7 +67590,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67611,7 +67611,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67632,7 +67632,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67640,7 +67640,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -67659,14 +67659,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67680,7 +67680,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67709,21 +67709,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67745,14 +67745,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67774,29 +67774,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -67837,10 +67837,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -68054,10 +68054,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -68271,7 +68271,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -68286,7 +68286,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -68637,7 +68637,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -68690,7 +68690,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -68972,11 +68972,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -69040,7 +69040,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -69051,7 +69051,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -69272,17 +69272,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -69369,31 +69369,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -70085,7 +70085,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -70111,7 +70111,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -70159,7 +70159,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -70175,7 +70175,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -70194,7 +70194,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -70209,7 +70209,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -70245,7 +70245,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -70809,14 +70809,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -70844,18 +70844,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -71056,7 +71056,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -71315,7 +71315,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -71355,30 +71355,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -71388,7 +71388,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -71465,49 +71465,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -71520,7 +71520,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -71587,7 +71587,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -71602,7 +71602,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -72455,7 +72455,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -72465,7 +72465,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -72645,7 +72645,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -72655,7 +72655,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -72916,7 +72916,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -72926,7 +72926,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -73004,7 +73004,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -73014,7 +73014,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -73601,7 +73601,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73615,7 +73615,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73636,7 +73636,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73673,7 +73673,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73694,7 +73694,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73715,7 +73715,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73723,7 +73723,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -73742,14 +73742,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73763,7 +73763,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73792,21 +73792,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73828,14 +73828,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73857,29 +73857,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -73920,10 +73920,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -74137,10 +74137,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -74354,7 +74354,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -74369,7 +74369,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -74720,7 +74720,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -74773,7 +74773,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -75055,11 +75055,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -75123,7 +75123,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -75134,7 +75134,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -75355,17 +75355,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -75452,31 +75452,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -76168,7 +76168,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -76194,7 +76194,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -76242,7 +76242,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -76258,7 +76258,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -76277,7 +76277,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -76292,7 +76292,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -76328,7 +76328,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -76892,14 +76892,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -76927,18 +76927,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -77139,7 +77139,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -77398,7 +77398,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -77438,30 +77438,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -77471,7 +77471,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -77548,49 +77548,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -77603,7 +77603,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -77670,7 +77670,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -77685,7 +77685,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -78538,7 +78538,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -78548,7 +78548,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -78728,7 +78728,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -78738,7 +78738,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -78999,7 +78999,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -79009,7 +79009,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -79087,7 +79087,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -79097,7 +79097,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -79684,7 +79684,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79698,7 +79698,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79719,7 +79719,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79756,7 +79756,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79777,7 +79777,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79798,7 +79798,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79806,7 +79806,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -79825,14 +79825,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79846,7 +79846,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79875,21 +79875,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79911,14 +79911,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -79940,29 +79940,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -80003,10 +80003,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -80220,10 +80220,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -80437,7 +80437,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -80452,7 +80452,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -80803,7 +80803,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -80856,7 +80856,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -81138,11 +81138,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -81206,7 +81206,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -81217,7 +81217,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -81438,17 +81438,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -81535,31 +81535,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -82251,7 +82251,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -82277,7 +82277,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -82325,7 +82325,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -82341,7 +82341,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -82360,7 +82360,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -82375,7 +82375,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -82411,7 +82411,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -82975,14 +82975,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -83010,18 +83010,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -83222,7 +83222,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -83481,7 +83481,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -83521,30 +83521,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -83554,7 +83554,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -83631,49 +83631,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -83686,7 +83686,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -83753,7 +83753,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -83768,7 +83768,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -84621,7 +84621,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -84631,7 +84631,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -84811,7 +84811,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -84821,7 +84821,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -85082,7 +85082,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -85092,7 +85092,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -85170,7 +85170,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -85180,7 +85180,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -85767,7 +85767,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85781,7 +85781,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85802,7 +85802,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85839,7 +85839,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85860,7 +85860,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85881,7 +85881,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85889,7 +85889,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -85908,14 +85908,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85929,7 +85929,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85958,21 +85958,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -85994,14 +85994,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -86023,29 +86023,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -86086,10 +86086,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -86303,10 +86303,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -86520,7 +86520,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -86535,7 +86535,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -86886,7 +86886,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -86939,7 +86939,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -87221,11 +87221,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -87289,7 +87289,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -87300,7 +87300,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -87521,17 +87521,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -87618,31 +87618,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -88334,7 +88334,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -88360,7 +88360,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -88408,7 +88408,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -88424,7 +88424,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -88443,7 +88443,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -88458,7 +88458,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -88494,7 +88494,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -89058,14 +89058,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -89093,18 +89093,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -89305,7 +89305,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -89564,7 +89564,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -89604,30 +89604,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -89637,7 +89637,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -89714,49 +89714,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -89769,7 +89769,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -89836,7 +89836,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -89851,7 +89851,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -90704,7 +90704,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -90714,7 +90714,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -90894,7 +90894,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -90904,7 +90904,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -91165,7 +91165,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -91175,7 +91175,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -91253,7 +91253,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -91263,7 +91263,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -91850,7 +91850,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -91864,7 +91864,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -91885,7 +91885,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -91922,7 +91922,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -91943,7 +91943,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -91964,7 +91964,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -91972,7 +91972,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -91991,14 +91991,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -92012,7 +92012,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -92041,21 +92041,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -92077,14 +92077,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -92106,29 +92106,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -92169,10 +92169,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -92386,10 +92386,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -92603,7 +92603,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -92618,7 +92618,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -92969,7 +92969,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -93022,7 +93022,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -93304,11 +93304,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -93372,7 +93372,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -93383,7 +93383,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -93604,17 +93604,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -93701,31 +93701,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -94417,7 +94417,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -94443,7 +94443,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -94491,7 +94491,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -94507,7 +94507,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -94526,7 +94526,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -94541,7 +94541,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -94577,7 +94577,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -95141,14 +95141,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -95176,18 +95176,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -95388,7 +95388,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -95647,7 +95647,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -95687,30 +95687,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -95720,7 +95720,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -95797,49 +95797,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -95852,7 +95852,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -95919,7 +95919,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -95934,7 +95934,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -96787,7 +96787,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -96797,7 +96797,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -96977,7 +96977,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -96987,7 +96987,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -97248,7 +97248,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -97258,7 +97258,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -97336,7 +97336,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -97346,7 +97346,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -97933,7 +97933,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -97947,7 +97947,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -97968,7 +97968,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98005,7 +98005,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98026,7 +98026,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98047,7 +98047,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98055,7 +98055,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -98074,14 +98074,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98095,7 +98095,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98124,21 +98124,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98160,14 +98160,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98189,29 +98189,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98252,10 +98252,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -98469,10 +98469,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -98686,7 +98686,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -98701,7 +98701,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -99052,7 +99052,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -99105,7 +99105,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -99387,11 +99387,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -99455,7 +99455,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -99466,7 +99466,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -99687,17 +99687,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -99784,31 +99784,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -100500,7 +100500,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -100526,7 +100526,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -100574,7 +100574,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -100590,7 +100590,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -100609,7 +100609,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -100624,7 +100624,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -100660,7 +100660,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -101224,14 +101224,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -101259,18 +101259,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -101471,7 +101471,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -101730,7 +101730,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -101770,30 +101770,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -101803,7 +101803,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -101880,49 +101880,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -101935,7 +101935,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -102002,7 +102002,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -102017,7 +102017,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -102870,7 +102870,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -102880,7 +102880,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -103060,7 +103060,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -103070,7 +103070,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -103331,7 +103331,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -103341,7 +103341,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -103419,7 +103419,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -103429,7 +103429,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -104016,7 +104016,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104030,7 +104030,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104051,7 +104051,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104088,7 +104088,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104109,7 +104109,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104130,7 +104130,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104138,7 +104138,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -104157,14 +104157,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104178,7 +104178,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104207,21 +104207,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104243,14 +104243,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104272,29 +104272,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104335,10 +104335,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -104552,10 +104552,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -104769,7 +104769,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -104784,7 +104784,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -105135,7 +105135,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -105188,7 +105188,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -105470,11 +105470,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -105538,7 +105538,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -105549,7 +105549,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -105770,17 +105770,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -105867,31 +105867,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -106583,7 +106583,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -106609,7 +106609,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -106657,7 +106657,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -106673,7 +106673,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -106692,7 +106692,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -106707,7 +106707,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -106743,7 +106743,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -107307,14 +107307,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -107342,18 +107342,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -107554,7 +107554,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -107813,7 +107813,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -107853,30 +107853,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -107886,7 +107886,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -108024,49 +108024,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -108079,7 +108079,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -108146,7 +108146,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -108161,7 +108161,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -109014,7 +109014,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -109024,7 +109024,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -109204,7 +109204,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -109214,7 +109214,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -109475,7 +109475,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -109485,7 +109485,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -109563,7 +109563,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -109573,7 +109573,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -110160,7 +110160,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110174,7 +110174,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110195,7 +110195,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110232,7 +110232,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110253,7 +110253,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110274,7 +110274,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110282,7 +110282,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -110301,14 +110301,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110322,7 +110322,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110351,21 +110351,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110387,14 +110387,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110416,29 +110416,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110479,10 +110479,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -110696,10 +110696,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -110913,7 +110913,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -110928,7 +110928,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -111279,7 +111279,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -111332,7 +111332,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -111614,11 +111614,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -111682,7 +111682,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -111693,7 +111693,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -111914,17 +111914,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -112011,31 +112011,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -112727,7 +112727,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -112753,7 +112753,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -112801,7 +112801,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -112817,7 +112817,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -112836,7 +112836,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -112851,7 +112851,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -112887,7 +112887,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -113451,14 +113451,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -113486,18 +113486,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -113698,7 +113698,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -113957,7 +113957,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -113997,30 +113997,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -114030,7 +114030,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -114168,49 +114168,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -114223,7 +114223,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -114290,7 +114290,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -114305,7 +114305,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -115158,7 +115158,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -115168,7 +115168,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -115348,7 +115348,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -115358,7 +115358,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -115619,7 +115619,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -115629,7 +115629,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -115707,7 +115707,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -115717,7 +115717,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -116304,7 +116304,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116318,7 +116318,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116339,7 +116339,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116376,7 +116376,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116397,7 +116397,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116418,7 +116418,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116426,7 +116426,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -116445,14 +116445,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116466,7 +116466,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116495,21 +116495,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116531,14 +116531,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116560,29 +116560,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -116623,10 +116623,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -116840,10 +116840,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -117057,7 +117057,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -117072,7 +117072,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -117423,7 +117423,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -117476,7 +117476,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -117758,11 +117758,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -117826,7 +117826,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -117837,7 +117837,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -118058,17 +118058,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -118155,31 +118155,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -118871,7 +118871,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -118897,7 +118897,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -118945,7 +118945,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -118961,7 +118961,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -118980,7 +118980,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -118995,7 +118995,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -119031,7 +119031,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -119595,14 +119595,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -119630,18 +119630,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -119842,7 +119842,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -120101,7 +120101,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -120141,30 +120141,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -120174,7 +120174,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -120251,17 +120251,17 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location." + "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/pickup/pickup-location-item.ts", "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details." + "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n */\n isTargetSelected: SubscribableSignalLike;\n}" + "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -120696,49 +120696,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -120751,7 +120751,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -120818,7 +120818,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -120833,7 +120833,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -121686,7 +121686,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -121696,7 +121696,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -121876,7 +121876,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -121886,7 +121886,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -122147,7 +122147,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -122157,7 +122157,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -122235,7 +122235,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -122245,7 +122245,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -122832,7 +122832,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -122846,7 +122846,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -122867,7 +122867,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -122904,7 +122904,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -122925,7 +122925,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -122946,7 +122946,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -122954,7 +122954,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -122973,14 +122973,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -122994,7 +122994,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -123023,21 +123023,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -123059,14 +123059,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -123088,29 +123088,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -123151,10 +123151,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -123368,10 +123368,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -123585,7 +123585,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -123600,7 +123600,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -123951,7 +123951,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -124004,7 +124004,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -124286,11 +124286,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -124354,7 +124354,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -124365,7 +124365,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -124586,17 +124586,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -124683,31 +124683,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -125399,7 +125399,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -125425,7 +125425,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -125473,7 +125473,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -125489,7 +125489,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -125508,7 +125508,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -125523,7 +125523,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -125559,7 +125559,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -126123,14 +126123,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -126158,18 +126158,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -126370,7 +126370,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -126629,7 +126629,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -126669,30 +126669,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -126702,7 +126702,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -126779,10 +126779,10 @@ "syntaxKind": "PropertySignature", "name": "isLocationFormVisible", "value": "SubscribableSignalLike", - "description": "Whether the location search form is currently visible to the buyer. Use this to conditionally render UI that depends on the buyer actively searching for pickup points." + "description": "Reflects which view was active when the extension loaded. When the buyer moves to the next view, the extension restarts with the current value rather than updating in place." } ], - "value": "export interface PickupPointListApi {\n /**\n * Whether the location search form is currently visible to the buyer.\n * Use this to conditionally render UI that depends on the buyer actively\n * searching for pickup points.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" + "value": "export interface PickupPointListApi {\n /**\n * Reflects which view was active when the extension loaded. When the\n * buyer moves to the next view, the extension restarts with the\n * current value rather than updating in place.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -126840,49 +126840,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -126895,7 +126895,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -126962,7 +126962,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -126977,7 +126977,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -127830,7 +127830,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -127840,7 +127840,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -128020,7 +128020,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -128030,7 +128030,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -128291,7 +128291,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -128301,7 +128301,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -128379,7 +128379,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -128389,7 +128389,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -128976,7 +128976,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -128990,7 +128990,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129011,7 +129011,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129048,7 +129048,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129069,7 +129069,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129090,7 +129090,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129098,7 +129098,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -129117,14 +129117,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129138,7 +129138,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129167,21 +129167,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129203,14 +129203,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129232,29 +129232,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129295,10 +129295,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -129512,10 +129512,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -129729,7 +129729,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -129744,7 +129744,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -130095,7 +130095,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -130148,7 +130148,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -130430,11 +130430,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -130498,7 +130498,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -130509,7 +130509,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -130730,17 +130730,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -130827,31 +130827,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -131543,7 +131543,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -131569,7 +131569,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -131617,7 +131617,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -131633,7 +131633,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -131652,7 +131652,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -131667,7 +131667,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -131703,7 +131703,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -132267,14 +132267,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -132302,18 +132302,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -132514,7 +132514,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -132773,7 +132773,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -132813,30 +132813,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -132846,7 +132846,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -132923,10 +132923,10 @@ "syntaxKind": "PropertySignature", "name": "isLocationFormVisible", "value": "SubscribableSignalLike", - "description": "Whether the location search form is currently visible to the buyer. Use this to conditionally render UI that depends on the buyer actively searching for pickup points." + "description": "Reflects which view was active when the extension loaded. When the buyer moves to the next view, the extension restarts with the current value rather than updating in place." } ], - "value": "export interface PickupPointListApi {\n /**\n * Whether the location search form is currently visible to the buyer.\n * Use this to conditionally render UI that depends on the buyer actively\n * searching for pickup points.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" + "value": "export interface PickupPointListApi {\n /**\n * Reflects which view was active when the extension loaded. When the\n * buyer moves to the next view, the extension restarts with the\n * current value rather than updating in place.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -132984,49 +132984,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -133039,7 +133039,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -133106,7 +133106,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -133121,7 +133121,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -133974,7 +133974,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -133984,7 +133984,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -134164,7 +134164,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -134174,7 +134174,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -134435,7 +134435,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -134445,7 +134445,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -134523,7 +134523,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -134533,7 +134533,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -135120,7 +135120,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135134,7 +135134,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135155,7 +135155,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135192,7 +135192,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135213,7 +135213,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135234,7 +135234,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135242,7 +135242,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -135261,14 +135261,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135282,7 +135282,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135311,21 +135311,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135347,14 +135347,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135376,29 +135376,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135439,10 +135439,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -135656,10 +135656,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -135873,7 +135873,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -135888,7 +135888,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -136239,7 +136239,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -136292,7 +136292,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -136574,11 +136574,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -136642,7 +136642,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -136653,7 +136653,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -136874,17 +136874,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -136971,31 +136971,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -137687,7 +137687,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -137713,7 +137713,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -137761,7 +137761,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -137777,7 +137777,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -137796,7 +137796,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -137811,7 +137811,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -137847,7 +137847,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -138411,14 +138411,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -138446,18 +138446,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -138658,7 +138658,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -138917,7 +138917,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -138957,30 +138957,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -138990,7 +138990,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -139067,49 +139067,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -139122,7 +139122,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -139189,7 +139189,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -139204,7 +139204,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -140057,7 +140057,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -140067,7 +140067,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -140247,7 +140247,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -140257,7 +140257,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -140518,7 +140518,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -140528,7 +140528,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -140606,7 +140606,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -140616,7 +140616,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -141203,7 +141203,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141217,7 +141217,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141238,7 +141238,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141275,7 +141275,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141296,7 +141296,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141317,7 +141317,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141325,7 +141325,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -141344,14 +141344,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141365,7 +141365,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141394,21 +141394,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141430,14 +141430,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141459,29 +141459,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141522,10 +141522,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -141739,10 +141739,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -141956,7 +141956,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -141971,7 +141971,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -142322,7 +142322,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -142375,7 +142375,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -142657,11 +142657,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -142725,7 +142725,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -142736,7 +142736,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -142957,17 +142957,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -143054,31 +143054,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -143770,7 +143770,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -143796,7 +143796,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -143844,7 +143844,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -143860,7 +143860,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -143879,7 +143879,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -143894,7 +143894,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -143930,7 +143930,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -144494,14 +144494,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -144529,18 +144529,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -144741,7 +144741,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -145000,7 +145000,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -145040,30 +145040,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -145073,7 +145073,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -145150,49 +145150,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -145205,7 +145205,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -145272,7 +145272,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -145287,7 +145287,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -146140,7 +146140,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -146150,7 +146150,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -146330,7 +146330,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -146340,7 +146340,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -146601,7 +146601,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -146611,7 +146611,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -146689,7 +146689,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -146699,7 +146699,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -147286,7 +147286,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147300,7 +147300,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147321,7 +147321,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147358,7 +147358,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147379,7 +147379,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147400,7 +147400,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147408,7 +147408,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -147427,14 +147427,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147448,7 +147448,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147477,21 +147477,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147513,14 +147513,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147542,29 +147542,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -147605,10 +147605,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -147822,10 +147822,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -148039,7 +148039,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -148054,7 +148054,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -148405,7 +148405,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -148458,7 +148458,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -148740,11 +148740,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -148808,7 +148808,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -148819,7 +148819,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -149040,17 +149040,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -149137,31 +149137,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -149853,7 +149853,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -149879,7 +149879,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -149927,7 +149927,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -149943,7 +149943,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -149962,7 +149962,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -149977,7 +149977,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -150013,7 +150013,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -150577,14 +150577,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -150612,18 +150612,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -150824,7 +150824,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -151083,7 +151083,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -151123,30 +151123,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -151156,7 +151156,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -151233,7 +151233,7 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option." + "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -151247,10 +151247,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details." + "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" + "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -151560,49 +151560,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -151615,7 +151615,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -151682,7 +151682,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -151697,7 +151697,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -152550,7 +152550,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -152560,7 +152560,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -152740,7 +152740,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -152750,7 +152750,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -153011,7 +153011,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -153021,7 +153021,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -153099,7 +153099,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -153109,7 +153109,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -153696,7 +153696,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153710,7 +153710,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153731,7 +153731,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153768,7 +153768,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153789,7 +153789,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153810,7 +153810,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153818,7 +153818,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -153837,14 +153837,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153858,7 +153858,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153887,21 +153887,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153923,14 +153923,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -153952,29 +153952,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -154015,10 +154015,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -154232,10 +154232,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -154449,7 +154449,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -154464,7 +154464,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -154815,7 +154815,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -154868,7 +154868,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -155150,11 +155150,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -155218,7 +155218,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -155229,7 +155229,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -155450,17 +155450,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -155547,31 +155547,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -156263,7 +156263,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -156289,7 +156289,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -156337,7 +156337,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -156353,7 +156353,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -156372,7 +156372,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -156387,7 +156387,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -156423,7 +156423,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -156987,14 +156987,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -157022,18 +157022,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -157234,7 +157234,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -157493,7 +157493,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -157533,30 +157533,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -157566,7 +157566,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -157643,7 +157643,7 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option." + "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -157657,10 +157657,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details." + "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" + "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -157970,49 +157970,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -158025,7 +158025,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -158092,7 +158092,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -158107,7 +158107,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -158960,7 +158960,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -158970,7 +158970,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -159150,7 +159150,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -159160,7 +159160,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -159421,7 +159421,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -159431,7 +159431,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -159509,7 +159509,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -159519,7 +159519,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -160106,7 +160106,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160120,7 +160120,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160141,7 +160141,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160178,7 +160178,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160199,7 +160199,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160220,7 +160220,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160228,7 +160228,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -160247,14 +160247,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160268,7 +160268,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160297,21 +160297,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160333,14 +160333,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160362,29 +160362,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160425,10 +160425,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -160642,10 +160642,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -160859,7 +160859,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -160874,7 +160874,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -161225,7 +161225,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -161278,7 +161278,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -161560,11 +161560,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -161628,7 +161628,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -161639,7 +161639,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -161860,17 +161860,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -161957,31 +161957,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -162673,7 +162673,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -162699,7 +162699,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -162747,7 +162747,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -162763,7 +162763,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -162782,7 +162782,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -162797,7 +162797,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -162833,7 +162833,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -163397,14 +163397,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -163432,18 +163432,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -163644,7 +163644,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -163903,7 +163903,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -163943,30 +163943,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -163976,7 +163976,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -164977,49 +164977,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -165032,7 +165032,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -165099,7 +165099,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -165114,7 +165114,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -165967,7 +165967,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -165977,7 +165977,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -166157,7 +166157,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -166167,7 +166167,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -166428,7 +166428,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -166438,7 +166438,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -166516,7 +166516,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -166526,7 +166526,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -167113,7 +167113,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167127,7 +167127,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167148,7 +167148,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167185,7 +167185,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167206,7 +167206,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167227,7 +167227,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167235,7 +167235,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -167254,14 +167254,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167275,7 +167275,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167304,21 +167304,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167340,14 +167340,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167369,29 +167369,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167432,10 +167432,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -167649,10 +167649,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -167866,7 +167866,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -167881,7 +167881,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -168232,7 +168232,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -168285,7 +168285,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -168567,11 +168567,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -168635,7 +168635,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -168646,7 +168646,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -168867,17 +168867,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -168964,31 +168964,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -169680,7 +169680,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -169706,7 +169706,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -169754,7 +169754,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -169770,7 +169770,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -169789,7 +169789,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -169804,7 +169804,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -169840,7 +169840,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -170404,14 +170404,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -170439,18 +170439,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -170651,7 +170651,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -170910,7 +170910,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -170950,30 +170950,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -170983,7 +170983,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -171984,49 +171984,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -172039,7 +172039,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" }, "AttributeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -172106,7 +172106,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -172121,7 +172121,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "AttributeRemoveChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -172974,7 +172974,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -172984,7 +172984,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "DiscountCodeChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -173164,7 +173164,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -173174,7 +173174,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "MetafieldChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -173435,7 +173435,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -173445,7 +173445,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "NoteChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -173523,7 +173523,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -173533,7 +173533,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" }, "ShippingAddressUpdateChange": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -174120,7 +174120,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174134,7 +174134,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174155,7 +174155,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174192,7 +174192,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174213,7 +174213,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174234,7 +174234,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174242,7 +174242,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -174261,14 +174261,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174282,7 +174282,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174311,21 +174311,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174347,14 +174347,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174376,29 +174376,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174439,10 +174439,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -174656,10 +174656,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -174873,7 +174873,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -174888,7 +174888,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -175239,7 +175239,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -175292,7 +175292,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -175574,11 +175574,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -175642,7 +175642,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -175653,7 +175653,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -175874,17 +175874,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -175971,31 +175971,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -176687,7 +176687,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -176713,7 +176713,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -176761,7 +176761,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -176777,7 +176777,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -176796,7 +176796,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -176811,7 +176811,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -176847,7 +176847,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -177411,14 +177411,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -177446,18 +177446,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -177658,7 +177658,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -177917,7 +177917,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -177957,30 +177957,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -177990,7 +177990,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178127,7 +178127,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -178138,7 +178138,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } } }, @@ -178158,7 +178158,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178172,7 +178172,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178193,7 +178193,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178230,7 +178230,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178251,7 +178251,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178272,7 +178272,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178280,7 +178280,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -178299,14 +178299,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178320,7 +178320,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178349,21 +178349,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178385,14 +178385,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178414,29 +178414,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178477,10 +178477,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -178694,10 +178694,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -178911,7 +178911,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -178926,7 +178926,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -179277,7 +179277,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -179330,7 +179330,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -179612,11 +179612,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -179680,7 +179680,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -179691,7 +179691,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -179912,17 +179912,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -180009,31 +180009,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -180725,7 +180725,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -180751,7 +180751,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -180799,7 +180799,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -180815,7 +180815,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -180834,7 +180834,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -180849,7 +180849,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -180885,7 +180885,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -181449,14 +181449,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -181484,18 +181484,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -181696,7 +181696,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -181955,7 +181955,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -181995,30 +181995,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182028,7 +182028,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182165,7 +182165,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -182176,7 +182176,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } } }, @@ -182196,7 +182196,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182210,7 +182210,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182231,7 +182231,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182268,7 +182268,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182289,7 +182289,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182310,7 +182310,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182318,7 +182318,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -182337,14 +182337,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182358,7 +182358,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182387,21 +182387,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182423,14 +182423,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182452,29 +182452,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182515,10 +182515,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -182732,10 +182732,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182949,7 +182949,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -182964,7 +182964,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -183315,7 +183315,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -183368,7 +183368,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -183650,11 +183650,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -183718,7 +183718,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -183729,7 +183729,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -183950,17 +183950,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -184047,31 +184047,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -184763,7 +184763,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -184789,7 +184789,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -184837,7 +184837,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -184853,7 +184853,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -184872,7 +184872,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -184887,7 +184887,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -184923,7 +184923,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -185487,14 +185487,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -185522,18 +185522,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -185734,7 +185734,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -185993,7 +185993,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -186033,30 +186033,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -186066,7 +186066,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -186203,7 +186203,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -186214,7 +186214,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } } }, @@ -186234,10 +186234,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." + "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." } ], - "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" + "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -186382,7 +186382,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -186397,7 +186397,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "CartLineCost": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -186895,7 +186895,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -186909,7 +186909,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -186930,7 +186930,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -186967,7 +186967,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -186988,7 +186988,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -187009,7 +187009,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -187017,7 +187017,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -187036,14 +187036,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -187057,7 +187057,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -187086,21 +187086,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -187122,14 +187122,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -187151,29 +187151,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -187214,10 +187214,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -187431,10 +187431,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -187648,7 +187648,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -187663,7 +187663,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -188014,7 +188014,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -188067,7 +188067,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -188349,11 +188349,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -188417,7 +188417,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -188428,7 +188428,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -188649,17 +188649,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -188746,31 +188746,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -189462,7 +189462,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -189488,7 +189488,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -189536,7 +189536,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -189552,7 +189552,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -189571,7 +189571,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -189586,7 +189586,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -189622,7 +189622,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -190186,14 +190186,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -190221,18 +190221,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -190433,7 +190433,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -190692,7 +190692,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -190732,30 +190732,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -190765,7 +190765,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -190902,7 +190902,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -190913,7 +190913,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } } }, @@ -190933,7 +190933,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -190947,7 +190947,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -190968,7 +190968,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191005,7 +191005,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191026,7 +191026,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191047,7 +191047,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191055,7 +191055,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -191074,14 +191074,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191095,7 +191095,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191124,21 +191124,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191160,14 +191160,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191189,29 +191189,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191252,10 +191252,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -191469,10 +191469,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -191686,7 +191686,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -191701,7 +191701,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -192052,7 +192052,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -192105,7 +192105,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -192387,11 +192387,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -192455,7 +192455,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -192466,7 +192466,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -192687,17 +192687,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -192784,31 +192784,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -193500,7 +193500,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -193526,7 +193526,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -193574,7 +193574,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -193590,7 +193590,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -193609,7 +193609,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -193624,7 +193624,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -193660,7 +193660,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -194224,14 +194224,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -194259,18 +194259,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -194471,7 +194471,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -194730,7 +194730,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -194770,30 +194770,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -194803,7 +194803,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -194940,7 +194940,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -194951,7 +194951,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } } }, @@ -194971,7 +194971,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -194985,7 +194985,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195006,7 +195006,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195043,7 +195043,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195064,7 +195064,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195085,7 +195085,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195093,7 +195093,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -195112,14 +195112,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195133,7 +195133,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195162,21 +195162,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195198,14 +195198,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195227,29 +195227,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195290,10 +195290,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -195507,10 +195507,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -195724,7 +195724,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -195739,7 +195739,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -196090,7 +196090,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -196143,7 +196143,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -196425,11 +196425,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -196493,7 +196493,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -196504,7 +196504,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -196725,17 +196725,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -196822,31 +196822,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -197538,7 +197538,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -197564,7 +197564,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -197612,7 +197612,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -197628,7 +197628,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -197647,7 +197647,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -197662,7 +197662,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -197698,7 +197698,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -198262,14 +198262,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -198297,18 +198297,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -198509,7 +198509,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -198768,7 +198768,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -198808,30 +198808,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -198841,7 +198841,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -198978,7 +198978,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -198989,7 +198989,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } } }, @@ -199009,7 +199009,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199023,7 +199023,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199044,7 +199044,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199081,7 +199081,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199102,7 +199102,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199123,7 +199123,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199131,7 +199131,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -199150,14 +199150,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199171,7 +199171,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199200,21 +199200,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199236,14 +199236,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199265,29 +199265,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199328,10 +199328,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -199545,10 +199545,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -199762,7 +199762,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -199777,7 +199777,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -200128,7 +200128,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -200181,7 +200181,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -200463,11 +200463,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -200531,7 +200531,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -200542,7 +200542,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -200763,17 +200763,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -200860,31 +200860,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -201576,7 +201576,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -201602,7 +201602,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -201650,7 +201650,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -201666,7 +201666,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -201685,7 +201685,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -201700,7 +201700,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -201736,7 +201736,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -202300,14 +202300,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -202335,18 +202335,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -202547,7 +202547,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -202806,7 +202806,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -202846,30 +202846,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -202879,7 +202879,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203016,7 +203016,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -203027,7 +203027,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } } }, @@ -203047,7 +203047,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203061,7 +203061,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203082,7 +203082,7 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203119,7 +203119,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203140,7 +203140,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203161,7 +203161,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203169,7 +203169,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -203188,14 +203188,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203209,7 +203209,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203238,21 +203238,21 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203274,14 +203274,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203303,29 +203303,29 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" }, "Analytics": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" }, "VisitorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203366,10 +203366,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" }, "SubscribableSignalLike": { "filePath": "src/surfaces/checkout/shared.ts", @@ -203583,10 +203583,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" }, "VisitorConsent": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -203800,7 +203800,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -203815,7 +203815,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" }, "PaymentOption": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -204166,7 +204166,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -204219,7 +204219,7 @@ "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" }, "ImageDetails": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -204501,11 +204501,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "InterceptorResult": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -204569,7 +204569,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -204580,7 +204580,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" }, "ValidationError": { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -204801,17 +204801,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" }, "CustomerPrivacy": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -204898,31 +204898,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" }, "TrackingConsentMetafield": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -205614,7 +205614,7 @@ "Extension": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -205640,7 +205640,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -205688,7 +205688,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -205704,7 +205704,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" }, "ApiVersion": { "filePath": "src/shared.ts", @@ -205723,7 +205723,7 @@ "Editor": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -205738,7 +205738,7 @@ "I18n": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -205774,7 +205774,7 @@ "I18nTranslate": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" }, @@ -206338,14 +206338,14 @@ "Localization": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -206373,18 +206373,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" }, "Country": { "filePath": "src/shared.ts", @@ -206585,7 +206585,7 @@ "SessionToken": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -206844,7 +206844,7 @@ "Shop": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -206884,30 +206884,30 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" }, "Storage": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -206917,7 +206917,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" }, "Version": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -206933,5 +206933,11637 @@ "isVisualComponent": false, "requires": "access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data) for some properties.", "type": "Target" + }, + { + "name": "Abbreviation", + "description": "Displays abbreviated text or acronyms, revealing their full meaning or additional context through a tooltip on hover or focus. Use to clarify shortened terms, initialisms, or technical language without interrupting the reading flow.", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "isVisualComponent": true, + "thumbnail": "abbreviation-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "AbbreviationProps", + "typeDefinitions": { + "AbbreviationProps": { + "filePath": "src/surfaces/checkout/components/Abbreviation.ts", + "name": "AbbreviationProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Abbreviation.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Abbreviation.ts", + "syntaxKind": "PropertySignature", + "name": "title", + "value": "string", + "description": "Defines the full expansion of the abbreviation or acronym, helping user agents and users understand the meaning of the abbreviated text. Learn more about the [abbreviation element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr).", + "isOptional": true, + "defaultValue": "''" + } + ], + "value": "export interface AbbreviationProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "abbreviation-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-abbreviation title=\"United States Dollar\">USD</s-abbreviation>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Announcement", + "description": "The Announcement component provides a less disruptive alternative to auto-open modals for capturing user attention. It provides a standardized way to engage users without being too intrusive.", + "category": "Web components", + "subCategory": "Feedback and status indicators", + "related": [], + "requires": "", + "isVisualComponent": true, + "thumbnail": "announcement-thumbnail.png", + "type": "", + "definitions": [ + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "AnnouncementElementEvents", + "typeDefinitions": { + "AnnouncementElementEvents": { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "name": "AnnouncementElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "PropertySignature", + "name": "aftertoggle", + "value": "CallbackEventListener", + "description": "A callback that fires when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "PropertySignature", + "name": "dismiss", + "value": "CallbackEventListener", + "description": "A callback that fires when the announcement is dismissed by the user clicking the close button or by calling the `dismiss()` method programmatically.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "PropertySignature", + "name": "toggle", + "value": "CallbackEventListener", + "description": "A callback that fires immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "isOptional": true + } + ], + "value": "export interface AnnouncementElementEvents {\n /**\n * A callback that fires when the element state changes, after any toggle animations have finished.\n *\n * - If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * Learn more about [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).\n */\n aftertoggle?: CallbackEventListener;\n /**\n * A callback that fires when the announcement is dismissed by the user clicking the close button or by calling the `dismiss()` method programmatically.\n */\n dismiss?: CallbackEventListener;\n /**\n * A callback that fires immediately when the element state changes, before any animations.\n *\n * - If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * Learn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).\n */\n toggle?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + }, + "ToggleArgumentsEvent": { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "name": "ToggleArgumentsEvent", + "description": "The event data provided to toggle-related callbacks. Contains the previous and next visibility states of the element.", + "members": [ + { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "PropertySignature", + "name": "newState", + "value": "ToggleState", + "description": "The visibility state of the element after the toggle occurred.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "PropertySignature", + "name": "oldState", + "value": "ToggleState", + "description": "The visibility state of the element before the toggle occurred.", + "isOptional": true + } + ], + "value": "export interface ToggleArgumentsEvent {\n /**\n * The visibility state of the element before the toggle occurred.\n */\n oldState?: ToggleState;\n /**\n * The visibility state of the element after the toggle occurred.\n */\n newState?: ToggleState;\n}" + }, + "ToggleState": { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ToggleState", + "value": "'open' | 'closed'", + "description": "The visibility state of a toggleable element.\n\n- `open`: The element is visible and showing its content.\n- `closed`: The element is hidden and its content is not visible." + } + } + }, + { + "title": "Methods", + "description": "Learn more about [component methods](/docs/api/checkout-ui-extensions/latest/using-polaris-components#methods).", + "type": "AnnouncementElementMethods", + "typeDefinitions": { + "AnnouncementElementMethods": { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "name": "AnnouncementElementMethods", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Announcement.ts", + "syntaxKind": "PropertySignature", + "name": "dismiss", + "value": "() => void", + "description": "Programmatically dismisses the announcement. This triggers the `dismiss` event callback." + } + ], + "value": "export interface AnnouncementElementMethods {\n /**\n * Programmatically dismisses the announcement. This triggers the `dismiss` event callback.\n */\n dismiss: AnnouncementMethods['dismiss'];\n}" + } + } + } + ], + "defaultExample": { + "image": "announcement-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-announcement>\n <s-stack direction=\"inline\" gap=\"base\">\n <s-text>Check our latest offers</s-text>\n <s-link commandFor=\"modal\" command=\"--show\"> Fill out the survey </s-link>\n </s-stack>\n <s-modal id=\"modal\" heading=\"Tell us about your shopping experience\">\n <s-stack gap=\"base\">\n <s-text>We'd love to hear about your shopping experience</s-text>\n <s-text-area\n rows=\"4\"\n label=\"How can we make your shopping experience better?\"\n ></s-text-area>\n <s-button>Submit</s-button>\n </s-stack>\n </s-modal>\n</s-announcement>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "- Prioritize the default state: The most effective use of the announcement bar is when content is short enough to display entirely in its default state, with no need for expansion. This provides the best user experience.\n- Handle content truncation: The component has a strict maximum height. Content that exceeds the expanded state’s height will be cut off with no scrolling capability. Ensure your application’s logic handles excessively long content gracefully to prevent truncation.\n- Provide a modal alternative: If your application needs to display more than a few lines of content, avoid cramming it into the announcement bar. Instead, use the bar as a teaser that links to a modal. This is the recommended pattern for displaying surveys, detailed offers, or other longer-form content." + } + ] + }, + { + "name": "Badge", + "description": "The badge component displays status information or indicates completed actions through compact visual indicators. Use badge to communicate object states, order statuses, or system-generated classifications that help users quickly understand item conditions.\n\nBadges support multiple tones and sizes, with optional icons to reinforce status meaning and improve scannability in lists and tables. For user-created labels, categories, or tags, use [chip](/docs/api/{API_NAME}/{API_VERSION}/web-components/typography-and-content/chip) instead.", + "category": "Web components", + "subCategory": "Feedback and status indicators", + "related": [], + "isVisualComponent": true, + "thumbnail": "badge-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "BadgeProps", + "typeDefinitions": { + "BadgeProps": { + "filePath": "src/surfaces/checkout/components/Badge.ts", + "name": "BadgeProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Badge.ts", + "syntaxKind": "PropertySignature", + "name": "color", + "value": "'base' | 'subdued'", + "description": "Controls the visual weight and emphasis of the badge.\n\n- `base`: Standard weight with moderate emphasis, suitable for most use cases.\n- `subdued`: Reduced visual weight for less prominent or secondary badges.", + "isOptional": true, + "defaultValue": "'base'" + }, + { + "filePath": "src/surfaces/checkout/components/Badge.ts", + "syntaxKind": "PropertySignature", + "name": "icon", + "value": "'' | ReducedIconTypes", + "description": "An icon displayed inside the badge to provide additional visual context or reinforce the badge's meaning. Set to an empty string to display no icon.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Badge.ts", + "syntaxKind": "PropertySignature", + "name": "iconPosition", + "value": "'start' | 'end'", + "description": "The position of the icon relative to the badge text.\n\n- `start`: Places the icon before the text.\n- `end`: Places the icon after the text.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Badge.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Badge.ts", + "syntaxKind": "PropertySignature", + "name": "size", + "value": "'small' | 'base' | 'small-100'", + "description": "The size of the badge.\n\n- `base`: The default size, suitable for most use cases.\n- `small`: A smaller badge for compact layouts.\n- `small-100`: The smallest badge for tight spaces or dense lists.", + "isOptional": true, + "defaultValue": "'base'" + }, + { + "filePath": "src/surfaces/checkout/components/Badge.ts", + "syntaxKind": "PropertySignature", + "name": "tone", + "value": "'auto' | 'neutral' | 'critical'", + "description": "The semantic meaning and color treatment of the badge.\n\n- `auto`: Automatically determined based on context.\n- `neutral`: General information without specific intent.\n- `critical`: Urgent problems or destructive actions.", + "isOptional": true, + "defaultValue": "'auto'" + } + ], + "value": "export interface BadgeProps extends Pick {\n /**\n * The size of the badge.\n *\n * - `base`: The default size, suitable for most use cases.\n * - `small`: A smaller badge for compact layouts.\n * - `small-100`: The smallest badge for tight spaces or dense lists.\n *\n * @default 'base'\n */\n size?: Extract;\n /**\n * The semantic meaning and color treatment of the badge.\n *\n * - `auto`: Automatically determined based on context.\n * - `neutral`: General information without specific intent.\n * - `critical`: Urgent problems or destructive actions.\n *\n * @default 'auto'\n */\n tone?: Extract;\n /**\n * Controls the visual weight and emphasis of the badge.\n *\n * - `base`: Standard weight with moderate emphasis, suitable for most use cases.\n * - `subdued`: Reduced visual weight for less prominent or secondary badges.\n *\n * @default 'base'\n */\n color?: Extract;\n /**\n * An icon displayed inside the badge to provide additional visual context or reinforce the badge's meaning. Set to an empty string to display no icon.\n *\n * @default ''\n */\n icon?: '' | ReducedIconTypes;\n /**\n * The position of the icon relative to the badge text.\n *\n * - `start`: Places the icon before the text.\n * - `end`: Places the icon after the text.\n */\n iconPosition?: BadgeProps$1['iconPosition'];\n}" + }, + "ReducedIconTypes": { + "filePath": "src/surfaces/checkout/components/Badge.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedIconTypes", + "value": "'cart' | 'note' | 'settings' | 'reset' | 'map' | 'menu' | 'search' | 'circle' | 'filter' | 'image' | 'alert-circle' | 'alert-triangle-filled' | 'alert-triangle' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up-right' | 'arrow-up' | 'bag' | 'bullet' | 'calendar' | 'camera' | 'caret-down' | 'cash-dollar' | 'categories' | 'check-circle' | 'check' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'clipboard' | 'clock' | 'credit-card' | 'delete' | 'delivered' | 'delivery' | 'disabled' | 'discount' | 'edit' | 'email' | 'empty' | 'external' | 'geolocation' | 'gift-card' | 'globe' | 'grid' | 'info-filled' | 'info' | 'list-bulleted' | 'location' | 'lock' | 'menu-horizontal' | 'menu-vertical' | 'minus' | 'mobile' | 'order' | 'organization' | 'plus' | 'profile' | 'question-circle-filled' | 'question-circle' | 'reorder' | 'return' | 'savings' | 'star-filled' | 'star-half' | 'star' | 'store' | 'truck' | 'upload' | 'x-circle-filled' | 'x-circle' | 'x'", + "description": "The subset of icon types available in checkout and customer account surfaces. This is a narrowed set from the full Shopify icon library, containing only the icons supported in these contexts.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "badge-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-badge>Default</s-badge>\n<s-badge tone=\"critical\">Expired</s-badge>\n<s-badge color=\"subdued\">Free</s-badge>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Banner", + "description": "The banner component highlights important information or required actions prominently within the interface. Use banner to communicate statuses, provide feedback, draw attention to critical updates, or guide users toward necessary actions.\n\nBanners support multiple tones to convey urgency levels, optional actions for next steps, and can be positioned contextually within sections or page-wide at the top. For inline status indicators on individual items, use [badge](/docs/api/{API_NAME}/{API_VERSION}/web-components/feedback-and-status-indicators/badge).", + "category": "Web components", + "subCategory": "Feedback and status indicators", + "related": [], + "isVisualComponent": true, + "thumbnail": "banner-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "BannerElementProps", + "typeDefinitions": { + "BannerElementProps": { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "name": "BannerElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "PropertySignature", + "name": "collapsible", + "value": "boolean", + "description": "Whether the banner content can be collapsed and expanded by the user. A collapsible banner conceals child elements initially, allowing the user to expand the banner to reveal them.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "PropertySignature", + "name": "dismissible", + "value": "boolean", + "description": "Whether the banner displays a close button that allows users to dismiss it.\n\nWhen the close button is pressed, the `dismiss` event will fire, then `hidden` will be set to `true`, any animation will complete, and the `afterhide` event will fire.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "PropertySignature", + "name": "heading", + "value": "string", + "description": "The heading text displayed at the top of the banner to summarize the message or alert.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "PropertySignature", + "name": "hidden", + "value": "boolean", + "description": "Controls whether the banner is visible or hidden.\n\nWhen using a controlled component pattern and the banner is `dismissible`, update this property to `true` when the `dismiss` event fires.\n\nYou can hide the banner programmatically by setting this to `true` even if it's not `dismissible`.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "PropertySignature", + "name": "tone", + "value": "'success' | 'info' | 'auto' | 'warning' | 'critical'", + "description": "The semantic meaning and color treatment of the component. The banner is a live region and the type of status is dictated by the tone selected.\n\n- `info`: Informational content or helpful tips.\n- `auto`: Automatically determined based on context.\n- `success`: Positive outcomes or successful states.\n- `warning`: Important warnings about potential issues.\n- `critical`: Urgent problems or destructive actions.\n\nThe `critical` tone creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately. The `info`, `success`, and `warning` tones create an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.", + "isOptional": true, + "defaultValue": "'auto'" + } + ], + "value": "export interface BannerElementProps extends Pick {\n /**\n * Whether the banner content can be collapsed and expanded by the user. A collapsible banner conceals child elements initially, allowing the user to expand the banner to reveal them.\n *\n * @default false\n */\n collapsible?: BannerProps$1['collapsible'];\n /**\n * Whether the banner displays a close button that allows users to dismiss it.\n *\n * When the close button is pressed, the `dismiss` event will fire,\n * then `hidden` will be set to `true`,\n * any animation will complete,\n * and the `afterhide` event will fire.\n *\n * @default false\n */\n dismissible?: BannerProps$1['dismissible'];\n /**\n * The heading text displayed at the top of the banner to summarize the message or alert.\n *\n * @default ''\n */\n heading?: BannerProps$1['heading'];\n /**\n * Controls whether the banner is visible or hidden.\n *\n * When using a controlled component pattern and the banner is `dismissible`,\n * update this property to `true` when the `dismiss` event fires.\n *\n * You can hide the banner programmatically by setting this to `true` even if it's not `dismissible`.\n *\n * @default false\n */\n hidden?: BannerProps$1['hidden'];\n /**\n * The semantic meaning and color treatment of the component. The banner is a live region and the type of status is dictated by the tone selected.\n *\n * - `info`: Informational content or helpful tips.\n * - `auto`: Automatically determined based on context.\n * - `success`: Positive outcomes or successful states.\n * - `warning`: Important warnings about potential issues.\n * - `critical`: Urgent problems or destructive actions.\n *\n * The `critical` tone creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately. The `info`, `success`, and `warning` tones create an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.\n *\n * @default 'auto'\n */\n tone?: Extract;\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "BannerElementEvents", + "typeDefinitions": { + "BannerElementEvents": { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "name": "BannerElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "PropertySignature", + "name": "afterhide", + "value": "CallbackEventListener", + "description": "A callback that fires when the banner has fully hidden, including after any hide animations have completed.\n\nThe `hidden` property is `true` when this event fires.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "PropertySignature", + "name": "dismiss", + "value": "CallbackEventListener", + "description": "A callback that fires when the banner is dismissed by the user clicking the close button.\n\nThis doesn't fire when setting `hidden` manually.\n\nThe `hidden` property is `false` when this event fires.", + "isOptional": true + } + ], + "value": "export interface BannerElementEvents {\n /**\n * A callback that fires when the banner has fully hidden, including after any hide animations have completed.\n *\n * The `hidden` property is `true` when this event fires.\n */\n afterhide?: CallbackEventListener;\n /**\n * A callback that fires when the banner is dismissed by the user clicking the close button.\n *\n * This doesn't fire when setting `hidden` manually.\n *\n * The `hidden` property is `false` when this event fires.\n */\n dismiss?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Banner.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "banner-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-banner heading=\"Free shipping on all orders.\" tone=\"info\"></s-banner>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "- Use banners thoughtfully and sparingly, and only for the most important information. Too many banners distract customers from completing checkout.\n\n- Banners are typically displayed at the top of a page or a section, if they relate to specific content. Place banners below the relevant page or section header.\n\n- Include a Button component with next steps when possible.\n\n- Make banners dismissible, unless they contain critical information or an important step that customers need to take.\n\n- Use the `info` banner to update customers about a change or to give them advice.\n\n- Use the `warning` banner to display information that needs attention or that customers need to take action on. Warning banners can be stressful for customers, so be cautious about using them.\n\n- Use the `critical` banner to communicate problems that customers need to resolve immediately to complete checkout." + } + ] + }, + { + "name": "Box", + "description": "The box component provides a generic, flexible container for custom designs and layouts. Use box to apply styling like backgrounds, padding, borders, or border radius when existing components don't meet your needs, or to nest and group other components.\n\nBox contents maintain their natural size, making it especially useful within layout components that would otherwise stretch their children. For structured layouts, use [stack](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/stack) or [grid](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/grid).", + "category": "Web components", + "subCategory": "Layout and structure", + "related": [], + "isVisualComponent": true, + "thumbnail": "box-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "BoxProps", + "typeDefinitions": { + "BoxProps": { + "filePath": "src/surfaces/checkout/components/Box.ts", + "name": "BoxProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nOnly use this when the element's content is not enough context for users using assistive technologies.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityRole", + "value": "AccessibilityRole", + "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.", + "isOptional": true, + "defaultValue": "'generic'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityVisibility", + "value": "'visible' | 'hidden' | 'exclusive'", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "background", + "value": "'base' | 'subdued' | 'transparent'", + "description": "The background color of the box.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", + "isOptional": true, + "defaultValue": "'transparent'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "BorderShorthand", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "// The following are equivalent:\n\n", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "borderRadius", + "value": "MaybeAllValuesShorthandProperty>", + "description": "The roundedness of the box's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "borderStyle", + "value": "MaybeAllValuesShorthandProperty | \"\"", + "description": "Controls the visual style of the border on all sides, such as solid, dashed, or dotted.\n\nWhen set, this overrides the style value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different styles per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "borderWidth", + "value": "MaybeAllValuesShorthandProperty | ''", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "display", + "value": "MaybeResponsive<\"auto\" | \"none\">", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "MaybeResponsive", + "description": "The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "MaybeResponsive", + "description": "The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "MaybeResponsive", + "description": "The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "MaybeResponsive", + "description": "The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "overflow", + "value": "'hidden' | 'visible'", + "description": "Sets the overflow behavior of the element.\n\n- `visible`: The content that extends beyond the element’s container is visible.\n- `hidden`: Clips the content when it is larger than the element’s container. The element will not be scrollable and users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "padding", + "value": "MaybeResponsive>", + "description": "The padding applied to all edges of the component.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- 1 value applies to all sides\n- 2 values apply to block (top/bottom) and inline (left/right)\n- 3 values apply to block-start (top), inline (left/right), and block-end (bottom)\n- 4 values apply to block-start (top), inline-end (right), block-end (bottom), and inline-start (left)\n\n**Examples:** `base`, `large none`, `base large-100 base small`\n\nUse `auto` to inherit padding from the nearest container with removed padding.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlock", + "value": "MaybeResponsive | \"\">", + "description": "The block-direction padding (top and bottom in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for block-start and block-end.\n\n**Example:** `large none` applies `large` to the top and `none` to the bottom.\n\nOverrides the block value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockEnd", + "value": "MaybeResponsive", + "description": "The block-end padding (bottom in horizontal writing modes).\n\nOverrides the block-end value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockStart", + "value": "MaybeResponsive", + "description": "The block-start padding (top in horizontal writing modes).\n\nOverrides the block-start value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInline", + "value": "MaybeResponsive | \"\">", + "description": "The inline-direction padding (left and right in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for inline-start and inline-end.\n\n**Example:** `large none` applies `large` to the left and `none` to the right.\n\nOverrides the inline value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineEnd", + "value": "MaybeResponsive", + "description": "The inline-end padding (right in LTR writing modes, left in RTL).\n\nOverrides the inline-end value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineStart", + "value": "MaybeResponsive", + "description": "The inline-start padding (left in LTR writing modes, right in RTL).\n\nOverrides the inline-start value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + } + ], + "value": "export interface BoxProps extends Pick {\n /**\n * The background color of the box.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The roundedness of the box's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n}" + }, + "AccessibilityRole": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AccessibilityRole", + "value": "\"main\" | \"header\" | \"footer\" | \"section\" | \"aside\" | \"navigation\" | \"ordered-list\" | \"list-item\" | \"list-item-separator\" | \"unordered-list\" | \"separator\" | \"status\" | \"alert\" | \"generic\" | \"presentation\" | \"none\"", + "description": "The semantic role of a component, used by assistive technologies to convey the element’s purpose to users. Each role maps to a specific HTML element or ARIA role.\n\n- `main`: The primary content of the page.\n- `header`: A page or section header.\n- `footer`: Information such as copyright, navigation links, and privacy statements.\n- `section`: A generic section that should have a heading or `accessibilityLabel`.\n- `aside`: Supporting content related to the main content.\n- `navigation`: A major group of navigation links.\n- `ordered-list`: A list of ordered items.\n- `list-item`: An item inside a list.\n- `list-item-separator`: A divider between list items.\n- `unordered-list`: A list of unordered items.\n- `separator`: A divider that separates sections of content.\n- `status`: A live region with advisory information that is not urgent.\n- `alert`: Important, usually time-sensitive information.\n- `generic`: A nameless container with no semantic meaning (renders a `
`).\n- `presentation`: Strips semantic meaning while keeping visual styling. Synonym for `none`.\n- `none`: Strips semantic meaning while keeping visual styling. Synonym for `presentation`.", + "isPublicDocs": true + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + }, + "BorderShorthand": { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderShorthand", + "value": "ReducedBorderSizeKeyword | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword}` | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword} ${BorderStyleKeyword}`", + "description": "A shorthand string for specifying border properties. Accepts a size alone (`'base'`), size with color (`'base base'`), or size with color and style (`'base base dashed'`). Omitted values use their defaults.", + "isPublicDocs": true + }, + "ReducedBorderSizeKeyword": { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedBorderSizeKeyword", + "value": "'large' | 'base' | 'large-100' | 'large-200' | 'none'", + "description": "The subset of border size values available for this component.\n\n- `base`: Standard border width.\n- `large`: Thick border for strong emphasis.\n- `large-100`: Extra thick border for maximum prominence.\n- `large-200`: The thickest available border.\n- `none`: No border.", + "isPublicDocs": true + }, + "ReducedColorKeyword": { + "filePath": "src/surfaces/checkout/components/Box.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedColorKeyword", + "value": "'base'", + "description": "The subset of border color values available for this component.\n\n- `base`: The standard border color for most contexts.", + "isPublicDocs": true + }, + "BorderStyleKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderStyleKeyword", + "value": "\"none\" | \"solid\" | \"dashed\" | \"dotted\" | \"auto\"", + "description": "The visual style of a border. Learn more about [border-style](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style).\n\n- `none`: No border is rendered.\n- `solid`: A single continuous line.\n- `dashed`: A series of short dashes.\n- `dotted`: A series of round dots.\n- `auto`: The border style is determined automatically based on the surface's design system.", + "isPublicDocs": true + }, + "MaybeAllValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeAllValuesShorthandProperty", + "value": "T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one to four values, following the [CSS shorthand syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box). Supports specifying values for all four sides: top, right, bottom, and left.\n\n- `T`: Single value that applies to all four sides.\n- `${T} ${T}`: Two values for block axis (top/bottom) and inline axis (left/right).\n- `${T} ${T} ${T}`: Three values for block-start (top), inline axis (left/right), and block-end (bottom).\n- `${T} ${T} ${T} ${T}`: Four values for block-start (top), inline-end (right), block-end (bottom), and inline-start (left).", + "isPublicDocs": true + }, + "SizeUnitsOrNone": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrNone", + "value": "SizeUnits | \"none\"", + "description": "Represents size values that can also be set to `none` to remove the size constraint.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `none`: No size constraint, allowing unlimited growth. Learn more about the [none value](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#none).", + "isPublicDocs": true + }, + "PaddingKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "PaddingKeyword", + "value": "SizeKeyword | \"none\"", + "description": "Defines the padding size for elements, using the standard size scale or `none` for no padding.\n\n- `SizeKeyword`: Standard padding sizes from the size scale for consistent spacing.\n- `none`: No padding.", + "isPublicDocs": true + }, + "SizeKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeKeyword", + "value": "\"small-500\" | \"small-400\" | \"small-300\" | \"small-200\" | \"small-100\" | \"small\" | \"base\" | \"large\" | \"large-100\" | \"large-200\" | \"large-300\" | \"large-400\" | \"large-500\"", + "description": "The design system's size scale, used to control the dimensions of components like avatars, icons, and thumbnails. Values range from `\"small-500\"` (smallest) through `\"base\"` (standard) to `\"large-500\"` (largest). Not all components support every size — check the component's `size` property type for its available options.", + "isPublicDocs": true + }, + "MaybeTwoValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeTwoValuesShorthandProperty", + "value": "T | `${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one or two values. Supports specifying the same value for both dimensions or different values.\n\n- `T`: Single value that applies to both dimensions.\n- `${T} ${T}`: Two values for block axis (vertical) and inline axis (horizontal).", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "box-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-box\n background=\"subdued\"\n borderRadius=\"base\"\n borderWidth=\"base\"\n padding=\"base\"\n>\n <s-paragraph>\n Baked fresh to order. Please order 1-2 days before needed due to potential\n shipping variations.\n </s-paragraph>\n</s-box>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\n- Use `s-box` when you need a container that preserves the natural size of its contents.\n- `s-box` is particularly useful in layout components like `s-stack` where you want to prevent children from stretching to fit.\n- `s-box` has a `display: block` layout by default.\n- Use `s-box` for simple container needs where you don't need the additional features of more specialized components like `s-stack`.\n- Consider using `s-box` when you need to apply specific styling or layout properties to a group of elements without affecting their natural dimensions." + } + ] + }, + { + "name": "Button", + "description": "The button component triggers actions or events, such as submitting forms, opening dialogs, or navigating to other pages. Use buttons to let users perform specific tasks or initiate interactions throughout the interface.\n\nButtons support various visual styles, tones, and interaction patterns to communicate intent and hierarchy. They can also function as links, guiding users to internal or external destinations. For navigation-focused interactions within text, use [link](/docs/api/{API_NAME}/{API_VERSION}/web-components/actions/link). For grouping multiple related buttons, use [button group](/docs/api/{API_NAME}/{API_VERSION}/web-components/actions/button-group).", + "category": "Web components", + "subCategory": "Actions", + "related": [], + "thumbnail": "button-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ButtonElementProps", + "typeDefinitions": { + "ButtonElementProps": { + "filePath": "src/surfaces/checkout/components/Button.ts", + "name": "ButtonElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or content of the button for users of assistive technologies such as screen readers. Use this when the visible content alone doesn't provide enough context.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "command", + "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", + "isOptional": true, + "defaultValue": "'--auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "commandFor", + "value": "string", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the button is disabled, preventing it from being clicked or receiving focus.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "href", + "value": "string", + "description": "The URL to navigate to when clicked. The `click` event fires first, then navigation occurs.\n\n- If set, it will navigate to the location specified by `href` after executing the `click` event.\n- If a `commandFor` is set, the `command` will be executed instead of the navigation.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "'auto' | 'fill' | 'fit-content'", + "description": "The inline width of the button component.\n\n- `auto`: The size of the button depends on the surface and context.\n- `fill`: The button takes up 100% of the available inline size.\n- `fit-content`: The button will take up the minimum inline-size required to fit its content.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "interestFor", + "value": "string", + "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "loading", + "value": "boolean", + "description": "Whether the button is in a loading state, which replaces the button content with a loading indicator while a background action is being performed.\n\nThis also disables the button.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "target", + "value": "'auto' | '_blank'", + "description": "Specifies where to display the linked URL.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "tone", + "value": "'auto' | 'neutral' | 'critical'", + "description": "The semantic meaning and color treatment of the button.\n\n- `auto`: Automatically determined based on context.\n- `neutral`: General information without specific intent.\n- `critical`: Urgent problems or destructive actions.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'submit' | 'button'", + "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", + "isOptional": true, + "defaultValue": "'button'" + }, + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "variant", + "value": "'auto' | 'primary' | 'secondary'", + "description": "The visual style variant of the button component, which controls its prominence and emphasis.\n\n- `auto`: Automatically determined by the button's context.\n- `primary`: High-emphasis style for the main action.\n- `secondary`: Medium-emphasis style for supporting actions.\n- `tertiary`: Low-emphasis style for less prominent actions.", + "isOptional": true, + "defaultValue": "'auto'" + } + ], + "value": "export interface ButtonElementProps extends Pick {\n target?: Extract;\n tone?: Extract;\n /**\n * The behavioral type of the button component, which determines what action it performs when activated.\n *\n * - `submit`: Submits the nearest containing form.\n * - `button`: Performs no default action, relying on the `click` event handler for behavior.\n *\n * This property is ignored if `href` or `commandFor`/`command` is set.\n *\n * @default 'button'\n */\n type?: Extract;\n variant?: Extract;\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "ButtonElementEvents", + "typeDefinitions": { + "ButtonElementEvents": { + "filePath": "src/surfaces/checkout/components/Button.ts", + "name": "ButtonElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "PropertySignature", + "name": "click", + "value": "CallbackEventListener", + "description": "A callback fired when the button is clicked. This will be called before the action indicated by `type`.\n\nLearn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).", + "isOptional": true + } + ], + "value": "export interface ButtonElementEvents {\n /**\n * A callback fired when the button is clicked. This will be called before the action indicated by `type`.\n *\n * Learn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).\n */\n click?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Button.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "button-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-button variant=\"secondary\">Cancel</s-button>\n<s-button variant=\"primary\">Save</s-button>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "**Content Best Practices**\n\n- Clearly label each button to accurately represent the action associated with it.\n\n- Use strong actionable verbs at the beginning of button text to make it clear to the user what action will occur when the button is clicked.\n\n**Hierarchy Best Practices**\n\n- Establish a visual hierarchy between buttons to minimize confusion and help users understand which actions are most important.\n\n- Use only one high-emphasis button (primary button) per context to make it clear that other buttons have less importance.\n\n- Use lower-emphasis buttons for secondary calls to action.\n\n- Use primary buttons for actions that progress users through checkout such as “Pay now” or for concluding an action in a modal such as “Apply”.\n\n- Use secondary buttons to provide alternative actions to the primary button, without disrupting the primary flow such as “Track your order”.\n\n**When to Use Buttons**\n\n- Use buttons to communicate actions the user can take.\n\n- Use buttons to allow users to interact with the page.\n\n**When Not to Use Buttons**\n\n- Don’t use buttons as navigational elements. Use links instead when the desired action is to take the user to a new page." + } + ] + }, + { + "name": "Checkbox", + "description": "The checkbox component provides a clear way for users to make selections, such as agreeing to terms, enabling settings, or choosing multiple items from a list. Use checkbox to create binary on/off controls or multi-select interfaces where users can select any combination of options.\n\nCheckboxes support labels, help text, error states, and an indeterminate state for \"select all\" functionality when working with grouped selections. For settings that take effect immediately, use [switch](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/switch) instead.", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "checkbox-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "CheckboxElementProps", + "typeDefinitions": { + "CheckboxElementProps": { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "name": "CheckboxElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label used for users using assistive technologies like screen readers. When set, any children or `label` supplied will not be announced. This can also be used to display a control without a visual label, while still providing context to users using screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "checked", + "value": "boolean", + "description": "Whether the control is currently checked.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "command", + "value": "'--auto' | '--show' | '--hide' | '--toggle'", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", + "isOptional": true, + "defaultValue": "'--auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "commandFor", + "value": "string", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "defaultChecked", + "value": "boolean", + "description": "Whether the control is checked by default.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the control is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The visual content to use as the control label. Use a string to provide a simple text label displayed to the user.\n\nIf a `label` slot is also provided, the slot content takes precedence. [Learn more about slots](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/checkbox#slots-propertydetail-label).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.\n\nAdds semantic meaning for accessibility. Doesn't trigger automatic validation or display an error. Implement validation logic yourself and use the `error` prop to show results.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The value used in form data when the control is checked.", + "isOptional": true + } + ], + "value": "export interface CheckboxElementProps extends Pick {\n command?: Extract;\n /**\n * The visual content to use as the control label. Use a string to provide a simple text label displayed to the user.\n *\n * If a `label` slot is also provided, the slot content takes precedence. [Learn more about slots](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/checkbox#slots-propertydetail-label).\n */\n label?: string;\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "CheckboxElementEvents", + "typeDefinitions": { + "CheckboxElementEvents": { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "name": "CheckboxElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the checkbox value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + } + ], + "value": "export interface CheckboxElementEvents {\n /**\n * A callback fired when the checkbox value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "checkbox-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-checkbox defaultChecked label=\"Email me with news and offers\"></s-checkbox>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Chip", + "description": "The chip component displays static labels, categories, or attributes that help classify and organize content. Use chip to show product tags, categories, or metadata near the items they describe, helping users identify items with similar properties.\n\nChips support multiple visual variants for different levels of emphasis and can include icons to provide additional visual context. For system-generated status indicators, use [badge](/docs/api/{API_NAME}/{API_VERSION}/web-components/feedback-and-status-indicators/badge). For interactive or removable chips, use [clickable chip](/docs/api/{API_NAME}/{API_VERSION}/web-components/actions/clickable-chip).", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "isVisualComponent": true, + "thumbnail": "chip-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ChipElementProps", + "typeDefinitions": { + "ChipElementProps": { + "filePath": "src/surfaces/checkout/components/Chip.ts", + "name": "ChipElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Chip.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or content of the component for assistive technologies like screen readers. Use this to provide additional context when the visible content alone doesn’t clearly convey the component’s purpose.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Chip.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface ChipElementProps extends Pick {\n}" + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "ChipElementSlots", + "typeDefinitions": { + "ChipElementSlots": { + "filePath": "src/surfaces/checkout/components/Chip.ts", + "name": "ChipElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Chip.ts", + "syntaxKind": "PropertySignature", + "name": "graphic", + "value": "HTMLElement", + "description": "The graphic to display inside of the chip.\n\nOnly `s-icon` element and its `type` attribute are supported.", + "isOptional": true + } + ], + "value": "export interface ChipElementSlots {\n /**\n * The graphic to display inside of the chip.\n *\n * Only `s-icon` element and its `type` attribute are supported.\n */\n graphic?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "chip-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-chip>50% OFF</s-chip>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Choice list", + "description": "The choice list component presents multiple options for single or multiple selections. Use it when merchants need to choose from a defined set of options, such as filtering results or collecting preferences.\n\nThe component supports both single selection (radio button behavior) and multiple selection (checkbox behavior) modes. It includes configurable labels, help text, and validation. For compact dropdown selection with four or more options, use [select](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/select).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "isVisualComponent": true, + "thumbnail": "choice-list-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ChoiceListElementProps", + "typeDefinitions": { + "ChoiceListElementProps": { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "name": "ChoiceListElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.\n\n`disabled` on any child choices is ignored when this is true.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "multiple", + "value": "boolean", + "description": "Whether multiple choices can be selected.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "values", + "value": "string[]", + "description": "An array of `value` attributes for the currently selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.\n\nForm data captures the selected value strings only. Complex nested content inside choices is for display purposes and isn't included in form submissions.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "variant", + "value": "'auto' | 'list' | 'inline' | 'block' | 'grid'", + "description": "The variant of the choice grid.\n\n- `auto`: The variant is determined by the context.\n- `list`: The choices are displayed in a list.\n- `inline`: The choices are displayed on the inline axis.\n- `block`: The choices are displayed on the block axis.\n- `grid`: The choices are displayed in a grid.\n\nThe selected content slot is supported only in the default (stacked) variant. `inline` and `grid` ignore it.", + "isOptional": true, + "defaultValue": "'auto'" + } + ], + "value": "export interface ChoiceListElementProps extends Pick {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "ChoiceListElementEvents", + "typeDefinitions": { + "ChoiceListElementEvents": { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "name": "ChoiceListElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the choice list selection changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + } + ], + "value": "export interface ChoiceListElementEvents {\n /**\n * A callback fired when the choice list selection changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/ChoiceList.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Choice", + "description": "The choice component creates individual selectable options within a choice list. Use choice to define each option that merchants can select, supporting both single selection (radio buttons) and multiple selection (checkboxes) modes.\n\nChoice components support labels, help text, and custom content through slots, providing flexible option presentation within choice lists.", + "type": "ChoiceProps", + "typeDefinitions": { + "ChoiceProps": { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "name": "ChoiceProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label used for users using assistive technologies like screen readers. When set, any children or `label` supplied will not be announced. This can also be used to display a control without a visual label, while still providing context to users using screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "defaultSelected", + "value": "boolean", + "description": "Whether the control is selected by default.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the control is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "boolean", + "description": "Whether this choice is associated with the error state of the parent choice list. When `true`, the choice is visually marked as having an error.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "selected", + "value": "boolean", + "description": "Whether the control is currently selected.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The value used in form data when the control is checked.", + "isOptional": true + } + ], + "value": "export interface ChoiceProps extends Pick {\n}" + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "ChoiceElementSlots", + "typeDefinitions": { + "ChoiceElementSlots": { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "name": "ChoiceElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "details", + "value": "HTMLElement", + "description": "Additional text to provide context or guidance for the input.\n\nThis text is displayed along with the input and its label to offer more information or instructions to the user.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "secondaryContent", + "value": "HTMLElement", + "description": "Secondary content for a choice.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Choice.ts", + "syntaxKind": "PropertySignature", + "name": "selectedContent", + "value": "HTMLElement", + "description": "Content to display when the option is selected.\n\nThis can be used to provide additional information or options related to the choice.", + "isOptional": true + } + ], + "value": "export interface ChoiceElementSlots {\n /**\n * Additional text to provide context or guidance for the input.\n *\n * This text is displayed along with the input and its label\n * to offer more information or instructions to the user.\n *\n * @implementation this content should be linked to the input with an `aria-describedby` attribute.\n */\n details?: HTMLElement;\n /**\n * Secondary content for a choice.\n */\n secondaryContent?: HTMLElement;\n /**\n * Content to display when the option is selected.\n *\n * This can be used to provide additional information or options related to the choice.\n */\n selectedContent?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "choice-list-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-choice-list>\n <s-choice defaultSelected value=\"location-1\"\n >Yonge-Dundas Square locations</s-choice\n >\n <s-choice value=\"location-2\">Distillery District location</s-choice>\n <s-choice value=\"location-3\">Yorkville location</s-choice>\n</s-choice-list>\n", + "language": "html" + } + ] + } + }, + "examples": { + "description": "The `ChoiceList` component offers different variants to suit various use cases. Choose the right variant based on the number of choices, the complexity of the content, and the available screen space. Below are some best practices for each variant.", + "examples": [ + { + "description": "This classic and flexible variant is ideal for up to 10 choices. It’s the most common and recognizable format for making a selection from a vertical list.\n \nBest Practices\n
    \n
  • Keep it simple: Keep the initial content for each item as concise as possible so users can quickly scan and compare their choices.
  • \n
  • Add extra content strategically: Only use the \"selected content\" slot if the information is essential and directly tied to the selected item. For example, a map that shows the location of a chosen address is an effective use case. If the content doesn’t need to be in close proximity to the selected item, place it elsewhere on the page to reduce visual clutter.
  • \n
", + "codeblock": { + "title": "List Variant", + "tabs": [ + { + "code": "<s-choice-list>\n <s-choice defaultSelected value=\"location-1\">Yonge-Dundas Square</s-choice>\n <s-choice value=\"location-2\">Distillery District</s-choice>\n <s-choice value=\"location-3\">Yorkville</s-choice>\n</s-choice-list>\n", + "language": "html" + } + ] + }, + "image": "choicelist-list-variant.png" + }, + { + "description": "This variant is designed for options that require both secondary content and a clear visual separation. It’s well-suited for up to 5 choices where each item is complex and needs its own defined space. Due to its \"chunky\" footprint, using more than 5 can take up too much vertical space.\n\nBest Practices\n
    \n
  • Focus on clarity: Use this variant to help users compare options with more complexity than a simple list, such as an item with a title, a description, and a price.
  • \n
  • Be intentional with extra content: Just like the List variant, only include extra content when it’s crucial for the user to make a final decision and when its close proximity to the selected block is a benefit.
  • \n
", + "codeblock": { + "title": "Block Variant", + "tabs": [ + { + "code": "<s-choice-list variant=\"block\">\n <s-choice defaultSelected value=\"yonge-dundas\">\n <s-stack\n direction=\"inline\"\n justifyContent=\"space-between\"\n alignItems=\"start\"\n >\n <s-stack gap=\"none\">\n <s-text>Yonge-Dundas Square</s-text>\n <s-text slot=\"secondary-content\" type=\"small\" color=\"subdued\"\n >1 Dundas St E, Toronto ON</s-text\n >\n </s-stack>\n <s-text color=\"subdued\">1.2 km</s-text>\n </s-stack>\n </s-choice>\n <s-choice value=\"distillery\">\n <s-stack\n direction=\"inline\"\n justifyContent=\"space-between\"\n alignItems=\"start\"\n >\n <s-stack gap=\"none\">\n <s-text>Distillery District</s-text>\n <s-text slot=\"secondary-content\" type=\"small\" color=\"subdued\"\n >55 Mill St, Toronto ON</s-text\n >\n </s-stack>\n <s-text color=\"subdued\">4 km</s-text>\n </s-stack>\n </s-choice>\n <s-choice value=\"yorkville\">\n <s-stack\n direction=\"inline\"\n justifyContent=\"space-between\"\n alignItems=\"start\"\n >\n <s-stack gap=\"none\">\n <s-text>Yorkville</s-text>\n <s-text slot=\"secondary-content\" type=\"small\" color=\"subdued\"\n >55 Avenue Rd, Toronto ON</s-text\n >\n </s-stack>\n <s-text color=\"subdued\">6 km</s-text>\n </s-stack>\n </s-choice>\n</s-choice-list>\n", + "language": "html" + } + ] + }, + "image": "choicelist-block-variant.png" + }, + { + "description": "This compact variant is ideal when screen real estate is limited. It works best for up to 3 to 5 choices depending on the typical length of the content.\n\nBest Practices\n
    \n
  • Keep content short and simple: Due to its horizontal layout, content for each item must be succinct, simple, and short, especially on mobile.
  • \n
  • Avoid extra content: This variant does not support extra content upon selection, so it’s best for a scenario where the user's decision doesn’t require additional information.
  • \n
", + "codeblock": { + "title": "Inline Variant", + "tabs": [ + { + "code": "<s-choice-list variant=\"inline\">\n <s-choice defaultSelected value=\"3.50\">$3.50</s-choice>\n <s-choice value=\"4.50\">$4.50</s-choice>\n <s-choice value=\"5.50\">$5.50</s-choice>\n <s-choice value=\"other\">Other</s-choice>\n</s-choice-list>\n", + "language": "html" + } + ] + }, + "image": "choicelist-inline-variant.png" + }, + { + "description": "This variant is best for up to 6 choices, arranged in a grid-like layout. It’s great for scenarios where choices have significant visual differences and need to be arranged for easy comparison.\n\nBest Practices\n
    \n
  • Keep content short and simple: The content in each item needs to be succinct and simple because the horizontal and vertical constraints of the grid can limit the available space.
  • \n
  • Avoid extra content: This variant does not support extra content upon selection, so it’s best for a scenario where the user's decision doesn’t require additional information.
  • \n
", + "codeblock": { + "title": "Grid Variant", + "tabs": [ + { + "code": "<s-choice-list variant=\"grid\">\n <s-choice defaultSelected value=\"standard\">Standard</s-choice>\n <s-choice value=\"deluxe\">Deluxe</s-choice>\n <s-choice value=\"personalized\">Personalized</s-choice>\n</s-choice-list>\n", + "language": "html" + } + ] + }, + "image": "choicelist-grid-variant.png" + } + ] + } + }, + { + "name": "Clickable", + "description": "The clickable component wraps content to make it interactive and clickable. Use it when you need more styling control than [button](/docs/api/{API_NAME}/{API_VERSION}/web-components/actions/button) or [link](/docs/api/{API_NAME}/{API_VERSION}/web-components/actions/link) provide, such as custom backgrounds, padding, or borders around your clickable content.\n\nClickable supports button, link, and submit modes with built-in accessibility properties for keyboard navigation and screen reader support.", + "category": "Web components", + "subCategory": "Actions", + "related": [], + "isVisualComponent": true, + "thumbnail": "clickable-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ClickableElementProps", + "typeDefinitions": { + "ClickableElementProps": { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "name": "ClickableElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nOnly use this when the element's content is not enough context for users using assistive technologies.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityVisibility", + "value": "'visible' | 'hidden' | 'exclusive'", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "background", + "value": "'base' | 'subdued' | 'transparent'", + "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "isOptional": true, + "defaultValue": "'transparent'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "BorderShorthand", + "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "isOptional": true, + "defaultValue": "'none' - equivalent to `none base auto`.", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "// The following are equivalent:\n\n", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "borderRadius", + "value": "MaybeAllValuesShorthandProperty>", + "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "borderStyle", + "value": "MaybeAllValuesShorthandProperty | \"\"", + "description": "Controls the visual style of the border on all sides, such as solid, dashed, or dotted.\n\nWhen set, this overrides the style value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different styles per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "borderWidth", + "value": "MaybeAllValuesShorthandProperty | ''", + "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "command", + "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", + "isOptional": true, + "defaultValue": "'--auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "commandFor", + "value": "string", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Disables the clickable, meaning it cannot be clicked or receive focus.\n\nIn this state, the `click` event will not fire. If the click event originates from a child element, the event will immediately stop propagating from this element.\n\nHowever, items within the clickable can still receive focus and be interacted with.\n\nThis has no impact on the visual state by default, but developers are encouraged to style the clickable accordingly.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "display", + "value": "MaybeResponsive<\"auto\" | \"none\">", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "href", + "value": "string", + "description": "The URL to navigate to when clicked. The `click` event fires first, then navigation occurs.\n\n- If set, it will navigate to the location specified by `href` after executing the `click` event.\n- If a `commandFor` is set, the `command` will be executed instead of the navigation.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "interestFor", + "value": "string", + "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "lang", + "value": "string", + "description": "The language of the button's text content. Use this when the button text is in a different language than the rest of the page, so assistive technologies can invoke the correct pronunciation. [Reference of values](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) (`Subtag` label)", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "loading", + "value": "boolean", + "description": "Disables the clickable, and indicates to assistive technology that the loading is in progress.\n\nThis also disables the clickable.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "MaybeResponsive", + "description": "The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "MaybeResponsive", + "description": "The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "MaybeResponsive", + "description": "The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "MaybeResponsive", + "description": "The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "overflow", + "value": "'hidden' | 'visible'", + "description": "Sets the overflow behavior of the element.\n\n- `visible`: The content that extends beyond the element’s container is visible.\n- `hidden`: Clips the content when it is larger than the element’s container. The element will not be scrollable and users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "padding", + "value": "MaybeResponsive>", + "description": "The padding applied to all edges of the component.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- 1 value applies to all sides\n- 2 values apply to block (top/bottom) and inline (left/right)\n- 3 values apply to block-start (top), inline (left/right), and block-end (bottom)\n- 4 values apply to block-start (top), inline-end (right), block-end (bottom), and inline-start (left)\n\n**Examples:** `base`, `large none`, `base large-100 base small`\n\nUse `auto` to inherit padding from the nearest container with removed padding.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlock", + "value": "MaybeResponsive | \"\">", + "description": "The block-direction padding (top and bottom in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for block-start and block-end.\n\n**Example:** `large none` applies `large` to the top and `none` to the bottom.\n\nOverrides the block value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockEnd", + "value": "MaybeResponsive", + "description": "The block-end padding (bottom in horizontal writing modes).\n\nOverrides the block-end value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockStart", + "value": "MaybeResponsive", + "description": "The block-start padding (top in horizontal writing modes).\n\nOverrides the block-start value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInline", + "value": "MaybeResponsive | \"\">", + "description": "The inline-direction padding (left and right in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for inline-start and inline-end.\n\n**Example:** `large none` applies `large` to the left and `none` to the right.\n\nOverrides the inline value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineEnd", + "value": "MaybeResponsive", + "description": "The inline-end padding (right in LTR writing modes, left in RTL).\n\nOverrides the inline-end value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineStart", + "value": "MaybeResponsive", + "description": "The inline-start padding (left in LTR writing modes, right in RTL).\n\nOverrides the inline-start value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "target", + "value": "'auto' | '_blank'", + "description": "Specifies where to display the linked URL.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'submit' | 'button'", + "description": "The behavioral type of the clickable component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", + "isOptional": true, + "defaultValue": "'button'" + } + ], + "value": "export interface ClickableElementProps extends Pick {\n background?: Extract;\n border?: BorderShorthand;\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n borderRadius?: MaybeAllValuesShorthandProperty>;\n target?: Extract;\n /**\n * The behavioral type of the clickable component, which determines what action it performs when activated.\n *\n * - `submit`: Submits the nearest containing form.\n * - `button`: Performs no default action, relying on the `click` event handler for behavior.\n *\n * This property is ignored if `href` or `commandFor`/`command` is set.\n *\n * @default 'button'\n */\n type?: Extract;\n}" + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + }, + "BorderShorthand": { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderShorthand", + "value": "ReducedBorderSizeKeyword | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword}` | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword} ${BorderStyleKeyword}`", + "description": "A shorthand type for specifying border properties. Accepts a border size, or a combination of size and color, or size, color, and style.", + "isPublicDocs": true + }, + "ReducedBorderSizeKeyword": { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedBorderSizeKeyword", + "value": "'large' | 'base' | 'large-100' | 'large-200' | 'none'", + "description": "The subset of border size values available for this component.\n\n- `base`: Standard border width.\n- `large`: Thick border for strong emphasis.\n- `large-100`: Extra thick border for maximum prominence.\n- `large-200`: The thickest available border.\n- `none`: No border.", + "isPublicDocs": true + }, + "ReducedColorKeyword": { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedColorKeyword", + "value": "'base'", + "description": "The subset of border color values available for this component.\n\n- `base`: The standard border color for most contexts.", + "isPublicDocs": true + }, + "BorderStyleKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderStyleKeyword", + "value": "\"none\" | \"solid\" | \"dashed\" | \"dotted\" | \"auto\"", + "description": "The visual style of a border. Learn more about [border-style](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style).\n\n- `none`: No border is rendered.\n- `solid`: A single continuous line.\n- `dashed`: A series of short dashes.\n- `dotted`: A series of round dots.\n- `auto`: The border style is determined automatically based on the surface's design system.", + "isPublicDocs": true + }, + "MaybeAllValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeAllValuesShorthandProperty", + "value": "T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one to four values, following the [CSS shorthand syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box). Supports specifying values for all four sides: top, right, bottom, and left.\n\n- `T`: Single value that applies to all four sides.\n- `${T} ${T}`: Two values for block axis (top/bottom) and inline axis (left/right).\n- `${T} ${T} ${T}`: Three values for block-start (top), inline axis (left/right), and block-end (bottom).\n- `${T} ${T} ${T} ${T}`: Four values for block-start (top), inline-end (right), block-end (bottom), and inline-start (left).", + "isPublicDocs": true + }, + "ClickableProps": { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "name": "ClickableProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nOnly use this when the element's content is not enough context for users using assistive technologies.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityVisibility", + "value": "'visible' | 'hidden' | 'exclusive'", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "background", + "value": "'base' | 'subdued' | 'transparent'", + "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "isOptional": true, + "defaultValue": "'transparent'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "BorderShorthand", + "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "borderRadius", + "value": "MaybeAllValuesShorthandProperty>", + "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "borderStyle", + "value": "MaybeAllValuesShorthandProperty | \"\"", + "description": "Controls the visual style of the border on all sides, such as solid, dashed, or dotted.\n\nWhen set, this overrides the style value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different styles per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "borderWidth", + "value": "MaybeAllValuesShorthandProperty | ''", + "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "command", + "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", + "isOptional": true, + "defaultValue": "'--auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "commandFor", + "value": "string", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Disables the clickable, meaning it cannot be clicked or receive focus.\n\nIn this state, the `click` event will not fire. If the click event originates from a child element, the event will immediately stop propagating from this element.\n\nHowever, items within the clickable can still receive focus and be interacted with.\n\nThis has no impact on the visual state by default, but developers are encouraged to style the clickable accordingly.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "display", + "value": "MaybeResponsive<\"auto\" | \"none\">", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "href", + "value": "string", + "description": "The URL to navigate to when clicked. The `click` event fires first, then navigation occurs.\n\n- If set, it will navigate to the location specified by `href` after executing the `click` event.\n- If a `commandFor` is set, the `command` will be executed instead of the navigation.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "interestFor", + "value": "string", + "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "lang", + "value": "string", + "description": "The language of the button's text content. Use this when the button text is in a different language than the rest of the page, so assistive technologies can invoke the correct pronunciation. [Reference of values](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) (`Subtag` label)", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "loading", + "value": "boolean", + "description": "Disables the clickable, and indicates to assistive technology that the loading is in progress.\n\nThis also disables the clickable.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "MaybeResponsive", + "description": "The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "MaybeResponsive", + "description": "The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "MaybeResponsive", + "description": "The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "MaybeResponsive", + "description": "The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "onBlur", + "value": "(event: FocusEvent) => void", + "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "onClick", + "value": "(event: Event) => void", + "description": "A callback fired when the button is activated, before performing the action indicated by `type`. Learn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "onFocus", + "value": "(event: FocusEvent) => void", + "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "overflow", + "value": "'hidden' | 'visible'", + "description": "Sets the overflow behavior of the element.\n\n- `visible`: The content that extends beyond the element’s container is visible.\n- `hidden`: Clips the content when it is larger than the element’s container. The element will not be scrollable and users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "padding", + "value": "MaybeResponsive>", + "description": "The padding applied to all edges of the component.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- 1 value applies to all sides\n- 2 values apply to block (top/bottom) and inline (left/right)\n- 3 values apply to block-start (top), inline (left/right), and block-end (bottom)\n- 4 values apply to block-start (top), inline-end (right), block-end (bottom), and inline-start (left)\n\n**Examples:** `base`, `large none`, `base large-100 base small`\n\nUse `auto` to inherit padding from the nearest container with removed padding.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlock", + "value": "MaybeResponsive | \"\">", + "description": "The block-direction padding (top and bottom in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for block-start and block-end.\n\n**Example:** `large none` applies `large` to the top and `none` to the bottom.\n\nOverrides the block value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockEnd", + "value": "MaybeResponsive", + "description": "The block-end padding (bottom in horizontal writing modes).\n\nOverrides the block-end value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockStart", + "value": "MaybeResponsive", + "description": "The block-start padding (top in horizontal writing modes).\n\nOverrides the block-start value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInline", + "value": "MaybeResponsive | \"\">", + "description": "The inline-direction padding (left and right in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for inline-start and inline-end.\n\n**Example:** `large none` applies `large` to the left and `none` to the right.\n\nOverrides the inline value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineEnd", + "value": "MaybeResponsive", + "description": "The inline-end padding (right in LTR writing modes, left in RTL).\n\nOverrides the inline-end value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineStart", + "value": "MaybeResponsive", + "description": "The inline-start padding (left in LTR writing modes, right in RTL).\n\nOverrides the inline-start value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "target", + "value": "'auto' | '_blank'", + "description": "Specifies where to display the linked URL.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'submit' | 'button'", + "description": "The behavioral type of the clickable component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", + "isOptional": true, + "defaultValue": "'button'" + } + ], + "value": "export interface ClickableProps extends ClickableElementProps, ClickableEvents {\n}" + }, + "SizeUnitsOrNone": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrNone", + "value": "SizeUnits | \"none\"", + "description": "Represents size values that can also be set to `none` to remove the size constraint.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `none`: No size constraint, allowing unlimited growth. Learn more about the [none value](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#none).", + "isPublicDocs": true + }, + "PaddingKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "PaddingKeyword", + "value": "SizeKeyword | \"none\"", + "description": "Defines the padding size for elements, using the standard size scale or `none` for no padding.\n\n- `SizeKeyword`: Standard padding sizes from the size scale for consistent spacing.\n- `none`: No padding.", + "isPublicDocs": true + }, + "SizeKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeKeyword", + "value": "\"small-500\" | \"small-400\" | \"small-300\" | \"small-200\" | \"small-100\" | \"small\" | \"base\" | \"large\" | \"large-100\" | \"large-200\" | \"large-300\" | \"large-400\" | \"large-500\"", + "description": "The design system's size scale, used to control the dimensions of components like avatars, icons, and thumbnails. Values range from `\"small-500\"` (smallest) through `\"base\"` (standard) to `\"large-500\"` (largest). Not all components support every size — check the component's `size` property type for its available options.", + "isPublicDocs": true + }, + "MaybeTwoValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeTwoValuesShorthandProperty", + "value": "T | `${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one or two values. Supports specifying the same value for both dimensions or different values.\n\n- `T`: Single value that applies to both dimensions.\n- `${T} ${T}`: Two values for block axis (vertical) and inline axis (horizontal).", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "ClickableElementEvents", + "typeDefinitions": { + "ClickableElementEvents": { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "name": "ClickableElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "A callback fired when the component loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "click", + "value": "CallbackEventListener", + "description": "A callback fired when the component is clicked. This will be called before the action indicated by `type`.\n\nLearn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the component receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + } + ], + "value": "export interface ClickableElementEvents {\n /**\n * A callback fired when the component loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the component is clicked. This will be called before the action indicated by `type`.\n *\n * Learn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).\n */\n click?: CallbackEventListener;\n /**\n * A callback fired when the component receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Clickable.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "clickable-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-clickable>\n <s-product-thumbnail src=\"https://cdn.shopify.com/YOUR_IMAGE_HERE\"></s-product-thumbnail>\n</s-clickable>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Clickable chip", + "description": "The clickable chip component displays interactive labels or categories that users can click or remove. Use clickable chip to show filter tags, selected options, or merchant-created labels that users need to interact with or dismiss.\n\nClickable chips support multiple visual variants, optional icons, and can function as both clickable buttons and removable tags for flexible interaction patterns. For non-interactive labels, use [chip](/docs/api/{API_NAME}/{API_VERSION}/web-components/typography-and-content/chip).", + "category": "Web components", + "subCategory": "Actions", + "related": [], + "isVisualComponent": true, + "thumbnail": "clickable-chip-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ClickableChipElementProps", + "typeDefinitions": { + "ClickableChipElementProps": { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "name": "ClickableChipElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or content of the component for assistive technologies like screen readers. Use this to provide additional context when the visible content alone doesn’t clearly convey the component’s purpose.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Disables the chip, preventing all user interaction including clicks and removal. Disabled chips are visually dimmed to indicate they are not interactive.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "hidden", + "value": "boolean", + "description": "Determines whether the chip is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the chip is `removable`, ensure you update app state for this property when the `remove` event fires.\n\nIf the chip is not `removable`, it can still be hidden by setting this property.\n\nWhen using the `removable` variant, keep `hidden` synced with your app state. If `hidden` isn't updated after the chip is removed, the chip can become permanently hidden.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "href", + "value": "string", + "description": "The URL to link to. When set, the chip navigates to the specified location after the `click` event fires.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "removable", + "value": "boolean", + "description": "Whether the chip displays a remove button, allowing users to dismiss it. When `true`, clicking the remove button fires the `remove` event.", + "isOptional": true, + "defaultValue": "false" + } + ], + "value": "export interface ClickableChipElementProps extends Pick {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "ClickableChipElementEvents", + "typeDefinitions": { + "ClickableChipElementEvents": { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "name": "ClickableChipElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "afterhide", + "value": "CallbackEventListener", + "description": "A callback fired after the chip is hidden. The `hidden` property will be `true` when this event fires.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "click", + "value": "CallbackEventListener", + "description": "A callback fired when the chip is clicked.\n\nLearn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "remove", + "value": "CallbackEventListener", + "description": "A callback fired when the chip is removed.", + "isOptional": true + } + ], + "value": "export interface ClickableChipElementEvents {\n /**\n * A callback fired after the chip is hidden. The `hidden` property will be `true` when this event fires.\n */\n afterhide?: CallbackEventListener;\n /**\n * A callback fired when the chip is clicked.\n *\n * Learn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).\n */\n click?: CallbackEventListener;\n /**\n * A callback fired when the chip is removed.\n */\n remove?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "ClickableChipElementSlots", + "typeDefinitions": { + "ClickableChipElementSlots": { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "name": "ClickableChipElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ClickableChip.ts", + "syntaxKind": "PropertySignature", + "name": "graphic", + "value": "HTMLElement", + "description": "The graphic to display inside of the chip.\n\nOnly `s-icon` element and its `type` attribute are supported.", + "isOptional": true + } + ], + "value": "export interface ClickableChipElementSlots {\n /**\n * The graphic to display inside of the chip.\n *\n * Only `s-icon` element and its `type` attribute are supported.\n */\n graphic?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "clickable-chip-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-clickable-chip removable>Shipping insurance</s-clickable-chip>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Clipboard item", + "description": "Enables copying text to the user’s clipboard. Use alongside Button or Link components to let users easily copy content. `` doesn’t render visually.", + "category": "Web components", + "subCategory": "Actions", + "related": [], + "requires": "", + "isVisualComponent": false, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ClipboardItemElementProps", + "typeDefinitions": { + "ClipboardItemElementProps": { + "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", + "name": "ClipboardItemElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", + "syntaxKind": "PropertySignature", + "name": "text", + "value": "string", + "description": "Plain text to be written to the clipboard.", + "isOptional": true, + "defaultValue": "''" + } + ], + "value": "export interface ClipboardItemElementProps extends Pick {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "ClipboardItemElementEvents", + "typeDefinitions": { + "ClipboardItemElementEvents": { + "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", + "name": "ClipboardItemElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", + "syntaxKind": "PropertySignature", + "name": "copy", + "value": "CallbackEventListener", + "description": "A callback fired when the text is successfully copied to the clipboard. Use this to show a confirmation message or update the UI.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", + "syntaxKind": "PropertySignature", + "name": "copyerror", + "value": "CallbackEventListener", + "description": "A callback fired when the copy to clipboard fails. Use this to display an error message or provide a fallback action.", + "isOptional": true + } + ], + "value": "export interface ClipboardItemElementEvents {\n /**\n * A callback fired when the text is successfully copied to the clipboard. Use this to show a confirmation message or update the UI.\n */\n copy?: CallbackEventListener;\n /**\n * A callback fired when the copy to clipboard fails. Use this to display an error message or provide a fallback action.\n */\n copyerror?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "clipboard-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-button commandFor=\"discount-code\">Copy discount code</s-button>\n<s-clipboard-item id=\"discount-code\" text=\"SAVE 25\"></s-clipboard-item>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Consent checkbox", + "description": "Use buyer consent checkboxes for collecting the buyer’s approval for a given policy.", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "consent-checkbox-thumbnail.png", + "requires": "enabling of the `sms_marketing` capability of the [Customer Privacy](/docs/api/checkout-ui-extensions/latest/configuration#collect-buyer-consent) capability group to work.", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ConsentCheckboxElementProps", + "typeDefinitions": { + "ConsentCheckboxElementProps": { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "name": "ConsentCheckboxElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label used for users using assistive technologies like screen readers. When set, any children or `label` supplied will not be announced. This can also be used to display a control without a visual label, while still providing context to users using screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "checked", + "value": "boolean", + "description": "Whether the control is currently checked.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "command", + "value": "'--auto' | '--show' | '--hide' | '--toggle'", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", + "isOptional": true, + "defaultValue": "'--auto'" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "commandFor", + "value": "string", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "defaultChecked", + "value": "boolean", + "description": "Whether the control is checked by default.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the control is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "policy", + "value": "'sms-marketing'", + "description": "The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n\n- `sms-marketing`: Represents the policy for SMS marketing consent.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The value used in form data when the control is checked.", + "isOptional": true + } + ], + "value": "export interface ConsentCheckboxElementProps extends Pick {\n command?: Extract;\n /**\n * The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n *\n * - `sms-marketing`: Represents the policy for SMS marketing consent.\n */\n policy?: ConsentCheckboxProps$1['policy'];\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "ConsentCheckboxElementEvents", + "typeDefinitions": { + "ConsentCheckboxElementEvents": { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "name": "ConsentCheckboxElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the consent checkbox value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + } + ], + "value": "export interface ConsentCheckboxElementEvents {\n /**\n * A callback fired when the consent checkbox value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "consent-checkbox-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-consent-checkbox\n defaultChecked\n label=\"Text me with news and offers\"\n policy=\"sms-marketing\"\n></s-consent-checkbox>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Consent phone field", + "description": "Display a phone field for customers to sign up for text message marketing, noting that the phone field value will be automatically saved during checkout.", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "consent-phone-field-thumbnail.png", + "requires": "enabling of the `sms_marketing` capability of the [Customer Privacy](/docs/api/checkout-ui-extensions/latest/configuration#collect-buyer-consent) capability group to work.", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ConsentPhoneFieldElementProps", + "typeDefinitions": { + "ConsentPhoneFieldElementProps": { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "name": "ConsentPhoneFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "placeholder", + "value": "string", + "description": "", + "isOptional": true, + "deprecationMessage": "Use `label` instead.", + "isPrivate": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "policy", + "value": "'sms-marketing'", + "description": "The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n\n- `sms-marketing`: Represents the policy for SMS marketing consent.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'mobile' | ''", + "description": "The type of phone number to collect. Specific styling may be applied to each type to provide extra guidance to users. No additional validation is performed based on the type.\n\nStyling hint for the input keyboard. Doesn't validate the phone number format. Implement validation in your extension and use the `error` prop to show results.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface ConsentPhoneFieldElementProps extends Pick {\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n /**\n * The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n *\n * - `sms-marketing`: Represents the policy for SMS marketing consent.\n */\n policy?: ConsentPhoneFieldProps$1['policy'];\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "ConsentPhoneFieldElementEvents", + "typeDefinitions": { + "ConsentPhoneFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "name": "ConsentPhoneFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "A callback fired when the consent phone field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the consent phone field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the consent phone field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the consent phone field.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface ConsentPhoneFieldElementEvents {\n /**\n * A callback fired when the consent phone field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the consent phone field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the consent phone field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the consent phone field.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "ConsentPhoneFieldElementSlots", + "typeDefinitions": { + "ConsentPhoneFieldElementSlots": { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "name": "ConsentPhoneFieldElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "accessory", + "value": "HTMLElement", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", + "isOptional": true + } + ], + "value": "export interface ConsentPhoneFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "consent-phone-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-consent-phone-field\n label=\"Phone\"\n policy=\"sms-marketing\"\n defaultValue=\"587-746-7439\"\n></s-consent-phone-field>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Date field", + "description": "The date field component captures date input with a consistent interface for date selection and proper validation. Use it to collect date information in forms, scheduling interfaces, or data entry workflows.\n\nThe component supports manual text entry. For visual calendar-based selection, consider using [date picker](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/date-picker).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "date-field-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "DateFieldElementProps", + "typeDefinitions": { + "DateFieldElementProps": { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "name": "DateFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "allow", + "value": "string", + "description": "Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of allowed dates in `YYYY-MM-DD` format.", + "isOptional": true, + "defaultValue": "\"\"", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "`2024-02--2025` // allow any date from February 2024 to the end of 2025\n`2024-02--` // allow any date from February 2024 to the end of the month\n`2024-05-09, 2024-05-11` // allow only the 9th and 11th of May 2024", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "allowDays", + "value": "string", + "description": "Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the `allow`/`disallow` filters are selectable. For example, setting `allowedDays` to `'mon, wed, fri'` with `allow` set to `'2024-06'` restricts selection to Mondays, Wednesdays, and Fridays in June 2024.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "isOptional": true, + "defaultValue": "\"\"", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "'saturday, sunday' // allow only weekends within the result of `allow` and `disallow`.", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultView", + "value": "string", + "description": "Default month to display in `YYYY-MM` format.\n\nThis value is used until `view` is set, either directly or as a result of user interaction.\n\nDefaults to the current month in the user's locale.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "disallow", + "value": "string", + "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of disallowed dates in `YYYY-MM-DD` format.", + "isOptional": true, + "defaultValue": "\"\"", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "`--2024-02` // disallow any date before February 2024\n`2024-05-09, 2024-05-11` // disallow the 9th and 11th of May 2024", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "disallowDays", + "value": "string", + "description": "Days of the week that cannot be selected. This subtracts from `allowDays`, and intersects with the result of `allow` and `disallow`.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allowDays`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "isOptional": true, + "defaultValue": "\"\"", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "'saturday, sunday' // disallow weekends within the result of `allow` and `disallow`.", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "placeholder", + "value": "string", + "description": "", + "isOptional": true, + "deprecationMessage": "Use `label` instead.", + "isPrivate": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "view", + "value": "string", + "description": "Displayed month in `YYYY-MM` format.\n\n`onViewChange` is called when this value changes.\n\nDefaults to `defaultView`.", + "isOptional": true + } + ], + "value": "export interface DateFieldElementProps extends Pick {\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "DateFieldElementEvents", + "typeDefinitions": { + "DateFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "name": "DateFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "A callback fired when the date field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the date field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the date field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the date field.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "invalid", + "value": "CallbackEventListener", + "description": "A callback fired when the date field value is invalid.\n\nLearn more about the [invalid event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/invalid_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "PropertySignature", + "name": "viewChange", + "value": "CallbackEventListener", + "description": "A callback fired when the calendar view changes (such as when navigating between months).", + "isOptional": true + } + ], + "value": "export interface DateFieldElementEvents {\n /**\n * A callback fired when the date field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the date field.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the date field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the date field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n /**\n * A callback fired when the calendar view changes (such as when navigating between months).\n */\n viewChange?: CallbackEventListener;\n /**\n * A callback fired when the date field value is invalid.\n *\n * Learn more about the [invalid event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/invalid_event).\n */\n invalid?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/DateField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "date-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-date-field label=\"Pickup date\" defaultValue=\"2025-10-01\"></s-date-field>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Date picker", + "description": "The date picker component allows merchants to select dates using a calendar interface. Use it when merchants benefit from seeing dates in context of the full month, such as selecting dates relative to today or needing weekday context.\n\nThe component supports single dates, multiple dates, and date ranges. For text date entry, use [date field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/date-field).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "date-picker-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "DatePickerElementProps", + "typeDefinitions": { + "DatePickerElementProps": { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "name": "DatePickerElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "allow", + "value": "string", + "description": "Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of allowed dates in `YYYY-MM-DD` format.", + "isOptional": true, + "defaultValue": "\"\"", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "`2024-02--2025` // allow any date from February 2024 to the end of 2025\n`2024-02--` // allow any date from February 2024 to the end of the month\n`2024-05-09, 2024-05-11` // allow only the 9th and 11th of May 2024", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "allowDays", + "value": "string", + "description": "Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the `allow`/`disallow` filters are selectable. For example, setting `allowedDays` to `'mon, wed, fri'` with `allow` set to `'2024-06'` restricts selection to Mondays, Wednesdays, and Fridays in June 2024.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "isOptional": true, + "defaultValue": "\"\"", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "'saturday, sunday' // allow only weekends within the result of `allow` and `disallow`.", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "Default selected value.\n\nThe default means no date is selected.\n\nIf the provided value is invalid, no date is selected.\n\n- If `type=\"single\"`, this is a date in `YYYY-MM-DD` format.\n- If `type=\"multiple\"`, this is a comma-separated list of dates in `YYYY-MM-DD` format.\n- If `type=\"range\"`, this is a range in `YYYY-MM-DD--YYYY-MM-DD` format. The range is inclusive.", + "isOptional": true, + "defaultValue": "\"\"" + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "defaultView", + "value": "string", + "description": "Default month to display in `YYYY-MM` format.\n\nThis value is used until `view` is set, either directly or as a result of user interaction.\n\nDefaults to the current month in the user's locale.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "disallow", + "value": "string", + "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of disallowed dates in `YYYY-MM-DD` format.", + "isOptional": true, + "defaultValue": "\"\"", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "`--2024-02` // disallow any date before February 2024\n`2024-05-09, 2024-05-11` // disallow the 9th and 11th of May 2024", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "disallowDays", + "value": "string", + "description": "Days of the week that cannot be selected. This subtracts from `allowDays`, and intersects with the result of `allow` and `disallow`.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allowDays`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "isOptional": true, + "defaultValue": "\"\"", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "'saturday, sunday' // disallow weekends within the result of `allow` and `disallow`.", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'single' | 'multiple' | 'range'", + "description": "The type of selection the date picker allows.\n\n- `single` allows selecting a single date.\n- `multiple` allows selecting multiple non-contiguous dates.\n- `range` allows selecting a single range of dates.", + "isOptional": true, + "defaultValue": "\"single\"" + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "Current selected value.\n\nThe default means no date is selected.\n\nIf the provided value is invalid, no date is selected.\n\nOtherwise:\n\n- If `type=\"single\"`, this is a date in `YYYY-MM-DD` format.\n- If `type=\"multiple\"`, this is a comma-separated list of dates in `YYYY-MM-DD` format.\n- If `type=\"range\"`, this is a range in `YYYY-MM-DD--YYYY-MM-DD` format. The range is inclusive.\n\nSingle dates use ISO 8601 format (`YYYY-MM-DD`); ranges use `YYYY-MM-DD--YYYY-MM-DD`. Locale-specific formats aren't supported.", + "isOptional": true, + "defaultValue": "\"\"" + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "view", + "value": "string", + "description": "Displayed month in `YYYY-MM` format.\n\n`onViewChange` is called when this value changes.\n\nDefaults to `defaultView`.", + "isOptional": true + } + ], + "value": "export interface DatePickerElementProps extends Pick {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "DatePickerElementEvents", + "typeDefinitions": { + "DatePickerElementEvents": { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "name": "DatePickerElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "A callback fired when the date picker loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the date picker value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the date picker receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the date picker.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "PropertySignature", + "name": "viewChange", + "value": "CallbackEventListener", + "description": "A callback fired when the calendar view changes, such as when navigating between months.", + "isOptional": true + } + ], + "value": "export interface DatePickerElementEvents {\n /**\n * A callback fired when the calendar view changes, such as when navigating between months.\n */\n viewChange?: CallbackEventListener;\n /**\n * A callback fired when the date picker receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n /**\n * A callback fired when the date picker loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the date picker.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the date picker value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/DatePicker.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "date-picker-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-date-picker defaultView=\"2025-10\" defaultValue=\"2025-10-03\"></s-date-picker>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Details", + "description": "Creates a collapsible content area that can be expanded or collapsed by users. Use with Summary to provide expandable sections for additional information or settings.", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "isVisualComponent": true, + "thumbnail": "details-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "DetailsElementProps", + "typeDefinitions": { + "DetailsElementProps": { + "filePath": "src/surfaces/checkout/components/Details.ts", + "name": "DetailsElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "PropertySignature", + "name": "defaultOpen", + "value": "boolean", + "description": "Whether the element should be open when it first renders. This reflects to the `open` attribute and only takes effect on the initial render.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "PropertySignature", + "name": "open", + "value": "boolean", + "description": "Whether the element is currently open. Use this for controlled component patterns where your application manages the open state directly. This does not reflect to any attribute.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "PropertySignature", + "name": "toggleTransition", + "value": "'none' | 'auto'", + "description": "The transition style used when toggling between open and closed states.\n\n- `none`: Switches states immediately without animation.\n- `auto`: Uses the default animated transition.", + "isOptional": true, + "defaultValue": "'auto'" + } + ], + "value": "export interface DetailsElementProps extends Pick {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "DetailsElementEvents", + "typeDefinitions": { + "DetailsElementEvents": { + "filePath": "src/surfaces/checkout/components/Details.ts", + "name": "DetailsElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "PropertySignature", + "name": "aftertoggle", + "value": "CallbackEventListener", + "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "PropertySignature", + "name": "toggle", + "value": "CallbackEventListener", + "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), and the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", + "isOptional": true + } + ], + "value": "export interface DetailsElementEvents {\n /**\n * A callback fired immediately when the element state changes, before any animations.\n *\n * - If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * Learn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), and the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.\n */\n toggle?: CallbackEventListener;\n /**\n * A callback fired when the element state changes, after any toggle animations have finished.\n *\n * - If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * Learn more about the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.\n */\n aftertoggle?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + }, + "ToggleArgumentsEvent": { + "filePath": "src/surfaces/checkout/components/Details.ts", + "name": "ToggleArgumentsEvent", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "PropertySignature", + "name": "newState", + "value": "ToggleState", + "description": "", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "PropertySignature", + "name": "oldState", + "value": "ToggleState", + "description": "", + "isOptional": true + } + ], + "value": "export interface ToggleArgumentsEvent {\n oldState?: ToggleState;\n newState?: ToggleState;\n}" + }, + "ToggleState": { + "filePath": "src/surfaces/checkout/components/Details.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ToggleState", + "value": "'open' | 'closed'", + "description": "", + "isPublicDocs": true + } + } + }, + { + "title": "Summary", + "description": "Provides a clickable label for collapsible Details content. Use to create clear, accessible disclosure controls that show or hide additional information.", + "type": "SummaryProps", + "typeDefinitions": { + "SummaryProps": { + "filePath": "src/surfaces/checkout/components/Summary.ts", + "name": "SummaryProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Summary.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface SummaryProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "details-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-details defaultOpen>\n <s-summary>Pickup instructions</s-summary>\n <s-text>\n Curbside pickup is at the back of the warehouse. Park in a stall and follow the signs.\n </s-text>\n</s-details>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Divider", + "description": "The divider component creates clear visual separation between elements in the interface. Use divider to separate distinct content groups in forms, settings panels, lists, or page sections, helping users scan and understand content organization.\n\nDividers support both horizontal and vertical orientations, along with different visual strengths for varying levels of emphasis. For more structured content grouping with headings, use [section](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/section).", + "category": "Web components", + "subCategory": "Layout and structure", + "related": [], + "isVisualComponent": true, + "thumbnail": "divider-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "DividerProps", + "typeDefinitions": { + "DividerProps": { + "filePath": "src/surfaces/checkout/components/Divider.ts", + "name": "DividerProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Divider.ts", + "syntaxKind": "PropertySignature", + "name": "direction", + "value": "'inline' | 'block'", + "description": "Specify the direction of the divider. This uses [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_logical_properties_and_values).", + "isOptional": true, + "defaultValue": "'inline'" + }, + { + "filePath": "src/surfaces/checkout/components/Divider.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface DividerProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "divider-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-divider></s-divider>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Drop zone", + "description": "The drop zone component lets users upload files through drag-and-drop or by clicking to browse. Use for file uploads such as images, documents, or CSV imports.\n\nThe component provides visual feedback during drag operations and supports file type validation through the `accept` property. Rejected files trigger the `droprejected` event for custom error handling.", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "drop-zone-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "DropZoneElementProps", + "typeDefinitions": { + "DropZoneElementProps": { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "name": "DropZoneElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "accept", + "value": "string", + "description": "A string representing the types of files that are accepted by the drop zone. This string is a comma-separated list of unique file type specifiers which can be one of the following:\n- A file extension starting with a period (\".\") character (such as .jpg, .pdf, .doc)\n- A valid MIME type string with no extensions\n\nIf omitted, all file types are accepted.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the item. When set, it will be announced to buyers using assistive technologies and will provide them with more context.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "multiple", + "value": "boolean", + "description": "Whether multiple files can be selected or dropped at once.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "A string that represents the path to the selected file(s). If no file is selected yet, the value is an empty string (\"\"). When the user selected multiple files, the value represents the first file in the list of files they selected. The value is always the file's name prefixed with \"C:\\fakepath\\\", which isn't the real path of the file.", + "isOptional": true, + "defaultValue": "''" + } + ], + "value": "export interface DropZoneElementProps extends Pick {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "DropZoneElementEvents", + "typeDefinitions": { + "DropZoneElementEvents": { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "name": "DropZoneElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the drop zone value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "droprejected", + "value": "CallbackEventListener", + "description": "A callback fired when a dropped file is rejected due to file type or size restrictions.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the drop zone.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface DropZoneElementEvents {\n /**\n * A callback fired when the drop zone value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the drop zone.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when a dropped file is rejected due to file type or size restrictions.\n */\n droprejected?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/DropZone.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "drop-zone-default.png", + "altText": "An image showcasing the DropZone component with a button to add files with error and dragged over states.", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-drop-zone accept=\"image/*\"></s-drop-zone>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\n### File storage\n\nFile storage for uploads must be implemented separately. Metafields and the corresponding [Checkout API](/docs/api/checkout-ui-extensions/latest/apis/metafields) or [Customer Accounts API](/docs/api/customer/latest/mutations/metafieldsSet) can be utilized to store references to files alongside the relevant objects.\n\n### Mobile\n\nRemember that the drag and drop feature won’t be effective on mobile devices. Adding a button can offer additional context and guide users through the next steps.\n\n\"An\n\n### Minimum size\n\nTo prevent cut-off text and spacing issues, the minimum size of a Dropzone should be 100px by 100px.\n\n\"An\n " + } + ] + }, + { + "name": "Email field", + "description": "The email field component captures email address input. Use it to collect email information in forms, customer profiles, or contact workflows.\n\nEmail field doesn't perform automatic email validation. Implement your own validation logic, and use the `error` property to display validation results. For general text input, use [text field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/text-field).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "email-field-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "EmailFieldElementProps", + "typeDefinitions": { + "EmailFieldElementProps": { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "name": "EmailFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "maxLength", + "value": "number", + "description": "Specifies the maximum number of characters allowed.", + "isOptional": true, + "defaultValue": "Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "minLength", + "value": "number", + "description": "Specifies the minimum number of characters allowed.", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "placeholder", + "value": "string", + "description": "", + "isOptional": true, + "deprecationMessage": "Use `label` instead.", + "isPrivate": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface EmailFieldElementProps extends Pick {\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "EmailFieldElementEvents", + "typeDefinitions": { + "EmailFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "name": "EmailFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the email field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the email field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the email field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the email field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface EmailFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the email field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the email field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the email field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the email field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "EmailFieldElementSlots", + "typeDefinitions": { + "EmailFieldElementSlots": { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "name": "EmailFieldElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/EmailField.ts", + "syntaxKind": "PropertySignature", + "name": "accessory", + "value": "HTMLElement", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", + "isOptional": true + } + ], + "value": "export interface EmailFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "email-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-email-field label=\"Email\" defaultValue=\"snowdevil@shopify.com\"></s-email-field>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Form", + "description": "The form component wraps form controls and enables implicit submission, allowing users to submit from any input by pressing **Enter**. Use form to group related input fields and handle form submission through JavaScript event handlers.\n\nUnlike HTML forms, form doesn't automatically submit data using HTTP—you must register a `submit` event to process form data programmatically. For Shopify Functions configuration forms, use [function settings](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/function-settings).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "form-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "FormElementProps", + "typeDefinitions": { + "FormElementProps": { + "filePath": "src/surfaces/checkout/components/Form.ts", + "name": "FormElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Form.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the form is able to be submitted.\n\nWhen set to `true`, this will also disable the implicit submit behavior of the form.", + "isOptional": true, + "deprecationMessage": "Prevent default within the onSubmit callback using a local state instead. Deprecated in v1.6.0", + "isPrivate": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Form.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface FormElementProps extends Pick {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "FormElementEvents", + "typeDefinitions": { + "FormElementEvents": { + "filePath": "src/surfaces/checkout/components/Form.ts", + "name": "FormElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Form.ts", + "syntaxKind": "PropertySignature", + "name": "submit", + "value": "CallbackEventListener", + "description": "A callback fired when the form is submitted.\n\nLearn more about the [submit event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event).", + "isOptional": true + } + ], + "value": "export interface FormElementEvents {\n /**\n * A callback fired when the form is submitted.\n *\n * Learn more about the [submit event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event).\n */\n submit?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Form.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Form.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "form-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-form>\n <s-text-field label=\"Email address\" />\n <s-button type=\"submit\" variant=\"primary\">Submit</s-button>\n</s-form>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\n- Wrap around all form input elements.\n- Forms can have only one submit button and it must be at the end of the form." + } + ] + }, + { + "name": "Grid", + "description": "The grid component organizes content in a matrix of rows and columns to create responsive page layouts. Use grid to build complex, multi-column layouts that adapt to different screen sizes and maintain consistent alignment.\n\nGrid follows the CSS grid layout pattern and supports flexible column configurations, gap spacing, and alignment properties for precise layout control. For simpler linear layouts (horizontal or vertical), use [stack](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/stack).", + "category": "Web components", + "subCategory": "Layout and structure", + "related": [], + "isVisualComponent": true, + "thumbnail": "grid-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "GridProps", + "typeDefinitions": { + "GridProps": { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "name": "GridProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nOnly use this when the element's content is not enough context for users using assistive technologies.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityRole", + "value": "AccessibilityRole", + "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.", + "isOptional": true, + "defaultValue": "'generic'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityVisibility", + "value": "'visible' | 'hidden' | 'exclusive'", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "alignContent", + "value": "MaybeResponsive", + "description": "Controls how the grid's rows are distributed along the block (column) axis when there is extra space. Set to an empty string to use the default.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "alignItems", + "value": "MaybeResponsive", + "description": "Aligns grid items along the block (column) axis. Set to an empty string to use the default.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "background", + "value": "'base' | 'subdued' | 'transparent'", + "description": "The background color of the grid.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", + "isOptional": true, + "defaultValue": "'transparent'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "BorderShorthand", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "// The following are equivalent:\n\n", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "borderColor", + "value": "'' | 'base'", + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "borderRadius", + "value": "MaybeAllValuesShorthandProperty>", + "description": "The roundedness of the grid's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "borderStyle", + "value": "MaybeAllValuesShorthandProperty | \"\"", + "description": "Controls the visual style of the border on all sides, such as solid, dashed, or dotted.\n\nWhen set, this overrides the style value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different styles per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "borderWidth", + "value": "MaybeAllValuesShorthandProperty | ''", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "columnGap", + "value": "MaybeResponsive", + "description": "Adjust spacing between elements in the inline axis.\n\nThis overrides the column value of `gap`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "display", + "value": "MaybeResponsive<\"auto\" | \"none\">", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "gap", + "value": "MaybeResponsive>", + "description": "Adjust spacing between elements.\n\nA single value applies to both axes. A pair of values (eg `large-100 large-500`) can be used to set the inline and block axes respectively.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "gridTemplateColumns", + "value": "MaybeResponsive", + "description": "Define columns and specify their size.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "gridTemplateRows", + "value": "MaybeResponsive", + "description": "Define rows and specify their size.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "justifyContent", + "value": "MaybeResponsive", + "description": "Controls how the grid's columns are distributed along the inline (row) axis when there is extra space. Set to an empty string to use the default.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "justifyItems", + "value": "MaybeResponsive", + "description": "Aligns grid items along the inline (row) axis. Set to an empty string to use the default.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "MaybeResponsive", + "description": "The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "MaybeResponsive", + "description": "The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "MaybeResponsive", + "description": "The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "MaybeResponsive", + "description": "The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "overflow", + "value": "'hidden' | 'visible'", + "description": "Sets the overflow behavior of the element.\n\n- `visible`: The content that extends beyond the element’s container is visible.\n- `hidden`: Clips the content when it is larger than the element’s container. The element will not be scrollable and users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "padding", + "value": "MaybeResponsive>", + "description": "The padding applied to all edges of the component.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- 1 value applies to all sides\n- 2 values apply to block (top/bottom) and inline (left/right)\n- 3 values apply to block-start (top), inline (left/right), and block-end (bottom)\n- 4 values apply to block-start (top), inline-end (right), block-end (bottom), and inline-start (left)\n\n**Examples:** `base`, `large none`, `base large-100 base small`\n\nUse `auto` to inherit padding from the nearest container with removed padding.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlock", + "value": "MaybeResponsive | \"\">", + "description": "The block-direction padding (top and bottom in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for block-start and block-end.\n\n**Example:** `large none` applies `large` to the top and `none` to the bottom.\n\nOverrides the block value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockEnd", + "value": "MaybeResponsive", + "description": "The block-end padding (bottom in horizontal writing modes).\n\nOverrides the block-end value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockStart", + "value": "MaybeResponsive", + "description": "The block-start padding (top in horizontal writing modes).\n\nOverrides the block-start value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInline", + "value": "MaybeResponsive | \"\">", + "description": "The inline-direction padding (left and right in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for inline-start and inline-end.\n\n**Example:** `large none` applies `large` to the left and `none` to the right.\n\nOverrides the inline value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineEnd", + "value": "MaybeResponsive", + "description": "The inline-end padding (right in LTR writing modes, left in RTL).\n\nOverrides the inline-end value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineStart", + "value": "MaybeResponsive", + "description": "The inline-start padding (left in LTR writing modes, right in RTL).\n\nOverrides the inline-start value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "placeContent", + "value": "MaybeResponsive<`${ReducedAlignContentKeyword} ${ReducedJustifyContentKeyword}` | ReducedAlignContentKeyword>", + "description": "A shorthand for `justifyContent` and `alignContent` that sets both distribution axes at once.", + "isOptional": true, + "defaultValue": "'normal normal'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "placeItems", + "value": "MaybeResponsive<`${ReducedAlignItemsKeyword} ${ReducedJustifyItemsKeyword}` | ReducedAlignItemsKeyword>", + "description": "A shorthand for `justifyItems` and `alignItems` that sets both alignment axes at once.", + "isOptional": true, + "defaultValue": "'normal normal'" + }, + { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "PropertySignature", + "name": "rowGap", + "value": "MaybeResponsive", + "description": "Adjust spacing between elements in the block axis.\n\nThis overrides the row value of `gap`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + } + ], + "value": "export interface GridProps extends Pick {\n /**\n * Controls how the grid's rows are distributed along the block (column) axis when there is extra space. Set to an empty string to use the default.\n *\n * @default '' - meaning no override\n */\n alignContent?: MaybeResponsive;\n /**\n * Aligns grid items along the block (column) axis. Set to an empty string to use the default.\n *\n * @default '' - meaning no override\n */\n alignItems?: MaybeResponsive;\n /**\n * The background color of the grid.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The color of the border using the design system's color scale. Overrides the color value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderColor?: ReducedColorKeyword | '';\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The roundedness of the grid's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n /**\n * Controls how the grid's columns are distributed along the inline (row) axis when there is extra space. Set to an empty string to use the default.\n *\n * @default '' - meaning no override\n */\n justifyContent?: MaybeResponsive;\n /**\n * Aligns grid items along the inline (row) axis. Set to an empty string to use the default.\n *\n * @default '' - meaning no override\n */\n justifyItems?: MaybeResponsive;\n /**\n * A shorthand for `justifyContent` and `alignContent` that sets both distribution axes at once.\n *\n * @default 'normal normal'\n */\n placeContent?: MaybeResponsive<`${ReducedAlignContentKeyword} ${ReducedJustifyContentKeyword}` | ReducedAlignContentKeyword>;\n /**\n * A shorthand for `justifyItems` and `alignItems` that sets both alignment axes at once.\n *\n * @default 'normal normal'\n */\n placeItems?: MaybeResponsive<`${ReducedAlignItemsKeyword} ${ReducedJustifyItemsKeyword}` | ReducedAlignItemsKeyword>;\n}" + }, + "AccessibilityRole": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AccessibilityRole", + "value": "\"main\" | \"header\" | \"footer\" | \"section\" | \"aside\" | \"navigation\" | \"ordered-list\" | \"list-item\" | \"list-item-separator\" | \"unordered-list\" | \"separator\" | \"status\" | \"alert\" | \"generic\" | \"presentation\" | \"none\"", + "description": "The semantic role of a component, used by assistive technologies to convey the element’s purpose to users. Each role maps to a specific HTML element or ARIA role.\n\n- `main`: The primary content of the page.\n- `header`: A page or section header.\n- `footer`: Information such as copyright, navigation links, and privacy statements.\n- `section`: A generic section that should have a heading or `accessibilityLabel`.\n- `aside`: Supporting content related to the main content.\n- `navigation`: A major group of navigation links.\n- `ordered-list`: A list of ordered items.\n- `list-item`: An item inside a list.\n- `list-item-separator`: A divider between list items.\n- `unordered-list`: A list of unordered items.\n- `separator`: A divider that separates sections of content.\n- `status`: A live region with advisory information that is not urgent.\n- `alert`: Important, usually time-sensitive information.\n- `generic`: A nameless container with no semantic meaning (renders a `
`).\n- `presentation`: Strips semantic meaning while keeping visual styling. Synonym for `none`.\n- `none`: Strips semantic meaning while keeping visual styling. Synonym for `presentation`.", + "isPublicDocs": true + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + }, + "ReducedAlignContentKeyword": { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedAlignContentKeyword", + "value": "'center' | 'start' | 'end' | 'normal' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch'", + "description": "The subset of `align-content` values available for the grid component.\n\n- `center`: Packs rows toward the center of the grid.\n- `start`: Packs rows toward the start of the block axis.\n- `end`: Packs rows toward the end of the block axis.\n- `normal`: Default browser behavior.\n- `space-between`: Distributes rows evenly with no space at the edges.\n- `space-around`: Distributes rows evenly with equal space around each.\n- `space-evenly`: Distributes rows with equal space between and at the edges.\n- `stretch`: Stretches rows to fill the available space.", + "isPublicDocs": true + }, + "ReducedAlignItemsKeyword": { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedAlignItemsKeyword", + "value": "'center' | 'start' | 'end' | 'normal' | 'baseline' | 'stretch'", + "description": "The subset of `align-items` values available for the grid component.\n\n- `center`: Centers items along the block axis.\n- `start`: Aligns items to the start of the block axis.\n- `end`: Aligns items to the end of the block axis.\n- `normal`: Default browser behavior.\n- `baseline`: Aligns items along their text baseline.\n- `stretch`: Stretches items to fill the cell along the block axis.", + "isPublicDocs": true + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + }, + "BorderShorthand": { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderShorthand", + "value": "ReducedBorderSizeKeyword | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword}` | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword} ${BorderStyleKeyword}`", + "description": "A shorthand string for specifying border properties. Accepts a size alone (`'base'`), size with color (`'base base'`), or size with color and style (`'base base dashed'`). Omitted values use their defaults.", + "isPublicDocs": true + }, + "ReducedBorderSizeKeyword": { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedBorderSizeKeyword", + "value": "'large' | 'base' | 'large-100' | 'large-200' | 'none'", + "description": "The subset of border size values available for this component.\n\n- `base`: Standard border width.\n- `large`: Thick border for strong emphasis.\n- `large-100`: Extra thick border for maximum prominence.\n- `large-200`: The thickest available border.\n- `none`: No border.", + "isPublicDocs": true + }, + "ReducedColorKeyword": { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedColorKeyword", + "value": "'base'", + "description": "The subset of border color values available for this component.\n\n- `base`: The standard border color for most contexts.", + "isPublicDocs": true + }, + "BorderStyleKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderStyleKeyword", + "value": "\"none\" | \"solid\" | \"dashed\" | \"dotted\" | \"auto\"", + "description": "The visual style of a border. Learn more about [border-style](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style).\n\n- `none`: No border is rendered.\n- `solid`: A single continuous line.\n- `dashed`: A series of short dashes.\n- `dotted`: A series of round dots.\n- `auto`: The border style is determined automatically based on the surface's design system.", + "isPublicDocs": true + }, + "MaybeAllValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeAllValuesShorthandProperty", + "value": "T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one to four values, following the [CSS shorthand syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box). Supports specifying values for all four sides: top, right, bottom, and left.\n\n- `T`: Single value that applies to all four sides.\n- `${T} ${T}`: Two values for block axis (top/bottom) and inline axis (left/right).\n- `${T} ${T} ${T}`: Three values for block-start (top), inline axis (left/right), and block-end (bottom).\n- `${T} ${T} ${T} ${T}`: Four values for block-start (top), inline-end (right), block-end (bottom), and inline-start (left).", + "isPublicDocs": true + }, + "SpacingKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SpacingKeyword", + "value": "SizeKeyword | \"none\"", + "description": "", + "isPublicDocs": true + }, + "SizeKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeKeyword", + "value": "\"small-500\" | \"small-400\" | \"small-300\" | \"small-200\" | \"small-100\" | \"small\" | \"base\" | \"large\" | \"large-100\" | \"large-200\" | \"large-300\" | \"large-400\" | \"large-500\"", + "description": "The design system's size scale, used to control the dimensions of components like avatars, icons, and thumbnails. Values range from `\"small-500\"` (smallest) through `\"base\"` (standard) to `\"large-500\"` (largest). Not all components support every size — check the component's `size` property type for its available options.", + "isPublicDocs": true + }, + "MaybeTwoValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeTwoValuesShorthandProperty", + "value": "T | `${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one or two values. Supports specifying the same value for both dimensions or different values.\n\n- `T`: Single value that applies to both dimensions.\n- `${T} ${T}`: Two values for block axis (vertical) and inline axis (horizontal).", + "isPublicDocs": true + }, + "ReducedJustifyContentKeyword": { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedJustifyContentKeyword", + "value": "'center' | 'start' | 'end' | 'normal' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch'", + "description": "The subset of `justify-content` values available for the grid component.\n\n- `center`: Packs columns toward the center of the grid.\n- `start`: Packs columns toward the start of the inline axis.\n- `end`: Packs columns toward the end of the inline axis.\n- `normal`: Default browser behavior.\n- `space-between`: Distributes columns evenly with no space at the edges.\n- `space-around`: Distributes columns evenly with equal space around each.\n- `space-evenly`: Distributes columns with equal space between and at the edges.\n- `stretch`: Stretches columns to fill the available space.", + "isPublicDocs": true + }, + "ReducedJustifyItemsKeyword": { + "filePath": "src/surfaces/checkout/components/Grid.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedJustifyItemsKeyword", + "value": "'center' | 'start' | 'end' | 'normal' | 'baseline' | 'stretch'", + "description": "The subset of `justify-items` values available for the grid component.\n\n- `center`: Centers items along the inline axis.\n- `start`: Aligns items to the start of the inline axis.\n- `end`: Aligns items to the end of the inline axis.\n- `normal`: Default browser behavior.\n- `baseline`: Aligns items along their text baseline.\n- `stretch`: Stretches items to fill the cell along the inline axis.", + "isPublicDocs": true + }, + "SizeUnitsOrNone": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrNone", + "value": "SizeUnits | \"none\"", + "description": "Represents size values that can also be set to `none` to remove the size constraint.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `none`: No size constraint, allowing unlimited growth. Learn more about the [none value](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#none).", + "isPublicDocs": true + }, + "PaddingKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "PaddingKeyword", + "value": "SizeKeyword | \"none\"", + "description": "Defines the padding size for elements, using the standard size scale or `none` for no padding.\n\n- `SizeKeyword`: Standard padding sizes from the size scale for consistent spacing.\n- `none`: No padding.", + "isPublicDocs": true + } + } + }, + { + "title": "Grid item", + "description": "The grid item component represents a single cell within a grid layout, allowing you to control how content is positioned and sized within the grid. Use grid item as a child of grid to specify column span, row span, and positioning for individual content areas.\n\nGrid item supports precise placement control through column and row properties, enabling you to create complex layouts where different items occupy varying amounts of space or appear in specific grid positions.", + "type": "GridItemProps", + "typeDefinitions": { + "GridItemProps": { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "name": "GridItemProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nOnly use this when the element's content is not enough context for users using assistive technologies.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityRole", + "value": "AccessibilityRole", + "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.", + "isOptional": true, + "defaultValue": "'generic'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityVisibility", + "value": "'visible' | 'hidden' | 'exclusive'", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "background", + "value": "'base' | 'subdued' | 'transparent'", + "description": "The background color of the grid item.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", + "isOptional": true, + "defaultValue": "'transparent'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "BorderShorthand", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "// The following are equivalent:\n\n", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "borderColor", + "value": "'' | 'base'", + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "borderRadius", + "value": "MaybeAllValuesShorthandProperty>", + "description": "The roundedness of the grid item's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "borderStyle", + "value": "MaybeAllValuesShorthandProperty | \"\"", + "description": "Controls the visual style of the border on all sides, such as solid, dashed, or dotted.\n\nWhen set, this overrides the style value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different styles per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "borderWidth", + "value": "MaybeAllValuesShorthandProperty | ''", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "display", + "value": "MaybeResponsive<\"auto\" | \"none\">", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "gridColumn", + "value": "`span ${number}` | \"auto\"", + "description": "Number of columns the item will span across", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "gridRow", + "value": "`span ${number}` | \"auto\"", + "description": "Number of rows the item will span across", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "MaybeResponsive", + "description": "The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "MaybeResponsive", + "description": "The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "MaybeResponsive", + "description": "The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "MaybeResponsive", + "description": "The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "overflow", + "value": "'hidden' | 'visible'", + "description": "Sets the overflow behavior of the element.\n\n- `visible`: The content that extends beyond the element’s container is visible.\n- `hidden`: Clips the content when it is larger than the element’s container. The element will not be scrollable and users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "padding", + "value": "MaybeResponsive>", + "description": "The padding applied to all edges of the component.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- 1 value applies to all sides\n- 2 values apply to block (top/bottom) and inline (left/right)\n- 3 values apply to block-start (top), inline (left/right), and block-end (bottom)\n- 4 values apply to block-start (top), inline-end (right), block-end (bottom), and inline-start (left)\n\n**Examples:** `base`, `large none`, `base large-100 base small`\n\nUse `auto` to inherit padding from the nearest container with removed padding.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlock", + "value": "MaybeResponsive | \"\">", + "description": "The block-direction padding (top and bottom in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for block-start and block-end.\n\n**Example:** `large none` applies `large` to the top and `none` to the bottom.\n\nOverrides the block value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockEnd", + "value": "MaybeResponsive", + "description": "The block-end padding (bottom in horizontal writing modes).\n\nOverrides the block-end value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockStart", + "value": "MaybeResponsive", + "description": "The block-start padding (top in horizontal writing modes).\n\nOverrides the block-start value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInline", + "value": "MaybeResponsive | \"\">", + "description": "The inline-direction padding (left and right in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for inline-start and inline-end.\n\n**Example:** `large none` applies `large` to the left and `none` to the right.\n\nOverrides the inline value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineEnd", + "value": "MaybeResponsive", + "description": "The inline-end padding (right in LTR writing modes, left in RTL).\n\nOverrides the inline-end value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineStart", + "value": "MaybeResponsive", + "description": "The inline-start padding (left in LTR writing modes, right in RTL).\n\nOverrides the inline-start value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + } + ], + "value": "export interface GridItemProps extends Pick {\n /**\n * The background color of the grid item.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The color of the border using the design system's color scale. Overrides the color value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderColor?: ReducedColorKeyword | '';\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The roundedness of the grid item's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n}" + }, + "AccessibilityRole": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AccessibilityRole", + "value": "\"main\" | \"header\" | \"footer\" | \"section\" | \"aside\" | \"navigation\" | \"ordered-list\" | \"list-item\" | \"list-item-separator\" | \"unordered-list\" | \"separator\" | \"status\" | \"alert\" | \"generic\" | \"presentation\" | \"none\"", + "description": "The semantic role of a component, used by assistive technologies to convey the element’s purpose to users. Each role maps to a specific HTML element or ARIA role.\n\n- `main`: The primary content of the page.\n- `header`: A page or section header.\n- `footer`: Information such as copyright, navigation links, and privacy statements.\n- `section`: A generic section that should have a heading or `accessibilityLabel`.\n- `aside`: Supporting content related to the main content.\n- `navigation`: A major group of navigation links.\n- `ordered-list`: A list of ordered items.\n- `list-item`: An item inside a list.\n- `list-item-separator`: A divider between list items.\n- `unordered-list`: A list of unordered items.\n- `separator`: A divider that separates sections of content.\n- `status`: A live region with advisory information that is not urgent.\n- `alert`: Important, usually time-sensitive information.\n- `generic`: A nameless container with no semantic meaning (renders a `
`).\n- `presentation`: Strips semantic meaning while keeping visual styling. Synonym for `none`.\n- `none`: Strips semantic meaning while keeping visual styling. Synonym for `presentation`.", + "isPublicDocs": true + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + }, + "BorderShorthand": { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderShorthand", + "value": "ReducedBorderSizeKeyword | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword}` | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword} ${BorderStyleKeyword}`", + "description": "A shorthand string for specifying border properties. Accepts a size alone (`'base'`), size with color (`'base base'`), or size with color and style (`'base base dashed'`). Omitted values use their defaults.", + "isPublicDocs": true + }, + "ReducedBorderSizeKeyword": { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedBorderSizeKeyword", + "value": "'large' | 'base' | 'large-100' | 'large-200' | 'none'", + "description": "The subset of border size values available for this component.\n\n- `base`: Standard border width.\n- `large`: Thick border for strong emphasis.\n- `large-100`: Extra thick border for maximum prominence.\n- `large-200`: The thickest available border.\n- `none`: No border.", + "isPublicDocs": true + }, + "ReducedColorKeyword": { + "filePath": "src/surfaces/checkout/components/GridItem.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedColorKeyword", + "value": "'base'", + "description": "The subset of border color values available for this component.\n\n- `base`: The standard border color for most contexts.", + "isPublicDocs": true + }, + "BorderStyleKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderStyleKeyword", + "value": "\"none\" | \"solid\" | \"dashed\" | \"dotted\" | \"auto\"", + "description": "The visual style of a border. Learn more about [border-style](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style).\n\n- `none`: No border is rendered.\n- `solid`: A single continuous line.\n- `dashed`: A series of short dashes.\n- `dotted`: A series of round dots.\n- `auto`: The border style is determined automatically based on the surface's design system.", + "isPublicDocs": true + }, + "MaybeAllValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeAllValuesShorthandProperty", + "value": "T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one to four values, following the [CSS shorthand syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box). Supports specifying values for all four sides: top, right, bottom, and left.\n\n- `T`: Single value that applies to all four sides.\n- `${T} ${T}`: Two values for block axis (top/bottom) and inline axis (left/right).\n- `${T} ${T} ${T}`: Three values for block-start (top), inline axis (left/right), and block-end (bottom).\n- `${T} ${T} ${T} ${T}`: Four values for block-start (top), inline-end (right), block-end (bottom), and inline-start (left).", + "isPublicDocs": true + }, + "SizeUnitsOrNone": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrNone", + "value": "SizeUnits | \"none\"", + "description": "Represents size values that can also be set to `none` to remove the size constraint.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `none`: No size constraint, allowing unlimited growth. Learn more about the [none value](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#none).", + "isPublicDocs": true + }, + "PaddingKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "PaddingKeyword", + "value": "SizeKeyword | \"none\"", + "description": "Defines the padding size for elements, using the standard size scale or `none` for no padding.\n\n- `SizeKeyword`: Standard padding sizes from the size scale for consistent spacing.\n- `none`: No padding.", + "isPublicDocs": true + }, + "SizeKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeKeyword", + "value": "\"small-500\" | \"small-400\" | \"small-300\" | \"small-200\" | \"small-100\" | \"small\" | \"base\" | \"large\" | \"large-100\" | \"large-200\" | \"large-300\" | \"large-400\" | \"large-500\"", + "description": "The design system's size scale, used to control the dimensions of components like avatars, icons, and thumbnails. Values range from `\"small-500\"` (smallest) through `\"base\"` (standard) to `\"large-500\"` (largest). Not all components support every size — check the component's `size` property type for its available options.", + "isPublicDocs": true + }, + "MaybeTwoValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeTwoValuesShorthandProperty", + "value": "T | `${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one or two values. Supports specifying the same value for both dimensions or different values.\n\n- `T`: Single value that applies to both dimensions.\n- `${T} ${T}`: Two values for block axis (vertical) and inline axis (horizontal).", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "grid-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-grid gridTemplateColumns=\"1fr auto\" gap=\"base\">\n <s-grid-item gridColumn=\"span 2\" border=\"base\" borderStyle=\"dashed\">\n Plants for sale\n </s-grid-item>\n <s-grid-item border=\"base\" borderStyle=\"dashed\">\n Pothos\n </s-grid-item>\n <s-grid-item border=\"base\" borderStyle=\"dashed\">\n $25.00\n </s-grid-item>\n</s-grid>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Heading", + "description": "The heading component renders hierarchical titles to communicate the structure and organization of page content. Use heading to create section titles and content headers that help users understand information hierarchy and navigate content.\n\nHeading levels adjust automatically based on nesting within parent [section](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/section) components, ensuring meaningful and accessible page outlines without manual level management.", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "thumbnail": "heading-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "HeadingProps", + "typeDefinitions": { + "HeadingProps": { + "filePath": "src/surfaces/checkout/components/Heading.ts", + "name": "HeadingProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Heading.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityRole", + "value": "'heading' | 'none' | 'presentation'", + "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.\n\n- `heading`: defines the element as a heading to a page or section.\n- `presentation`: the heading level will be stripped, and will prevent the element’s implicit ARIA semantics from being exposed to the accessibility tree.\n- `none`: a synonym for the `presentation` role.", + "isOptional": true, + "defaultValue": "'heading'" + }, + { + "filePath": "src/surfaces/checkout/components/Heading.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface HeadingProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "heading-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-heading>Contact</s-heading>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "title": "Useful for", + "type": "Generic", + "anchorLink": "useful-for", + "sectionContent": "- Creating titles and subtitles for your content that are consistent across your app.\n- Helping users with visual impairments navigate through content effectively using assistive technologies like screen readers." + }, + { + "title": "Considerations", + "type": "Generic", + "anchorLink": "considerations", + "sectionContent": "- The level of the heading is automatically determined by how deeply it's nested inside other components, starting from h2.\n- Default to using the `heading` property in `s-section`. The `s-heading` component should only be used if you need to implement a custom layout for your heading in the UI." + }, + { + "title": "Best practices", + "type": "Generic", + "anchorLink": "best-practices", + "sectionContent": "\n- Use short headings to make your content scannable.\n- Use plain and clear terms.\n- Don't use jargon or technical language.\n- Don't use different terms to describe the same thing.\n- Don't duplicate content." + } + ] + }, + { + "name": "Icon", + "description": "The icon component renders graphic symbols to visually communicate actions, status, and navigation throughout the interface. Use icon to reinforce button actions, indicate status states, or provide wayfinding cues that help users understand available functionality.\n\nIcons support multiple sizes, tones for semantic meaning, and can be integrated with other components like [button](/docs/api/{API_NAME}/{API_VERSION}/web-components/actions/button), [badge](/docs/api/{API_NAME}/{API_VERSION}/web-components/feedback-and-status-indicators/badge), and [chip](/docs/api/{API_NAME}/{API_VERSION}/web-components/typography-and-content/chip) to enhance visual communication.", + "category": "Web components", + "subCategory": "Media and visuals", + "related": [], + "thumbnail": "icon-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "IconProps", + "typeDefinitions": { + "IconProps": { + "filePath": "src/surfaces/checkout/components/Icon.ts", + "name": "IconProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Icon.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Icon.ts", + "syntaxKind": "PropertySignature", + "name": "size", + "value": "'small' | 'large' | 'base' | 'small-200' | 'small-100' | 'large-100'", + "description": "The size of the icon.\n\n- `'base'`: Default size that works well for most use cases.\n- `'small'`: Small icon for inline use within text or compact UI elements.\n- `'small-200'`: Extra small icon for the most compact contexts.\n- `'small-100'`: Small icon suitable for tight or dense layouts.\n- `'large'`: Large icon for emphasis or prominent display.\n- `'large-100'`: Extra large icon for maximum visual impact.", + "isOptional": true, + "defaultValue": "'base'" + }, + { + "filePath": "src/surfaces/checkout/components/Icon.ts", + "syntaxKind": "PropertySignature", + "name": "tone", + "value": "'custom' | 'success' | 'info' | 'auto' | 'neutral' | 'warning' | 'critical'", + "description": "The semantic meaning and color treatment of the icon.\n\n- `'info'`: Informational content or helpful tips.\n- `'auto'`: Automatically determined based on context.\n- `'neutral'`: General information without specific intent.\n- `'success'`: Positive outcomes or successful states.\n- `'warning'`: Important warnings about potential issues.\n- `'critical'`: Urgent problems or destructive actions.\n- `'custom'`: Inherits a custom color from its parent element's CSS.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Icon.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'' | ReducedIconTypes", + "description": "The type of icon that will be displayed. You can specify an icon name from the available icon set, or use an empty string to show no icon.", + "isOptional": true + } + ], + "value": "export interface IconProps extends Pick {\n /**\n * The semantic meaning and color treatment of the icon.\n *\n * - `'info'`: Informational content or helpful tips.\n * - `'auto'`: Automatically determined based on context.\n * - `'neutral'`: General information without specific intent.\n * - `'success'`: Positive outcomes or successful states.\n * - `'warning'`: Important warnings about potential issues.\n * - `'critical'`: Urgent problems or destructive actions.\n * - `'custom'`: Inherits a custom color from its parent element's CSS.\n *\n * @default 'auto'\n */\n tone?: Extract;\n /**\n * The size of the icon.\n *\n * - `'base'`: Default size that works well for most use cases.\n * - `'small'`: Small icon for inline use within text or compact UI elements.\n * - `'small-200'`: Extra small icon for the most compact contexts.\n * - `'small-100'`: Small icon suitable for tight or dense layouts.\n * - `'large'`: Large icon for emphasis or prominent display.\n * - `'large-100'`: Extra large icon for maximum visual impact.\n *\n * @default 'base'\n */\n size?: Extract;\n /**\n * The type of icon that will be displayed. You can specify an icon name from the available icon set, or use an empty string to show no icon.\n */\n type?: '' | ReducedIconTypes;\n}" + }, + "ReducedIconTypes": { + "filePath": "src/surfaces/checkout/components/Icon.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedIconTypes", + "value": "'cart' | 'note' | 'settings' | 'reset' | 'map' | 'menu' | 'search' | 'circle' | 'filter' | 'image' | 'alert-circle' | 'alert-triangle-filled' | 'alert-triangle' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up-right' | 'arrow-up' | 'bag' | 'bullet' | 'calendar' | 'camera' | 'caret-down' | 'cash-dollar' | 'categories' | 'check-circle' | 'check' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'clipboard' | 'clock' | 'credit-card' | 'delete' | 'delivered' | 'delivery' | 'disabled' | 'discount' | 'edit' | 'email' | 'empty' | 'external' | 'geolocation' | 'gift-card' | 'globe' | 'grid' | 'info-filled' | 'info' | 'list-bulleted' | 'location' | 'lock' | 'menu-horizontal' | 'menu-vertical' | 'minus' | 'mobile' | 'order' | 'organization' | 'plus' | 'profile' | 'question-circle-filled' | 'question-circle' | 'reorder' | 'return' | 'savings' | 'star-filled' | 'star-half' | 'star' | 'store' | 'truck' | 'upload' | 'x-circle-filled' | 'x-circle' | 'x'", + "description": "The subset of icon types available in checkout and customer account surfaces. This is a narrowed set from the full Shopify icon library, containing only the icons supported in these contexts.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "icon-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-icon type=\"store\" />\n<s-icon type=\"star\" />\n<s-icon type=\"settings\" />\n<s-icon type=\"image\" />\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Image", + "description": "The image component embeds images within the interface with control over presentation and loading behavior. Use image to visually illustrate concepts, showcase products, display user content, or support tasks and interactions with visual context.\n\nImages support responsive sizing, alt text for accessibility, aspect ratio control, and loading states for progressive enhancement. For small preview images in lists or tables, use [thumbnail](/docs/api/{API_NAME}/{API_VERSION}/web-components/media-and-visuals/thumbnail). For profile images, use [avatar](/docs/api/{API_NAME}/{API_VERSION}/web-components/media-and-visuals/avatar).", + "category": "Web components", + "subCategory": "Media and visuals", + "related": [], + "thumbnail": "image-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ImageProps", + "typeDefinitions": { + "ImageProps": { + "filePath": "src/surfaces/checkout/components/Image.ts", + "name": "ImageProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityRole", + "value": "'img' | 'none' | 'presentation'", + "description": "Sets the semantic meaning of the image content. When set, the role will be used by assistive technologies to help users navigate the page.\n\n- `'img'`: Identifies the element as an image that conveys meaningful information to users.\n- `'none'`: Completely hides the element and its content from assistive technologies.\n- `'presentation'`: Removes semantic meaning, making the image purely decorative and ignored by screen readers.", + "isOptional": true, + "defaultValue": "'img'" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "alt", + "value": "string", + "description": "Alternative text that describes the image for accessibility.\n\nProvides a text description of the image for users with assistive technology and serves as a fallback when the image fails to load. A well-written description enables people with visual impairments to understand non-text content.\n\nWhen a screen reader encounters an image, it reads this description aloud. When an image fails to load, this text displays on screen, helping all users understand what content was intended.\n\nLearn more about [writing effective alt text](https://www.shopify.com/ca/blog/image-alt-text#4) and the [alt attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#alt).", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "aspectRatio", + "value": "`${number}${optionalSpace}/${optionalSpace}${number}` | `${number}`", + "description": "The aspect ratio of the image.\n\nThe rendering of the image will depend on the `inlineSize` value:\n\n- `inlineSize=\"fill\"`: the aspect ratio will be respected and the image will take the necessary space.\n- `inlineSize=\"auto\"`: the image will not render until it has loaded and the aspect ratio will be ignored.\n\nLearn more about the [aspect-ratio property](https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio).", + "isOptional": true, + "defaultValue": "'1/1'" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "BorderShorthand", + "description": "A shorthand for setting the border around the image. Accepts a size keyword alone (for example, `'base'`), a size and color (for example, `'base base'`), or a size, color, and style (for example, `'base base solid'`). Use `'none'` to remove the border.", + "isOptional": true, + "defaultValue": "'none' - equivalent to `none base auto`.", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "// The following are equivalent:\n\n", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "borderRadius", + "value": "MaybeAllValuesShorthandProperty>", + "description": "The radius of the border corners around the image. You can use a single value to apply the same radius to all corners, or use the [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) to control individual corners.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "borderStyle", + "value": "MaybeAllValuesShorthandProperty | \"\"", + "description": "Controls the visual style of the border on all sides, such as solid, dashed, or dotted.\n\nWhen set, this overrides the style value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different styles per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "borderWidth", + "value": "MaybeAllValuesShorthandProperty | ''", + "description": "The width of the border around the image. You can use a single value to apply the same width to all sides, or use the [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) to control individual sides. When set, this overrides the width value specified in the `border` shorthand.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "'fill' | 'auto'", + "description": "The inline width (horizontal size) of the image.\n\n- `'fill'`: The image takes up 100% of the available inline space.\n- `'auto'`: The image is displayed at its natural size.\n\nLearn more about the [width attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#width).", + "isOptional": true, + "defaultValue": "'fill'" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "loading", + "value": "'eager' | 'lazy'", + "description": "Determines the loading behavior of the image:\n- `'eager'`: Immediately loads the image, irrespective of its position within the visible viewport.\n- `'lazy'`: Delays loading the image until it approaches a specified distance from the viewport.\n\nLearn more about the [loading attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).", + "isOptional": true, + "defaultValue": "'eager'" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "objectFit", + "value": "'contain' | 'cover'", + "description": "How the image should be resized to fit its container. The image is positioned in the center of the container. Learn more about the [object-fit property](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit).\n\n- `'contain'`: Fits the entire image within the container, preserving aspect ratio. May leave empty space.\n- `'cover'`: Fills the container while preserving aspect ratio, cropping the image if needed.", + "isOptional": true, + "defaultValue": "'contain'" + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "sizes", + "value": "string", + "description": "A set of media conditions and their corresponding sizes. Learn more about the [sizes attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#sizes).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "src", + "value": "string", + "description": "The image source (either a remote URL or a local file resource).\n\nWhen the image is loading or no `src` is provided, a placeholder is rendered. Learn more about the [src attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#src).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "PropertySignature", + "name": "srcSet", + "value": "string", + "description": "A set of image sources and their width or pixel density descriptors. Learn more about the [srcset attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#srcset). This overrides the `src` property.", + "isOptional": true + } + ], + "value": "export interface ImageProps extends Pick {\n /**\n * A shorthand for setting the border around the image. Accepts a size keyword alone (for example, `'base'`), a size and color (for example, `'base base'`), or a size, color, and style (for example, `'base base solid'`). Use `'none'` to remove the border.\n */\n border?: BorderShorthand;\n /**\n * The width of the border around the image. You can use a single value to apply the same width to all sides, or use the [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) to control individual sides. When set, this overrides the width value specified in the `border` shorthand.\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The radius of the border corners around the image. You can use a single value to apply the same radius to all corners, or use the [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) to control individual corners.\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n}" + }, + "BorderShorthand": { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderShorthand", + "value": "ReducedBorderSizeKeyword | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword}` | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword} ${BorderStyleKeyword}`", + "description": "A shorthand string for specifying border properties on the image component. Supports size alone, size with color, or size with color and style — following the pattern `'size'`, `'size color'`, or `'size color style'`.", + "isPublicDocs": true + }, + "ReducedBorderSizeKeyword": { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedBorderSizeKeyword", + "value": "'large' | 'base' | 'large-100' | 'large-200' | 'none'", + "description": "The subset of border size values available for the image component. These control the thickness of any border applied around the image.\n\n- `base`: Standard border width.\n- `large`: Thick border for strong emphasis.\n- `large-100`: Extra thick border for maximum prominence.\n- `large-200`: The thickest available border.\n- `none`: No border.", + "isPublicDocs": true + }, + "ReducedColorKeyword": { + "filePath": "src/surfaces/checkout/components/Image.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedColorKeyword", + "value": "'base'", + "description": "The subset of border color values available for the image component.\n\n- `base`: The standard border color for most contexts.", + "isPublicDocs": true + }, + "BorderStyleKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderStyleKeyword", + "value": "\"none\" | \"solid\" | \"dashed\" | \"dotted\" | \"auto\"", + "description": "The visual style of a border. Learn more about [border-style](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style).\n\n- `none`: No border is rendered.\n- `solid`: A single continuous line.\n- `dashed`: A series of short dashes.\n- `dotted`: A series of round dots.\n- `auto`: The border style is determined automatically based on the surface's design system.", + "isPublicDocs": true + }, + "MaybeAllValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeAllValuesShorthandProperty", + "value": "T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one to four values, following the [CSS shorthand syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box). Supports specifying values for all four sides: top, right, bottom, and left.\n\n- `T`: Single value that applies to all four sides.\n- `${T} ${T}`: Two values for block axis (top/bottom) and inline axis (left/right).\n- `${T} ${T} ${T}`: Three values for block-start (top), inline axis (left/right), and block-end (bottom).\n- `${T} ${T} ${T} ${T}`: Four values for block-start (top), inline-end (right), block-end (bottom), and inline-start (left).", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "image-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-image src=\"https://cdn.shopify.com/YOUR_IMAGE_HERE\" alt=\"Product image\"></s-image>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "title": "Best practices", + "type": "Generic", + "anchorLink": "best-practices", + "sectionContent": "\n- Use high-resolution images to ensure a professional and high-quality experience.\n- Use optimized images so your app loads as fast as possible.\n- Use images intentionally, these should add clarity and lead users to the next step." + } + ] + }, + { + "name": "Link", + "description": "The link component makes text interactive, allowing users to navigate to other pages or perform specific actions. Use link for navigation, external references, or triggering actions while maintaining standard link semantics and accessibility.\n\nLinks support standard URLs, custom protocols, navigation within Shopify admin pages, and can open in new windows for external destinations. For prominent actions or form submissions, use [button](/docs/api/{API_NAME}/{API_VERSION}/web-components/actions/button) instead.", + "category": "Web components", + "subCategory": "Actions", + "related": [], + "requires": "", + "isVisualComponent": true, + "thumbnail": "link-thumbnail.png", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "LinkElementProps", + "typeDefinitions": { + "LinkElementProps": { + "filePath": "src/surfaces/checkout/components/Link.ts", + "name": "LinkElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the link. It will be read to users using assistive technologies such as screen readers.\n\nUse this when using only an icon or the content of the link is not enough context for users using assistive technologies.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "command", + "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", + "isOptional": true, + "defaultValue": "'--auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "commandFor", + "value": "string", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "href", + "value": "string", + "description": "The URL to navigate to when clicked. The `click` event fires first, then navigation occurs.\n\n- If set, it will navigate to the location specified by `href` after executing the `click` event.\n- If a `commandFor` is set, the `command` will be executed instead of the navigation.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "interestFor", + "value": "string", + "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "lang", + "value": "string", + "description": "The language of the button's text content. Use this when the button text is in a different language than the rest of the page, so assistive technologies can invoke the correct pronunciation. [Reference of values](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) (`Subtag` label)", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "target", + "value": "'auto' | '_blank'", + "description": "Specifies where to display the linked URL.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "tone", + "value": "'auto' | 'neutral'", + "description": "Sets the tone of the link, based on the intention of the information being conveyed.\n\n- `auto`: Automatically determined based on context.\n- `neutral`: Removes the default link color, inheriting the surrounding text style.", + "isOptional": true, + "defaultValue": "'auto'" + } + ], + "value": "export interface LinkElementProps extends Pick {\n target?: Extract;\n tone?: Extract;\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "LinkElementEvents", + "typeDefinitions": { + "LinkElementEvents": { + "filePath": "src/surfaces/checkout/components/Link.ts", + "name": "LinkElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "PropertySignature", + "name": "click", + "value": "CallbackEventListener", + "description": "A callback fired when the link is clicked, before navigating to the location specified by `href`.\n\nLearn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).", + "isOptional": true + } + ], + "value": "export interface LinkElementEvents {\n /**\n * A callback fired when the link is clicked, before navigating to the location specified by `href`.\n *\n * Learn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).\n */\n click?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Link.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "link-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-link href=\"https://www.shopify.com/ca/legal/privacy\">Privacy policy</s-link>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\n- Use links primarily for navigation and use buttons primarily for actions.\n\n- The HTML that renders for the `s-button` and `s-link` components includes style and accessibility information. Use these components intentionally and consistently to provide a more inclusive experience for assistive technology users and a more cohesive visual experience for sighted users.\n " + } + ] + }, + { + "name": "Map", + "description": "Use Map to display a map on a page. This component is useful for displaying a map of a location, such as a store or a customer’s address.", + "category": "Web components", + "subCategory": "Media and visuals", + "related": [], + "thumbnail": "map-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "MapElementProps", + "typeDefinitions": { + "MapElementProps": { + "filePath": "src/surfaces/checkout/components/Map.ts", + "name": "MapElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the map for accessibility. When set, it will be announced to users using assistive technologies such as screen readers, providing context about what the map displays.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "apiKey", + "value": "string", + "description": "A valid API key for the map service provider. This key is required to load and render the map tiles. Obtain a key from a supported provider such as [Google Maps Platform](https://developers.google.com/maps/documentation/javascript/get-api-key).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "latitude", + "value": "number", + "description": "The latitude of the map's center point, in degrees. Valid values range from -90 (South Pole) to 90 (North Pole).", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "longitude", + "value": "number", + "description": "The longitude of the map's center point, in degrees. Valid values range from -180 (west) to 180 (east).", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "MaybeResponsive", + "description": "The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "MaybeResponsive", + "description": "The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "maxZoom", + "value": "number", + "description": "The maximum zoom level the user can reach on the map. Valid values are numbers from 0 (world view) to 18 (street level). Use this to prevent users from zooming in beyond a useful level of detail.", + "isOptional": true, + "defaultValue": "18" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "MaybeResponsive", + "description": "The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "MaybeResponsive", + "description": "The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "minZoom", + "value": "number", + "description": "The minimum zoom level the user can reach on the map. Valid values are numbers from 0 (world view) to 18 (street level). Use this to prevent users from zooming out beyond a useful level of context.", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "zoom", + "value": "number", + "description": "The initial zoom level of the map. Valid values are numbers from 0 (fully zoomed out, world view) to 18 (fully zoomed in, street level).", + "isOptional": true, + "defaultValue": "4" + } + ], + "value": "export interface MapElementProps extends Pick {\n}" + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + }, + "SizeUnitsOrNone": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrNone", + "value": "SizeUnits | \"none\"", + "description": "Represents size values that can also be set to `none` to remove the size constraint.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `none`: No size constraint, allowing unlimited growth. Learn more about the [none value](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#none).", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "MapElementEvents", + "typeDefinitions": { + "MapElementEvents": { + "filePath": "src/surfaces/checkout/components/Map.ts", + "name": "MapElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "boundschange", + "value": "CallbackEventListener", + "description": "A callback fired when the visible map boundaries change, such as after a pan or zoom completes.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "click", + "value": "CallbackEventListener", + "description": "A callback fired when the user clicks on the map. Provides the geographic location of the click.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "dblclick", + "value": "CallbackEventListener", + "description": "A callback fired when the user double-clicks on the map. Provides the geographic location of the double-click.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "viewchange", + "value": "CallbackEventListener", + "description": "A callback fired when the map view changes, such as when the user pans or zooms. Provides the new center location and zoom level.", + "isOptional": true + } + ], + "value": "export interface MapElementEvents {\n /**\n * A callback fired when the visible map boundaries change, such as after a pan or zoom completes.\n */\n boundschange?: CallbackEventListener;\n /**\n * A callback fired when the user clicks on the map. Provides the geographic location of the click.\n */\n click?: CallbackEventListener;\n /**\n * A callback fired when the user double-clicks on the map. Provides the geographic location of the double-click.\n */\n dblclick?: CallbackEventListener;\n /**\n * A callback fired when the map view changes, such as when the user pans or zooms. Provides the new center location and zoom level.\n */\n viewchange?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "An event listener typed to a specific HTML element, with a strongly typed `currentTarget`.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "A callback event typed to a specific HTML element, with a strongly typed `currentTarget`.", + "isPublicDocs": true + }, + "MapBoundsEvent": { + "filePath": "src/surfaces/checkout/components/Map.ts", + "name": "MapBoundsEvent", + "description": "The event data provided when the visible map boundaries change, such as after a pan or zoom completes. Contains the new geographic bounds of the visible area.", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "bounds", + "value": "{ northEast?: MapLocation; southWest?: MapLocation; }", + "description": "The geographic boundaries of the currently visible map area, defined by its north-east and south-west corners.", + "isOptional": true + } + ], + "value": "export interface MapBoundsEvent {\n /**\n * The geographic boundaries of the currently visible map area, defined by its north-east and south-west corners.\n */\n bounds?: {\n /**\n * The north-east corner of the visible map area, representing the top-right of the visible region.\n */\n northEast?: MapLocation;\n /**\n * The south-west corner of the visible map area, representing the bottom-left of the visible region.\n */\n southWest?: MapLocation;\n };\n}" + }, + "MapLocation": { + "filePath": "src/surfaces/checkout/components/Map.ts", + "name": "MapLocation", + "description": "A geographic coordinate pair representing a location on the map, defined by latitude and longitude values.", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "latitude", + "value": "number", + "description": "The latitude of the location in degrees. Valid values range from -90 (South Pole) to 90 (North Pole).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "longitude", + "value": "number", + "description": "The longitude of the location in degrees. Valid values range from -180 (west) to 180 (east).", + "isOptional": true + } + ], + "value": "export interface MapLocation {\n /**\n * The latitude of the location in degrees. Valid values range from -90 (South Pole) to 90 (North Pole).\n */\n latitude?: number;\n /**\n * The longitude of the location in degrees. Valid values range from -180 (west) to 180 (east).\n */\n longitude?: number;\n}" + }, + "MapLocationEvent": { + "filePath": "src/surfaces/checkout/components/Map.ts", + "name": "MapLocationEvent", + "description": "The event data provided when a map interaction occurs at a specific geographic location, such as a click or double-click.", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "location", + "value": "MapLocation", + "description": "The geographic location on the map where the interaction occurred, as a latitude/longitude coordinate pair.", + "isOptional": true + } + ], + "value": "export interface MapLocationEvent {\n /**\n * The geographic location on the map where the interaction occurred, as a latitude/longitude coordinate pair.\n */\n location?: MapLocation;\n}" + }, + "MapViewChangeEvent": { + "filePath": "src/surfaces/checkout/components/Map.ts", + "name": "MapViewChangeEvent", + "description": "The event data provided when the map view changes, such as after the user pans or zooms. Contains the new center location and zoom level.", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "location", + "value": "MapLocation", + "description": "The geographic location on the map where the interaction occurred, as a latitude/longitude coordinate pair.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Map.ts", + "syntaxKind": "PropertySignature", + "name": "zoom", + "value": "number", + "description": "The current zoom level of the map after the view change, as a number from 0 (world view) to 18 (street level).", + "isOptional": true + } + ], + "value": "export interface MapViewChangeEvent extends MapLocationEvent {\n /**\n * The current zoom level of the map after the view change, as a number from 0 (world view) to 18 (street level).\n */\n zoom?: number;\n}" + } + } + }, + { + "title": "Map marker", + "description": "Use MapMarker to display a marker on a map. Use only as a child of `s-map` component.", + "type": "MapMarkerElementProps", + "typeDefinitions": { + "MapMarkerElementProps": { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "name": "MapMarkerElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or location of the marker for accessibility. When set, it will be announced to users using assistive technologies such as screen readers, providing context about what the marker represents.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "clusterable", + "value": "boolean", + "description": "Whether the marker can be grouped into clusters when the map is zoomed out. Clustering helps reduce visual clutter when many markers are close together at low zoom levels.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "command", + "value": "'--auto' | '--show' | '--hide' | '--toggle'", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.", + "isOptional": true, + "defaultValue": "'--auto'" + }, + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "commandFor", + "value": "string", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "latitude", + "value": "number", + "description": "The latitude of the marker’s position in degrees. Valid values range from -90 (South Pole) to 90 (North Pole).", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "longitude", + "value": "number", + "description": "The longitude of the marker’s position in degrees. Valid values range from -180 (west) to 180 (east).", + "isOptional": true, + "defaultValue": "0" + } + ], + "value": "export interface MapMarkerElementProps extends Pick {\n /**\n * Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n *\n * - `--auto`: a default action for the target component.\n * - `--show`: shows the target component.\n * - `--hide`: hides the target component.\n * - `--toggle`: toggles the target component.\n *\n * @default '--auto'\n */\n command?: Extract;\n /**\n * The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n */\n commandFor?: MapMarkerProps$1['commandFor'];\n}" + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "MapMarkerElementEvents", + "typeDefinitions": { + "MapMarkerElementEvents": { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "name": "MapMarkerElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "click", + "value": "CallbackEventListener", + "description": "A callback fired when the user clicks on the marker. This event does not propagate to the parent map — only the marker receives the click.", + "isOptional": true + } + ], + "value": "export interface MapMarkerElementEvents {\n /**\n * A callback fired when the user clicks on the marker. This event does not propagate to the parent map — only the marker receives the click.\n */\n click?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "An event listener typed to a specific HTML element, with a strongly typed `currentTarget`.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "A callback event typed to a specific HTML element, with a strongly typed `currentTarget`.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "MapMarkerElementSlots", + "typeDefinitions": { + "MapMarkerElementSlots": { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "name": "MapMarkerElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/MapMarker.ts", + "syntaxKind": "PropertySignature", + "name": "graphic", + "value": "HTMLElement", + "description": "A custom graphic element to use as the marker. If not provided, the map provider’s default marker pin is displayed.", + "isOptional": true + } + ], + "value": "export interface MapMarkerElementSlots {\n /**\n * A custom graphic element to use as the marker. If not provided, the map provider’s default marker pin is displayed.\n */\n graphic?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "map-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-map apiKey=\"YOUR_API_KEY\" latitude={51.5074} longitude={-0.1278}>\n <s-map-marker latitude={51.5074} longitude={-0.1278}></s-map-marker>\n</s-map>\n", + "language": "html" + } + ] + } + }, + "examples": { + "description": "Examples of how to show a custom map marker graphic or a Popover when a map marker is clicked.", + "examples": [ + { + "description": "Use the `Popover` component to display content when a map marker is clicked.", + "codeblock": { + "title": "Popover with map marker", + "tabs": [ + { + "code": "<s-map\n apiKey=\"YOUR_API_KEY\"\n blockSize=\"400px\"\n inlineSize=\"400px\"\n latitude={37.7749}\n longitude={-122.4194}\n>\n <s-map-marker\n latitude={37.7749}\n longitude={-122.4194}\n commandFor=\"popover-san-francisco\"\n ></s-map-marker>\n <s-popover id=\"popover-san-francisco\">San Francisco</s-popover>\n</s-map>\n", + "language": "html" + } + ] + } + }, + { + "description": "Use the `graphic` slot to display a graphic as a map marker. Find more about slots [here](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "codeblock": { + "title": "Map with graphic as map marker", + "tabs": [ + { + "code": "<s-map\n apiKey=\"YOUR_API_KEY\"\n blockSize=\"400px\"\n inlineSize=\"400px\"\n latitude={37.7749}\n longitude={-122.4194}\n>\n <s-map-marker\n latitude={37.7749}\n longitude={-122.4194}\n >\n <s-image src=\"https://cdn.shopify.com/YOUR_IMAGE_HERE\" slot=\"graphic\"></s-image>\n </s-map-marker>\n</s-map>\n", + "language": "html" + } + ] + } + } + ] + } + }, + { + "name": "Modal", + "description": "Displays content in an overlay. Use to create a distraction-free experience such as a confirmation dialog or a settings panel.", + "category": "Web components", + "subCategory": "Overlays", + "related": [], + "thumbnail": "modal-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ModalElementProps", + "typeDefinitions": { + "ModalElementProps": { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "name": "ModalElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose of the modal, announced by assistive technologies. When set, screen readers will use this label instead of the `heading` to describe the modal.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "heading", + "value": "string", + "description": "A title that describes the content of the modal.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "padding", + "value": "'base' | 'none'", + "description": "Adjust the padding around the modal content.\n\n- `base`: Applies padding that is appropriate for the element.\n- `none`: Removes all padding from the element. This can be useful when elements inside the modal need to span to the edge of the modal. For example, a full-width image. In this case, rely on box with a padding of `base` to bring back the desired padding for the rest of the content.", + "isOptional": true, + "defaultValue": "'base'" + }, + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "size", + "value": "'small' | 'large' | 'base' | 'small-100' | 'large-100' | 'max'", + "description": "The size of the modal.\n\n- `'base'`: The default size, suitable for most use cases.\n- `'small'`: A compact modal for simple confirmations or short messages.\n- `'small-100'`: The smallest modal size.\n- `'large'`: A large modal for complex content or forms.\n- `'large-100'`: The largest fixed-size modal, providing maximum room for content.\n- `'max'`: Expands the modal to its maximum size as defined by the host application, on both the horizontal and vertical axes.", + "isOptional": true, + "defaultValue": "'base'" + } + ], + "value": "export interface ModalElementProps extends Pick {\n /**\n * The size of the modal.\n *\n * - `'base'`: The default size, suitable for most use cases.\n * - `'small'`: A compact modal for simple confirmations or short messages.\n * - `'small-100'`: The smallest modal size.\n * - `'large'`: A large modal for complex content or forms.\n * - `'large-100'`: The largest fixed-size modal, providing maximum room for content.\n * - `'max'`: Expands the modal to its maximum size as defined by the host application, on both the horizontal and vertical axes.\n *\n * @default 'base'\n */\n size?: Extract;\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "ModalElementEvents", + "typeDefinitions": { + "ModalElementEvents": { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "name": "ModalElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "afterhide", + "value": "CallbackEventListener", + "description": "A callback fired when the modal is hidden, after any hide animations have completed.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "aftershow", + "value": "CallbackEventListener", + "description": "A callback fired when the modal is shown, after any show animations have completed.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "hide", + "value": "CallbackEventListener", + "description": "A callback fired immediately after the modal is hidden.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "show", + "value": "CallbackEventListener", + "description": "A callback fired immediately after the modal is shown.", + "isOptional": true + } + ], + "value": "export interface ModalElementEvents {\n /**\n * A callback fired when the modal is hidden, after any hide animations have completed.\n */\n afterhide?: CallbackEventListener;\n /**\n * A callback fired when the modal is shown, after any show animations have completed.\n */\n aftershow?: CallbackEventListener;\n /**\n * A callback fired immediately after the modal is hidden.\n */\n hide?: CallbackEventListener;\n /**\n * A callback fired immediately after the modal is shown.\n */\n show?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "ModalElementSlots", + "typeDefinitions": { + "ModalElementSlots": { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "name": "ModalElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "primary-action", + "value": "HTMLElement", + "description": "The main action button displayed in the modal footer, representing the primary action users should take. Only accepts a single button component.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "secondary-actions", + "value": "HTMLElement", + "description": "Additional action buttons displayed in the modal footer, providing alternative or supporting actions.", + "isOptional": true + } + ], + "value": "export interface ModalElementSlots {\n /**\n * The main action button displayed in the modal footer, representing the primary action users should take. Only accepts a single button component.\n */\n 'primary-action'?: HTMLElement;\n /**\n * Additional action buttons displayed in the modal footer, providing alternative or supporting actions.\n */\n 'secondary-actions'?: HTMLElement;\n}" + } + } + }, + { + "title": "Methods", + "description": "Learn more about [component methods](/docs/api/checkout-ui-extensions/latest/using-polaris-components#methods).", + "type": "ModalElementMethods", + "typeDefinitions": { + "ModalElementMethods": { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "name": "ModalElementMethods", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Modal.ts", + "syntaxKind": "PropertySignature", + "name": "hideOverlay", + "value": "() => void", + "description": "A method to programmatically hide the overlay and run any associated hide animations." + } + ], + "value": "export interface ModalElementMethods extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "modal-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-button command=\"--show\" commandfor=\"modal-1\">Add Product</s-button>\n<s-modal id=\"modal-1\" heading=\"Return Policy\">\n <s-paragraph>\n We have a 30-day return policy, which means you have 30 days after receiving\n your item to request a return.\n </s-paragraph>\n <s-paragraph>\n To be eligible for a return, your item must be in the same condition that\n you received it, unworn or unused, with tags, and in its original packaging.\n You’ll also need the receipt or proof of purchase.\n </s-paragraph>\n <s-button\n variant=\"primary\"\n command=\"--hide\"\n commandfor=\"modal-1\"\n slot=\"primary-action\"\n >\n Close\n </s-button>\n</s-modal>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Money field", + "description": "The money field component collects monetary values from users with built-in currency formatting and validation. Use money field for prices, costs, or financial amounts to provide proper currency symbols, decimal handling, and numeric validation.\n\nMoney fields support currency codes, automatic formatting, and min/max constraints to ensure users enter valid monetary values. For non-currency numeric input, use [number field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/number-field).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "money-field-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "MoneyFieldElementProps", + "typeDefinitions": { + "MoneyFieldElementProps": { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "name": "MoneyFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "max", + "value": "number", + "description": "The highest decimal or integer to be accepted for the field. When used with `step` the value will round down to the max number.\n\nNote: a user will still be able to use the keyboard to input a number higher than the max. It is up to the developer to add appropriate validation.", + "isOptional": true, + "defaultValue": "Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "min", + "value": "number", + "description": "The lowest decimal or integer to be accepted for the field. When used with `step` the value will round up to the min number.\n\nNote: a user will still be able to use the keyboard to input a number lower than the min. It is up to the developer to add appropriate validation.", + "isOptional": true, + "defaultValue": "-Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "step", + "value": "number", + "description": "The amount the value can increase or decrease by. This can be an integer or decimal. If a `max` or `min` is specified with `step` when increasing/decreasing the value via the buttons, the final value will always round to the `max` or `min` rather than the closest valid amount.", + "isOptional": true, + "defaultValue": "1" + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface MoneyFieldElementProps extends Pick {\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "MoneyFieldElementEvents", + "typeDefinitions": { + "MoneyFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "name": "MoneyFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the money field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the money field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the money field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the money field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface MoneyFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the money field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the money field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the money field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the money field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/MoneyField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "money-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-money-field label=\"Price\" defaultValue=\"9.99\"></s-money-field>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Number field", + "description": "The number field component captures numeric input with built-in number validation. Use it to collect quantities, prices, or other numeric information.\n\nThe component supports min/max constraints and step increments for guided numeric entry. For monetary values with currency formatting, use [money field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/money-field).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "number-field-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "NumberFieldElementProps", + "typeDefinitions": { + "NumberFieldElementProps": { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "name": "NumberFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "controls", + "value": "'auto' | 'stepper' | 'none'", + "description": "Sets the type of controls displayed in the field.\n\n- `stepper`: displays buttons to increase or decrease the value of the field by the stepping interval defined in the `step` property. Appropriate mouse and [keyboard interactions](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/spinbutton_role#keyboard_interactions) to control the value of the field are enabled.\n- `none`: no controls are displayed and users must input the value manually. Arrow keys and scroll wheels can’t be used either to avoid accidental changes.\n- `auto`: the presence of the controls depends on the surface and context.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "icon", + "value": "'' | 'cart' | 'note' | 'settings' | 'reset' | 'map' | 'menu' | 'search' | 'circle' | 'filter' | 'image' | 'alert-circle' | 'alert-triangle-filled' | 'alert-triangle' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up-right' | 'arrow-up' | 'bag' | 'bullet' | 'calendar' | 'camera' | 'caret-down' | 'cash-dollar' | 'categories' | 'check-circle' | 'check' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'clipboard' | 'clock' | 'credit-card' | 'delete' | 'delivered' | 'delivery' | 'disabled' | 'discount' | 'edit' | 'email' | 'empty' | 'external' | 'geolocation' | 'gift-card' | 'globe' | 'grid' | 'info-filled' | 'info' | 'list-bulleted' | 'location' | 'lock' | 'menu-horizontal' | 'menu-vertical' | 'minus' | 'mobile' | 'order' | 'organization' | 'plus' | 'profile' | 'question-circle-filled' | 'question-circle' | 'reorder' | 'return' | 'savings' | 'star-filled' | 'star-half' | 'star' | 'store' | 'truck' | 'upload' | 'x-circle-filled' | 'x-circle' | 'x'", + "description": "The type of icon to be displayed in the field.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "inputMode", + "value": "'decimal' | 'numeric'", + "description": "Sets the virtual keyboard.", + "isOptional": true, + "defaultValue": "'decimal'" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "max", + "value": "number", + "description": "The highest decimal or integer to be accepted for the field. When used with `step` the value will round down to the max number.\n\nNote: a user will still be able to use the keyboard to input a number higher than the max. It is up to the developer to add appropriate validation.", + "isOptional": true, + "defaultValue": "Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "min", + "value": "number", + "description": "The lowest decimal or integer to be accepted for the field. When used with `step` the value will round up to the min number.\n\nNote: a user will still be able to use the keyboard to input a number lower than the min. It is up to the developer to add appropriate validation.", + "isOptional": true, + "defaultValue": "-Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "placeholder", + "value": "string", + "description": "", + "isOptional": true, + "deprecationMessage": "Use `label` instead.", + "isPrivate": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "prefix", + "value": "string", + "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "step", + "value": "number", + "description": "The amount the value can increase or decrease by. This can be an integer or decimal. If a `max` or `min` is specified with `step` when increasing/decreasing the value via the buttons, the final value will always round to the `max` or `min` rather than the closest valid amount.", + "isOptional": true, + "defaultValue": "1" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "suffix", + "value": "string", + "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface NumberFieldElementProps extends Pick {\n icon?: IconProps['type'];\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "NumberFieldElementEvents", + "typeDefinitions": { + "NumberFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "name": "NumberFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the number field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the number field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the number field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the number field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface NumberFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the number field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the number field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the number field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the number field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "NumberFieldElementSlots", + "typeDefinitions": { + "NumberFieldElementSlots": { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "name": "NumberFieldElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/NumberField.ts", + "syntaxKind": "PropertySignature", + "name": "accessory", + "value": "HTMLElement", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", + "isOptional": true + } + ], + "value": "export interface NumberFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "number-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-number-field\n label=\"Quantity\"\n controls=\"stepper\"\n defaultValue=\"1\"\n step={1}\n min={0}\n max={100}\n></s-number-field>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Ordered list", + "description": "The ordered list component displays a numbered list of related items in a specific sequence. Use ordered list to present step-by-step instructions, ranked items, procedures, or any content where order and sequence matter to understanding.\n\nOrdered lists automatically number items and support nested lists for hierarchical content organization. For items where order doesn't matter, use [unordered list](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/unordered-list).", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "isVisualComponent": true, + "thumbnail": "ordered-list-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "OrderedListProps", + "typeDefinitions": { + "OrderedListProps": { + "filePath": "src/surfaces/checkout/components/OrderedList.ts", + "name": "OrderedListProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/OrderedList.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface OrderedListProps extends OrderedListProps$1 {\n}" + } + } + }, + { + "title": "List item", + "description": "The list item component represents a single entry within an ordered list or unordered list. Use list item to structure individual points, steps, or items within a list, with each item automatically receiving appropriate list markers (bullets or numbers) from its parent list.\n\nList item must be used as a direct child of ordered list or unordered list components. Each list item can contain text, inline formatting, or other components to create rich list content.", + "type": "ListItemProps", + "typeDefinitions": { + "ListItemProps": { + "filePath": "src/surfaces/checkout/components/ListItem.ts", + "name": "ListItemProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ListItem.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface ListItemProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "ordered-list-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-ordered-list>\n <s-list-item>Add items to your cart</s-list-item>\n <s-list-item>Review your order details</s-list-item>\n <s-list-item>Complete your purchase</s-list-item>\n</s-ordered-list>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\n- Use `s-ordered-list` when you need to present items in a specific sequence or order.\n- Each item in the list should be wrapped in a `s-list-item` component.\n- Keep list items concise and consistent in length when possible.\n- Use `s-ordered-list` for step-by-step instructions, numbered procedures, or ranked items.\n- Consider using `s-ordered-list` when the order of items is important for understanding." + } + ] + }, + { + "name": "Paragraph", + "description": "The paragraph component displays blocks of text content and can contain inline elements like buttons, links, or emphasized text. Use paragraph to present standalone blocks of readable content, descriptions, or explanatory text.\n\nParagraphs support alignment options and can wrap inline components to create rich, formatted content blocks. For inline text styling, use [text](/docs/api/{API_NAME}/{API_VERSION}/web-components/typography-and-content/text).", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "requires": "", + "thumbnail": "paragraph-thumbnail.png", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ParagraphProps", + "typeDefinitions": { + "ParagraphProps": { + "filePath": "src/surfaces/checkout/components/Paragraph.ts", + "name": "ParagraphProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Paragraph.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityVisibility", + "value": "'visible' | 'hidden' | 'exclusive'", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Paragraph.ts", + "syntaxKind": "PropertySignature", + "name": "color", + "value": "'base' | 'subdued'", + "description": "The color emphasis level that controls visual intensity.\n\n- `subdued`: Deemphasized color for secondary text, supporting labels, and less critical interface elements.\n- `base`: Primary color for body text, standard UI elements, and general content with good readability.\n- `strong`: Emphasized color for headings, key labels, and interactive elements that need prominence.", + "isOptional": true, + "defaultValue": "'base'" + }, + { + "filePath": "src/surfaces/checkout/components/Paragraph.ts", + "syntaxKind": "PropertySignature", + "name": "dir", + "value": "'ltr' | 'rtl' | 'auto' | ''", + "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: The languages written from left to right (such as English).\n- `rtl`: The languages written from right to left (such as Arabic).\n- `auto`: The user agent determines the direction based on the content.\n- `\"\"`: The direction is inherited from parent elements (equivalent to not setting the attribute).\n\nLearn more about the [dir attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir).", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Paragraph.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Paragraph.ts", + "syntaxKind": "PropertySignature", + "name": "lang", + "value": "string", + "description": "The language of the button's text content. Use this when the button text is in a different language than the rest of the page, so assistive technologies can invoke the correct pronunciation. [Reference of values](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) (`Subtag` label)\n\nIt is recommended to combine it with the `dir` attribute to ensure the text is rendered correctly if the surrounding content’s direction is different.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Paragraph.ts", + "syntaxKind": "PropertySignature", + "name": "tone", + "value": "'custom' | 'success' | 'info' | 'auto' | 'neutral' | 'warning' | 'critical'", + "description": "Sets the tone of the component, based on the intention of the information being conveyed.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Paragraph.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'small' | 'paragraph'", + "description": "The semantic type and styling treatment for the paragraph content.\n\nOther presentation properties on `s-paragraph` override the default styling.\n\n- `paragraph`: A semantic type that indicates a structural grouping of related content.\n- `small`: A semantic type that indicates less important text.", + "isOptional": true, + "defaultValue": "'paragraph'" + } + ], + "value": "export interface ParagraphProps extends Pick {\n color?: Extract;\n tone?: Extract;\n /**\n * The semantic type and styling treatment for the paragraph content.\n *\n * Other presentation properties on `s-paragraph` override the default styling.\n *\n * - `paragraph`: A semantic type that indicates a structural grouping of related content.\n * - `small`: A semantic type that indicates less important text.\n *\n * @default 'paragraph'\n */\n type?: Extract;\n}" + } + } + } + ], + "defaultExample": { + "image": "paragraph-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-paragraph>Ship in 1-2 business days.</s-paragraph>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "- Create contrast between more and less important text with properties such as `color` and `tone`." + } + ] + }, + { + "name": "Password field", + "description": "The password field component securely collects sensitive information from users. Use password field for password entry, where input characters are automatically masked for privacy.\n\nPassword fields support validation, help text, and accessibility features to create secure and user-friendly authentication experiences. For general text input, use [text field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/text-field).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "password-field-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "PasswordFieldElementProps", + "typeDefinitions": { + "PasswordFieldElementProps": { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "name": "PasswordFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "maxLength", + "value": "number", + "description": "Specifies the maximum number of characters allowed.", + "isOptional": true, + "defaultValue": "Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "minLength", + "value": "number", + "description": "Specifies the minimum number of characters allowed.", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface PasswordFieldElementProps extends Pick {\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "PasswordFieldElementEvents", + "typeDefinitions": { + "PasswordFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "name": "PasswordFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the password field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the password field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the password field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the password field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface PasswordFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the password field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the password field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the password field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the password field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "PasswordFieldElementSlots", + "typeDefinitions": { + "PasswordFieldElementSlots": { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "name": "PasswordFieldElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/PasswordField.ts", + "syntaxKind": "PropertySignature", + "name": "accessory", + "value": "HTMLElement", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", + "isOptional": true + } + ], + "value": "export interface PasswordFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "password-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-password-field label=\"Password\" defaultValue=\"12345678\"></s-password-field>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Payment icon", + "description": "Displays icons representing payment methods. Use to visually communicate available or saved payment options clearly", + "category": "Web components", + "subCategory": "Media and visuals", + "related": [], + "thumbnail": "payment-icon-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "PaymentIconProps", + "typeDefinitions": { + "PaymentIconProps": { + "filePath": "src/surfaces/checkout/components/PaymentIcon.ts", + "name": "PaymentIconProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/PaymentIcon.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the payment icon for accessibility. When set, it will be announced to users using assistive technologies such as screen readers, providing context about which payment method the icon represents.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PaymentIcon.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PaymentIcon.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "PaymentIconName | AnyString", + "description": "The payment method to display. Specify a payment method name from the available set (for example, `'visa'`, `'mastercard'`, or `'paypal'`), or use an empty string to show no icon.", + "isOptional": true, + "defaultValue": "''" + } + ], + "value": "export interface PaymentIconProps extends PaymentIconProps$1 {\n}" + }, + "PaymentIconName": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "PaymentIconName", + "value": "\"abn\" | \"acima-leasing\" | \"acuotaz\" | \"ada\" | \"addi\" | \"adyen\" | \"aeropay\" | \"affin-bank\" | \"affirm\" | \"aftee\" | \"afterpay-paynl-version\" | \"afterpay\" | \"airtel-money\" | \"airteltigo-mobile-money\" | \"aktia\" | \"akulaku-paylater\" | \"akulaku\" | \"alandsbanken\" | \"alfamart\" | \"alfamidi\" | \"alipay-hk\" | \"alipay-paynl-version\" | \"alipay\" | \"alliance-bank\" | \"alma\" | \"aman\" | \"amazon\" | \"ambank\" | \"american-express\" | \"amex\" | \"ansa-stored-value\" | \"ansa\" | \"anyday\" | \"apecoin\" | \"aplazo\" | \"apple-pay\" | \"aqsat\" | \"arbitrum\" | \"arhaus\" | \"arvato\" | \"ashley-plcc\" | \"ask\" | \"astrapay\" | \"atm-bersama\" | \"atobaraidotcom\" | \"atome\" | \"atone\" | \"atrato\" | \"au-kantan-kessai\" | \"au-pay\" | \"authorize-net\" | \"avalanche\" | \"axs\" | \"bancnet\" | \"banco-azteca\" | \"bancomat\" | \"bancontact\" | \"bangkok-bank\" | \"bank-islam\" | \"bank-muamalat\" | \"bank-rakyat\" | \"barclays\" | \"base\" | \"bbva-cie\" | \"bc-card\" | \"bca-klikpay\" | \"bca\" | \"bdo\" | \"belfius\" | \"benefit\" | \"best-buy-card\" | \"biercheque-paynl-version\" | \"bigc\" | \"billease\" | \"biller-paynl-version\" | \"billie\" | \"billink-method\" | \"billink\" | \"bitcoin-cash\" | \"bitcoin\" | \"bizum\" | \"blik\" | \"bnbchain\" | \"bni\" | \"bnp\" | \"bogus-app-coin\" | \"bogus\" | \"boleto\" | \"boodil\" | \"boost\" | \"bpi\" | \"braintree\" | \"bread-pay\" | \"bread\" | \"bri-direct-debit\" | \"bri\" | \"brimo\" | \"bsi\" | \"bsn\" | \"bss\" | \"busd\" | \"careem-pay\" | \"cartes-bancaires\" | \"cash-app-pay\" | \"cash\" | \"cashew\" | \"cashinvoice-latin-america\" | \"catch-payments\" | \"cebuana\" | \"cembrapay\" | \"centi\" | \"cetelem\" | \"checkout-finance\" | \"chinabank\" | \"cimb-clicks\" | \"cimb\" | \"circle-k\" | \"citadele\" | \"citi-pay\" | \"clave-telered\" | \"clearpay\" | \"clerq\" | \"cleverpay\" | \"clip\" | \"cliq\" | \"codensa\" | \"coinsph\" | \"collector-bank\" | \"coop\" | \"coppel-pay\" | \"credit-agricole\" | \"credit-key\" | \"creditclick-paynl-version\" | \"credix\" | \"cuotas\" | \"d-barai\" | \"dai\" | \"daily-yamazaki\" | \"dan-dan\" | \"dana\" | \"danamon-online\" | \"dankort\" | \"danske-bank\" | \"dappmx\" | \"dash\" | \"daviplata\" | \"de-cadeaukaart\" | \"depay\" | \"deutsche-bank\" | \"dinacard\" | \"diners-club\" | \"direct-bank-transfer-latin-america\" | \"directa24\" | \"directpay\" | \"discover\" | \"divido\" | \"dnb\" | \"docomo-barai\" | \"dogecoin\" | \"dropp\" | \"duitnow\" | \"duologi\" | \"dwolla\" | \"easywallet\" | \"ebucks\" | \"echelon-financing\" | \"ecpay\" | \"edenred\" | \"efecty\" | \"eft-secure\" | \"eftpos-au\" | \"eghl\" | \"elo\" | \"elv\" | \"empty\" | \"enets\" | \"eos\" | \"epayments\" | \"epospay\" | \"eps\" | \"erste\" | \"escrowcom\" | \"esr-paymentslip-switzerland\" | \"ethereum\" | \"etihad-guest-pay\" | \"etika\" | \"ewallet-indonesia\" | \"ewallet-philippines\" | \"ewallet-southkorea\" | \"facebook-pay\" | \"fairstone-payments\" | \"fam\" | \"familymart\" | \"fantom\" | \"farmlands\" | \"fashion-giftcard-paynlversion\" | \"fashioncheque\" | \"favepay\" | \"fawry\" | \"finloup\" | \"fintecture\" | \"fintoc\" | \"flexiti\" | \"float-payments\" | \"flying-blue-plus\" | \"forbrugsforeningen\" | \"forsa\" | \"fortiva\" | \"fps\" | \"fpx\" | \"freecharge\" | \"freedompay\" | \"futurepay-mytab\" | \"gcash\" | \"generalfinancing\" | \"generic\" | \"genoapay\" | \"gezondheidsbon-paynl-version\" | \"giftcard\" | \"giropay\" | \"givacard\" | \"glbe-paypal\" | \"glbe-plus\" | \"gmo-atokara\" | \"gmo-bank-transfer\" | \"gmo-postpay\" | \"gmo-virtualaccount\" | \"gnosis\" | \"google-pay\" | \"google-wallet\" | \"gopay\" | \"grabpay\" | \"grailpay\" | \"gusd\" | \"hana-card\" | \"handelsbanken\" | \"happy-pay\" | \"hello-clever\" | \"heylight\" | \"hitrustpay-transfer\" | \"home-credit\" | \"hong-leong-bank\" | \"hong-leong-connect\" | \"hsbc\" | \"huis-tuin-cadeau\" | \"humm\" | \"hyper\" | \"hypercard\" | \"hypercash\" | \"hyundai-card\" | \"ibexpay\" | \"ideal\" | \"in3-via-ideal\" | \"in3\" | \"inbank\" | \"indomaret\" | \"ing-homepay\" | \"interac\" | \"ivy\" | \"iwocapay-pay-later\" | \"jcb\" | \"jenius\" | \"jko\" | \"jousto\" | \"kakao-pay\" | \"kakebaraidotcom\" | \"kasikornbank\" | \"kasssh\" | \"katapult\" | \"kb-card\" | \"kbc-cbc\" | \"kcp-credit-card\" | \"kfast\" | \"khqr\" | \"klarna-pay-later\" | \"klarna-pay-now\" | \"klarna-slice-it\" | \"klarna\" | \"knaken-settle\" | \"knet\" | \"koalafi\" | \"koin\" | \"krediidipank\" | \"kredivo\" | \"krungsri\" | \"krungthai-bank\" | \"kueski-pay\" | \"kunst-en-cultuur-cadeaukaart\" | \"kuwait-finance-house\" | \"land-bank\" | \"laser\" | \"latitude-creditline-au\" | \"latitude-gem-au\" | \"latitude-gem-nz\" | \"latitude-go-au\" | \"latitudepay\" | \"lawson\" | \"laybuy-heart\" | \"laybuy\" | \"lbc\" | \"lhv\" | \"line-pay\" | \"linkaja\" | \"linkpay\" | \"litecoin\" | \"lku\" | \"lloyds\" | \"lotte-card\" | \"lpb\" | \"luminor\" | \"lunch-check\" | \"lydia\" | \"mach\" | \"mada\" | \"maestro\" | \"mandiri\" | \"mash\" | \"master\" | \"mastercard\" | \"masterpass\" | \"maxima\" | \"maya-bank\" | \"maya\" | \"maybank-qrpay\" | \"maybank\" | \"maybankm2u\" | \"mb-way\" | \"mb\" | \"mcash\" | \"medicinos-bankas\" | \"meeza\" | \"mercado-credito\" | \"mercado-pago\" | \"merpay\" | \"meta-pay\" | \"metro-bank\" | \"military-starcard\" | \"minicuotas\" | \"ministop\" | \"mobicred\" | \"mobikwik\" | \"mobilepay\" | \"mode\" | \"mokka\" | \"momopay\" | \"mondido\" | \"monero\" | \"monzo\" | \"mpesa\" | \"mtn-mobile-money\" | \"multisafepay\" | \"mybank\" | \"myfatoorah\" | \"n26\" | \"naps\" | \"nationale-bioscoopbon\" | \"nationale-entertainmentcard\" | \"natwest\" | \"naver-pay\" | \"nelo\" | \"nequi\" | \"netbanking\" | \"neteller\" | \"nh-card\" | \"nordea\" | \"notyd\" | \"novuna\" | \"npatobarai\" | \"npkakebarai\" | \"oca\" | \"ocbc-bank\" | \"octo-clicks\" | \"octopus\" | \"offline-bank-transfer-latin-america\" | \"ola-money\" | \"omannet\" | \"omasp\" | \"oney\" | \"online-banking\" | \"online-banktransfer\" | \"op\" | \"opay\" | \"openpay\" | \"optimism\" | \"orange-mobile-money\" | \"overstock-citicobrand\" | \"overstock-citiplcc\" | \"ovo\" | \"oxxo\" | \"ozow\" | \"pagoefectivo\" | \"paid\" | \"paidy\" | \"palawa\" | \"palawan\" | \"pastpay\" | \"pay-after-delivery-instalments\" | \"pay-by-bank-us\" | \"pay-by-bank\" | \"pay-easy\" | \"pay-pay\" | \"paybylink\" | \"paycash\" | \"payco\" | \"payconiq\" | \"payd\" | \"payfast-instant-eft\" | \"payflex\" | \"payid\" | \"payitmonthly\" | \"payjustnow\" | \"paymark-online-eftpos\" | \"paymaya\" | \"payme\" | \"paynow-mbank\" | \"paynow\" | \"payoo-qr\" | \"payoo\" | \"paypal\" | \"payplan\" | \"paypo\" | \"payrexx-bank-transfer\" | \"payright\" | \"paysafecard-paynl-version\" | \"paysafecard\" | \"paysafecash\" | \"paysera\" | \"paysquad\" | \"paytm\" | \"payto\" | \"paytomorrow\" | \"payu\" | \"payzapp\" | \"pei\" | \"perlasfinance\" | \"permata\" | \"pf-pay\" | \"pivo\" | \"pix\" | \"podium-cadeaukaart\" | \"pointspay\" | \"poli\" | \"polygon\" | \"poppankki\" | \"postfinance-card\" | \"postfinance-efinance\" | \"postpay\" | \"powered-by-ansa-stored-value\" | \"powered-by-ansa\" | \"powerpay\" | \"pps\" | \"prepaysolutions\" | \"progressive-leasing\" | \"przelew24\" | \"przelewy24-paynl-version\" | \"przelewy24\" | \"pse\" | \"public-bank\" | \"publicbank-pbe\" | \"qasitli\" | \"qliro\" | \"qr-promptpay\" | \"qris\" | \"qrph\" | \"rabbit-line-pay\" | \"rabobank\" | \"rakuten-pay\" | \"rapid-transfer\" | \"ratepay\" | \"raty-pekao\" | \"rcbc\" | \"rcs\" | \"reka\" | \"resolve-pay\" | \"revolut\" | \"rhb-bank\" | \"rhb-now\" | \"rietumu\" | \"riverty-paynl-version\" | \"riverty\" | \"rupay\" | \"saastopankki\" | \"sadad\" | \"sam\" | \"samsung-card\" | \"samsung-pay\" | \"santander\" | \"satisfi\" | \"satispay\" | \"sbpl\" | \"scalapay\" | \"scream-truck-wallet\" | \"scream-truck\" | \"seb\" | \"seicomart\" | \"sepa-bank-transfer\" | \"sepa-direct-debit\" | \"sequra\" | \"seven-eleven\" | \"sezzle\" | \"shib\" | \"shinhan-card\" | \"shop-pay\" | \"shopeepay\" | \"shopify-pay\" | \"siam-commercial\" | \"siauliu-bankas\" | \"siirto\" | \"sika-fsa\" | \"sika-hsa\" | \"sika\" | \"simpl\" | \"simple-pay\" | \"sinpe-movil\" | \"sistecredito\" | \"skeps\" | \"skrill-digital-wallet\" | \"slice-fnbo\" | \"smartpay\" | \"snap-checkout\" | \"snapmint\" | \"societe-generale\" | \"sofort\" | \"softbank\" | \"solana-pay-helio\" | \"solana-pay\" | \"solana\" | \"souhoola\" | \"spankki\" | \"sparkasse\" | \"spei\" | \"splitit\" | \"spotii\" | \"spraypay\" | \"standard-chartered\" | \"stc-pay\" | \"stoov\" | \"store-credit\" | \"stripe\" | \"sunkus\" | \"super-payments\" | \"svea-b2b-faktura\" | \"svea-b2b-invoice\" | \"svea-checkout\" | \"svea-credit-account\" | \"svea-delbetalning\" | \"svea-faktura\" | \"svea-invoice\" | \"svea-lasku\" | \"svea-ostukonto\" | \"svea-part-payment\" | \"svea-yrityslasku\" | \"sveaeramaksu\" | \"swedbank\" | \"swiftpay\" | \"swish\" | \"swissbilling\" | \"sympl\" | \"synchrony-pay\" | \"synchrony\" | \"tabby\" | \"tabit\" | \"taly\" | \"tamara\" | \"tandympayment\" | \"tasa-cero\" | \"tbi-bank\" | \"tcf\" | \"tendopay\" | \"tensile\" | \"tesco-lotus\" | \"thanachart-bank\" | \"timepayment\" | \"tiptop\" | \"todopay\" | \"toss\" | \"touch-n-go\" | \"tpay\" | \"trevipay\" | \"truelayer\" | \"truemoney-pay\" | \"trustly\" | \"twig-pay\" | \"twint\" | \"twoinvoice\" | \"uae-visa\" | \"uangme\" | \"ubp\" | \"underpay\" | \"unionpay\" | \"unipay\" | \"uob-ez-pay\" | \"uob-thai\" | \"uob\" | \"upi\" | \"urbo\" | \"urpay\" | \"usdc\" | \"usdp\" | \"v-pay\" | \"valu\" | \"venmo\" | \"ventipay\" | \"venus-plcc\" | \"viabill\" | \"vipps\" | \"visa-electron\" | \"visa\" | \"volksbank\" | \"volt\" | \"vvv-cadeaukaart-paynl-version\" | \"vvv-giftcard\" | \"waave-pay-by-bank\" | \"wallet\" | \"walley\" | \"wbtc\" | \"webshop-giftcard\" | \"wechat-pay\" | \"wechat-paynl-version\" | \"wegetfinancing\" | \"whish-checkout\" | \"whish-pay\" | \"wise\" | \"wissel\" | \"world-chain\" | \"xrp\" | \"yape\" | \"yappy\" | \"ymobile\" | \"younited-pay\" | \"zalopay\" | \"zapper\" | \"zingala\" | \"zinia\" | \"zip\" | \"zoodpay\" | \"zulily-credit-card\" | \"zustaina\"", + "description": "", + "isPublicDocs": true + }, + "AnyString": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AnyString", + "value": "string & {}", + "description": "Prevents widening string literal types in a union to `string`.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "payment-icon-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-payment-icon type=\"paypal\" />\n<s-payment-icon type=\"apple-pay\" />\n<s-payment-icon type=\"mastercard\" />\n<s-payment-icon type=\"shop-pay\" />\n<s-payment-icon type=\"visa\" />\n<s-payment-icon type=\"amex\" />\n<s-payment-icon type=\"klarna\" />\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Phone field", + "description": "Use PhoneField to allow users to enter phone numbers.", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "phone-field-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "PhoneFieldElementProps", + "typeDefinitions": { + "PhoneFieldElementProps": { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "name": "PhoneFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "placeholder", + "value": "string", + "description": "", + "isOptional": true, + "deprecationMessage": "Use `label` instead.", + "isPrivate": true + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'mobile' | ''", + "description": "The type of phone number to collect. Specific styling may be applied to each type to provide extra guidance to users. No additional validation is performed based on the type.\n\nStyling hint for the input keyboard. Doesn't validate the phone number format. Implement validation in your extension and use the `error` prop to show results.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface PhoneFieldElementProps extends Pick {\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "PhoneFieldElementEvents", + "typeDefinitions": { + "PhoneFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "name": "PhoneFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the phone field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the phone field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the phone field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the phone field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface PhoneFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the phone field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the phone field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the phone field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the phone field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "PhoneFieldElementSlots", + "typeDefinitions": { + "PhoneFieldElementSlots": { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "name": "PhoneFieldElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/PhoneField.ts", + "syntaxKind": "PropertySignature", + "name": "accessory", + "value": "HTMLElement", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", + "isOptional": true + } + ], + "value": "export interface PhoneFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "phone-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-phone-field label=\"Phone number\" defaultValue=\"888-746-7439\">\n</s-phone-field>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Popover", + "description": "Popovers are used to display content in an overlay that can be triggered by a button.", + "category": "Web components", + "subCategory": "Overlays", + "related": [], + "thumbnail": "popover-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "PopoverElementProps", + "typeDefinitions": { + "PopoverElementProps": { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "name": "PopoverElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "SizeUnitsOrAuto", + "description": "The block size of the popover (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "SizeUnitsOrAuto", + "description": "The inline size of the popover (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "SizeUnitsOrNone", + "description": "The maximum block size of the popover. Constrains the popover's height to prevent it from exceeding this value. Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "SizeUnitsOrNone", + "description": "The maximum inline size of the popover. Constrains the popover's width to prevent it from exceeding this value. Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "SizeUnits", + "description": "The minimum block size of the popover. Ensures the popover maintains at least this height. Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "SizeUnits", + "description": "The minimum inline size of the popover. Ensures the popover maintains at least this width. Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + } + ], + "value": "export interface PopoverElementProps extends Pick {\n /**\n * The block size of the popover (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n *\n * @default 'auto'\n */\n blockSize?: SizeUnitsOrAuto;\n /**\n * The inline size of the popover (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n *\n * @default 'auto'\n */\n inlineSize?: SizeUnitsOrAuto;\n /**\n * The maximum block size of the popover. Constrains the popover's height to prevent it from exceeding this value. Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).\n *\n * @default 'none'\n */\n maxBlockSize?: SizeUnitsOrNone;\n /**\n * The maximum inline size of the popover. Constrains the popover's width to prevent it from exceeding this value. Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).\n *\n * @default 'none'\n */\n maxInlineSize?: SizeUnitsOrNone;\n /**\n * The minimum block size of the popover. Ensures the popover maintains at least this height. Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).\n *\n * @default '0'\n */\n minBlockSize?: SizeUnits;\n /**\n * The minimum inline size of the popover. Ensures the popover maintains at least this width. Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).\n *\n * @default '0'\n */\n minInlineSize?: SizeUnits;\n}" + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + }, + "SizeUnitsOrNone": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrNone", + "value": "SizeUnits | \"none\"", + "description": "Represents size values that can also be set to `none` to remove the size constraint.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `none`: No size constraint, allowing unlimited growth. Learn more about the [none value](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#none).", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "PopoverElementEvents", + "typeDefinitions": { + "PopoverElementEvents": { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "name": "PopoverElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "hide", + "value": "CallbackEventListener", + "description": "A callback fired immediately after the popover is hidden.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "PropertySignature", + "name": "show", + "value": "CallbackEventListener", + "description": "A callback fired immediately after the popover is shown.", + "isOptional": true + } + ], + "value": "export interface PopoverElementEvents {\n /**\n * A callback fired immediately after the popover is hidden.\n */\n hide?: CallbackEventListener;\n /**\n * A callback fired immediately after the popover is shown.\n */\n show?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Popover.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "popover-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-button commandFor=\"popover-veteran-id\">Open Popover</s-button>\n<s-popover id=\"popover-veteran-id\">\n <s-stack gap=\"base\" padding=\"base\" direction=\"inline\">\n <s-text-field label=\"Veteran ID\"></s-text-field>\n <s-button variant=\"primary\">Validate</s-button>\n </s-stack>\n</s-popover>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Press button", + "description": "Allows users to toggle between active/inactive states. Use to represent a persistent on/off or selected/unselected status.", + "category": "Web components", + "subCategory": "Actions", + "related": [], + "thumbnail": "press-button-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "PressButtonElementProps", + "typeDefinitions": { + "PressButtonElementProps": { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "name": "PressButtonElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or content of the button for users of assistive technologies such as screen readers. Use this when the visible content alone doesn't provide enough context.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "defaultPressed", + "value": "boolean", + "description": "Whether the button is pressed by default.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the button is disabled, preventing it from being clicked or receiving focus.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "'auto' | 'fill' | 'fit-content'", + "description": "The inline width of the button component.\n\n- `auto`: The size of the button depends on the surface and context.\n- `fill`: The button takes up 100% of the available inline size.\n- `fit-content`: The button will take up the minimum inline-size required to fit its content.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "lang", + "value": "string", + "description": "The language of the button's text content. Use this when the button text is in a different language than the rest of the page, so assistive technologies can invoke the correct pronunciation. [Reference of values](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) (`Subtag` label)", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "loading", + "value": "boolean", + "description": "Whether the button is in a loading state, which replaces the button content with a loading indicator while a background action is being performed.\n\nThis also disables the button.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "pressed", + "value": "boolean", + "description": "Whether the button is pressed.", + "isOptional": true, + "defaultValue": "false" + } + ], + "value": "export interface PressButtonElementProps extends Pick {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "PressButtonElementEvents", + "typeDefinitions": { + "PressButtonElementEvents": { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "name": "PressButtonElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "A callback fired when the button loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "click", + "value": "CallbackEventListener", + "description": "A callback fired when the button is clicked.\n\nLearn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the button receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + } + ], + "value": "export interface PressButtonElementEvents {\n /**\n * A callback fired when the button is clicked.\n *\n * Learn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).\n */\n click?: CallbackEventListener;\n /**\n * A callback fired when the button loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the button receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/PressButton.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "press-button-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-press-button>Add gift wrapping</s-press-button>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Product thumbnail", + "description": "Use ProductThumbnail to display a product thumbnail", + "category": "Web components", + "subCategory": "Media and visuals", + "related": [], + "thumbnail": "product-thumbnail-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ProductThumbnailProps", + "typeDefinitions": { + "ProductThumbnailProps": { + "filePath": "src/surfaces/checkout/components/ProductThumbnail.ts", + "name": "ProductThumbnailProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ProductThumbnail.ts", + "syntaxKind": "PropertySignature", + "name": "alt", + "value": "string", + "description": "Alternative text that describes the image for accessibility.\n\nProvides a text description of the image for users with assistive technology and serves as a fallback when the image fails to load. A well-written description enables people with visual impairments to understand non-text content.\n\nWhen a screen reader encounters an image, it reads this description aloud. When an image fails to load, this text displays on screen, helping all users understand what content was intended.\n\nLearn more about [writing effective alt text](https://www.shopify.com/ca/blog/image-alt-text#4) and the [alt attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#alt).", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/ProductThumbnail.ts", + "syntaxKind": "PropertySignature", + "name": "size", + "value": "'small' | 'base' | 'small-100'", + "description": "The size of the product thumbnail image.\n\n- `'base'`: Default size that works well in most contexts.\n- `'small'`: Small thumbnail, good for secondary contexts or tight layouts.\n- `'small-100'`: Extra small thumbnail for compact displays or dense lists.", + "isOptional": true, + "defaultValue": "'base'" + }, + { + "filePath": "src/surfaces/checkout/components/ProductThumbnail.ts", + "syntaxKind": "PropertySignature", + "name": "sizes", + "value": "string", + "description": "A set of media conditions and their corresponding sizes. Learn more about the [sizes attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#sizes).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ProductThumbnail.ts", + "syntaxKind": "PropertySignature", + "name": "src", + "value": "string", + "description": "The image source (either a remote URL or a local file resource).\n\nWhen the image is loading or no `src` is provided, a placeholder is rendered. Learn more about the [src attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#src).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ProductThumbnail.ts", + "syntaxKind": "PropertySignature", + "name": "srcSet", + "value": "string", + "description": "A set of image sources and their width or pixel density descriptors. Learn more about the [srcset attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#srcset). This overrides the `src` property.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ProductThumbnail.ts", + "syntaxKind": "PropertySignature", + "name": "totalItems", + "value": "number", + "description": "The total number of items that the product thumbnail represents. When this value exceeds 1, the component displays a badge showing the count, useful for representing bundled products or quantities.", + "isOptional": true + } + ], + "value": "export interface ProductThumbnailProps extends Pick {\n /**\n * The size of the product thumbnail image.\n *\n * - `'base'`: Default size that works well in most contexts.\n * - `'small'`: Small thumbnail, good for secondary contexts or tight layouts.\n * - `'small-100'`: Extra small thumbnail for compact displays or dense lists.\n *\n * @default 'base'\n */\n size?: Extract;\n}" + } + } + } + ], + "defaultExample": { + "image": "product-thumbnail-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-product-thumbnail\n src=\"https://cdn.shopify.com/YOUR_IMAGE_HERE\"\n totalItems={2}\n></s-product-thumbnail>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Progress", + "description": "Displays an indicator showing the completion status of a task. Use to visually communicate progress in either determinate (known percentage) or indeterminate (unknown duration) states.", + "category": "Web components", + "subCategory": "Feedback and status indicators", + "related": [], + "requires": "", + "isVisualComponent": true, + "thumbnail": "progress-thumbnail.png", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ProgressProps", + "typeDefinitions": { + "ProgressProps": { + "filePath": "src/surfaces/checkout/components/Progress.ts", + "name": "ProgressProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Progress.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label announced by assistive technologies that describes what is progressing. Use this to provide context about the ongoing task, such as \"Loading order details\" or \"Uploading file\".", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Progress.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Progress.ts", + "syntaxKind": "PropertySignature", + "name": "max", + "value": "number", + "description": "The total amount of work the task requires. Must be a value greater than `0` and a valid floating point number.\n\nLearn more about the [max attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#max).", + "isOptional": true, + "defaultValue": "1" + }, + { + "filePath": "src/surfaces/checkout/components/Progress.ts", + "syntaxKind": "PropertySignature", + "name": "tone", + "value": "'auto' | 'critical'", + "description": "The semantic meaning and color treatment of the progress indicator.\n\n- `auto`: Automatically determined based on context.\n- `critical`: Indicates an urgent or error state requiring immediate attention.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Progress.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "number", + "description": "How much of the task has been completed. Must be a valid floating point number between `0` and `max`, or between `0` and `1` if `max` is omitted. When no value is set, the progress bar is indeterminate, indicating an ongoing activity with no estimated completion time.\n\nLearn more about the [value attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#value).", + "isOptional": true + } + ], + "value": "export interface ProgressProps extends Pick {\n /**\n * A label announced by assistive technologies that describes what is progressing. Use this to provide context about the ongoing task, such as \"Loading order details\" or \"Uploading file\".\n */\n accessibilityLabel?: ProgressProps$1['accessibilityLabel'];\n /**\n * The total amount of work the task requires. Must be a value greater than `0` and a valid floating point number.\n *\n * Learn more about the [max attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#max).\n *\n * @default 1\n */\n max?: ProgressProps$1['max'];\n /**\n * The semantic meaning and color treatment of the progress indicator.\n *\n * - `auto`: Automatically determined based on context.\n * - `critical`: Indicates an urgent or error state requiring immediate attention.\n *\n * @default 'auto'\n */\n tone?: Extract;\n /**\n * How much of the task has been completed. Must be a valid floating point number between `0` and `max`, or between `0` and `1` if `max` is omitted. When no value is set, the progress bar is indeterminate, indicating an ongoing activity with no estimated completion time.\n *\n * Learn more about the [value attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#value).\n */\n value?: ProgressProps$1['value'];\n}" + } + } + } + ], + "defaultExample": { + "image": "progress-default.png", + "codeblock": { + "title": "Default example", + "tabs": [ + { + "code": "<s-progress value={0.5}></s-progress>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\nUse components like [Paragraph](../titles-and-text/paragraph) or [Text](../titles-and-text/text), along with the Progress component, to display text indicating the status of the progress bar.\n\n### Loading states\n\nFor loading states, add text to reassure the user that the progress bar is not frozen.\n\n![A progress bar with \"Loading\" text](/assets/landing-pages/templated-apis/checkout-ui-extensions/ui-components/progress-loading.png)\n\n### Error states\n\nFor error states, add text or a [Banner](./banner) to describe the error and next steps. Use the `critical` tone property to convey urgency.\n\n![A progress bar with error text that says \"There was a problem with the file upload. Please try again.\"](/assets/landing-pages/templated-apis/checkout-ui-extensions/ui-components/progress-error.png)\n\n### Visualize a goal\n\nUse the Progress component to visualize a goal that's valuable to the customer.\n\nHere's an example of using a progress bar to show a customer's progress toward the next rewards tier:\n\n![A progress bar in customer accounts, showing that the customer is on their way to reaching the Botanical maven rewards tier.](/assets/landing-pages/templated-apis/checkout-ui-extensions/ui-components/progress-goal.png)\n\nHere's an example of using a progress bar to show how much more a customer needs to spend to get free shipping:\n\n![A progress bar at checkout, showing that the customer is $43 away from free shipping.](/assets/landing-pages/templated-apis/checkout-ui-extensions/ui-components/progress-free-shipping.png)\n " + } + ] + }, + { + "name": "QR code", + "description": "Displays a scannable QR code representing data such as URLs or text. Use to let users quickly access information by scanning with a smartphone or other device.", + "category": "Web components", + "subCategory": "Media and visuals", + "related": [], + "requires": "", + "isVisualComponent": true, + "thumbnail": "qr-code-thumbnail.png", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "QRCodeElementProps", + "typeDefinitions": { + "QRCodeElementProps": { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "name": "QRCodeElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the QR code for accessibility. When set, it will be announced to users using assistive technologies such as screen readers.", + "isOptional": true, + "defaultValue": "'QR code' (translated to the user's locale)" + }, + { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "'base' | 'none'", + "description": "Whether to display a border around the QR code.\n\n- `'base'`: Applies a standard border to frame the QR code.\n- `'none'`: Removes the border for seamless integration with the surrounding layout.", + "isOptional": true, + "defaultValue": "'base'" + }, + { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "PropertySignature", + "name": "content", + "value": "string", + "description": "The content to be encoded in the QR code, such as a URL, email address, or plain text. When scanned, the user's device will process this content — typically by opening a URL in a browser or prompting an action based on the content type.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "PropertySignature", + "name": "logo", + "value": "string", + "description": "The URL of an image to display in the center of the QR code, typically used for branding. The image should be small enough not to interfere with the QR code's scannability.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "PropertySignature", + "name": "onError", + "value": "(event: Event) => void", + "description": "A callback fired when the conversion of `content` to a QR code fails. This can happen when the content is too long or contains unsupported characters.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "PropertySignature", + "name": "size", + "value": "'base' | 'fill'", + "description": "The displayed size of the QR code.\n\n- `'base'`: The QR code is displayed at its default fixed size.\n- `'fill'`: The QR code takes up 100% of the available inline size, useful for responsive layouts.", + "isOptional": true, + "defaultValue": "'base'" + } + ], + "value": "export interface QRCodeElementProps extends QRCodeProps$1 {\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "QRCodeElementEvents", + "typeDefinitions": { + "QRCodeElementEvents": { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "name": "QRCodeElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "CallbackEventListener", + "description": "A callback that's fired when the conversion of `content` to a QR code fails.", + "isOptional": true + } + ], + "value": "export interface QRCodeElementEvents {\n /**\n * A callback that's fired when the conversion of `content` to a QR code fails.\n */\n error?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "An event listener typed to a specific HTML element, with a strongly typed `currentTarget`.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/QRCode.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "A callback event typed to a specific HTML element, with a strongly typed `currentTarget`.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "qr-code-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-qr-code content=\"https://shopify.com\"></s-qr-code>\n<s-paragraph>\n Scan to visit <s-link href=\"https://shopify.com\">Shopify.com</s-link>\n</s-paragraph>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\n- Always test that the QR code is scannable from a smartphone.\n- Include a square logo if that’s what your customers are familiar with.\n- Increase usability by adding a text description of what the QR code does.\n- Always provide an alternate method for customers to access the content of the QR code.\n- If the content is a URL, provide a [`s-link`](/docs/api/checkout-ui-extensions/components/link) nearby.\n- If the content is data, provide a [`s-button`](/docs/api/checkout-ui-extensions/components/button) to copy the data to the clipboard, or show the data in a readonly [`s-text-field`](/docs/api/checkout-ui-extensions/components/textfield)." + } + ] + }, + { + "name": "Query container", + "description": "The query container component establishes a container query context for responsive design. Use query container to define an element as a containment context, enabling child components or styles to adapt based on the container's size rather than viewport width.\n\nQuery containers support modern responsive patterns where components respond to their container dimensions, creating more flexible and reusable layouts.", + "category": "Web components", + "subCategory": "Layout and structure", + "related": [ + { + "name": "Responsive values", + "subtitle": "Utility", + "url": "/docs/api/checkout-ui-extensions/latest/using-polaris-components#responsive-values", + "type": "utility" + } + ], + "isVisualComponent": true, + "thumbnail": "query-container-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "QueryContainerProps", + "typeDefinitions": { + "QueryContainerProps": { + "filePath": "src/surfaces/checkout/components/QueryContainer.ts", + "name": "QueryContainerProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/QueryContainer.ts", + "syntaxKind": "PropertySignature", + "name": "containerName", + "value": "string", + "description": "The name of the container, which can be used in your container queries to target this container specifically.\n\nWe place the container name of `s-default` on every container. Because of this, it is not required to add a `containerName` identifier in your queries. For example, a `@container (inline-size <= 300px) none, auto` query is equivalent to `@container s-default (inline-size <= 300px) none, auto`.\n\nAny value set in `containerName` will be set alongside alongside `s-default`. For example, `containerName=\"my-container-name\"` will result in a value of `s-default my-container-name` set on the `container-name` CSS property of the rendered HTML.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/QueryContainer.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface QueryContainerProps extends QueryContainerElementProps {\n}" + } + } + } + ], + "defaultExample": { + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-query-container>\n <s-box\n padding=\"@container (inline-size > 500px) large-500, none\"\n background=\"subdued\"\n >\n Padding is applied when the inline-size '>' 500px\n </s-box>\n</s-query-container>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Scroll box", + "description": "Provides a scrollable container for long content that exceeds the available space. Use to display lists, order summaries, or other lengthy content while maintaining a constrained layout.", + "category": "Web components", + "subCategory": "Layout and structure", + "related": [], + "isVisualComponent": true, + "thumbnail": "scroll-box-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "ScrollBoxProps", + "typeDefinitions": { + "ScrollBoxProps": { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "name": "ScrollBoxProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nOnly use this when the element's content is not enough context for users using assistive technologies.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityRole", + "value": "AccessibilityRole", + "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.", + "isOptional": true, + "defaultValue": "'generic'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityVisibility", + "value": "'visible' | 'hidden' | 'exclusive'", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "background", + "value": "'base' | 'subdued' | 'transparent'", + "description": "The background color of the scroll box.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", + "isOptional": true, + "defaultValue": "'transparent'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "BorderShorthand", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "// The following are equivalent:\n\n", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "borderColor", + "value": "'' | 'base'", + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "borderRadius", + "value": "MaybeAllValuesShorthandProperty>", + "description": "The roundedness of the scroll box's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "borderStyle", + "value": "MaybeAllValuesShorthandProperty | \"\"", + "description": "Controls the visual style of the border on all sides, such as solid, dashed, or dotted.\n\nWhen set, this overrides the style value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different styles per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "borderWidth", + "value": "MaybeAllValuesShorthandProperty | ''", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "display", + "value": "MaybeResponsive<\"auto\" | \"none\">", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "MaybeResponsive", + "description": "The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "MaybeResponsive", + "description": "The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "MaybeResponsive", + "description": "The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "MaybeResponsive", + "description": "The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "overflow", + "value": "OverflowKeyword | `${OverflowKeyword} ${OverflowKeyword}`", + "description": "Sets the overflow behavior of the element.\n\n- `hidden`: clips the content when it is larger than the element’s container and the element will not be scrollable in that axis.\n- `auto`: clips the content when it is larger than the element’s container and make it scrollable in that axis.\n\n1-to-2-value syntax is supported but note that, contrary to the CSS, it uses flow-relative values and the order is:\n\n- 2 values: `block inline`", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "padding", + "value": "MaybeResponsive>", + "description": "The padding applied to all edges of the component.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- 1 value applies to all sides\n- 2 values apply to block (top/bottom) and inline (left/right)\n- 3 values apply to block-start (top), inline (left/right), and block-end (bottom)\n- 4 values apply to block-start (top), inline-end (right), block-end (bottom), and inline-start (left)\n\n**Examples:** `base`, `large none`, `base large-100 base small`\n\nUse `auto` to inherit padding from the nearest container with removed padding.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlock", + "value": "MaybeResponsive | \"\">", + "description": "The block-direction padding (top and bottom in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for block-start and block-end.\n\n**Example:** `large none` applies `large` to the top and `none` to the bottom.\n\nOverrides the block value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockEnd", + "value": "MaybeResponsive", + "description": "The block-end padding (bottom in horizontal writing modes).\n\nOverrides the block-end value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockStart", + "value": "MaybeResponsive", + "description": "The block-start padding (top in horizontal writing modes).\n\nOverrides the block-start value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInline", + "value": "MaybeResponsive | \"\">", + "description": "The inline-direction padding (left and right in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for inline-start and inline-end.\n\n**Example:** `large none` applies `large` to the left and `none` to the right.\n\nOverrides the inline value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineEnd", + "value": "MaybeResponsive", + "description": "The inline-end padding (right in LTR writing modes, left in RTL).\n\nOverrides the inline-end value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineStart", + "value": "MaybeResponsive", + "description": "The inline-start padding (left in LTR writing modes, right in RTL).\n\nOverrides the inline-start value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + } + ], + "value": "export interface ScrollBoxProps extends Pick {\n /**\n * The background color of the scroll box.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The color of the border using the design system's color scale. Overrides the color value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderColor?: ReducedColorKeyword | '';\n /**\n * The roundedness of the scroll box's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n}" + }, + "AccessibilityRole": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AccessibilityRole", + "value": "\"main\" | \"header\" | \"footer\" | \"section\" | \"aside\" | \"navigation\" | \"ordered-list\" | \"list-item\" | \"list-item-separator\" | \"unordered-list\" | \"separator\" | \"status\" | \"alert\" | \"generic\" | \"presentation\" | \"none\"", + "description": "The semantic role of a component, used by assistive technologies to convey the element’s purpose to users. Each role maps to a specific HTML element or ARIA role.\n\n- `main`: The primary content of the page.\n- `header`: A page or section header.\n- `footer`: Information such as copyright, navigation links, and privacy statements.\n- `section`: A generic section that should have a heading or `accessibilityLabel`.\n- `aside`: Supporting content related to the main content.\n- `navigation`: A major group of navigation links.\n- `ordered-list`: A list of ordered items.\n- `list-item`: An item inside a list.\n- `list-item-separator`: A divider between list items.\n- `unordered-list`: A list of unordered items.\n- `separator`: A divider that separates sections of content.\n- `status`: A live region with advisory information that is not urgent.\n- `alert`: Important, usually time-sensitive information.\n- `generic`: A nameless container with no semantic meaning (renders a `
`).\n- `presentation`: Strips semantic meaning while keeping visual styling. Synonym for `none`.\n- `none`: Strips semantic meaning while keeping visual styling. Synonym for `presentation`.", + "isPublicDocs": true + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + }, + "BorderShorthand": { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderShorthand", + "value": "ReducedBorderSizeKeyword | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword}` | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword} ${BorderStyleKeyword}`", + "description": "A shorthand string for specifying border properties. Accepts a size alone (`'base'`), size with color (`'base base'`), or size with color and style (`'base base dashed'`). Omitted values use their defaults.", + "isPublicDocs": true + }, + "ReducedBorderSizeKeyword": { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedBorderSizeKeyword", + "value": "'large' | 'base' | 'large-100' | 'large-200' | 'none'", + "description": "The subset of border size values available for this component.\n\n- `base`: Standard border width.\n- `large`: Thick border for strong emphasis.\n- `large-100`: Extra thick border for maximum prominence.\n- `large-200`: The thickest available border.\n- `none`: No border.", + "isPublicDocs": true + }, + "ReducedColorKeyword": { + "filePath": "src/surfaces/checkout/components/ScrollBox.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedColorKeyword", + "value": "'base'", + "description": "The subset of border color values available for this component.\n\n- `base`: The standard border color for most contexts.", + "isPublicDocs": true + }, + "BorderStyleKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderStyleKeyword", + "value": "\"none\" | \"solid\" | \"dashed\" | \"dotted\" | \"auto\"", + "description": "The visual style of a border. Learn more about [border-style](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style).\n\n- `none`: No border is rendered.\n- `solid`: A single continuous line.\n- `dashed`: A series of short dashes.\n- `dotted`: A series of round dots.\n- `auto`: The border style is determined automatically based on the surface's design system.", + "isPublicDocs": true + }, + "MaybeAllValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeAllValuesShorthandProperty", + "value": "T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one to four values, following the [CSS shorthand syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box). Supports specifying values for all four sides: top, right, bottom, and left.\n\n- `T`: Single value that applies to all four sides.\n- `${T} ${T}`: Two values for block axis (top/bottom) and inline axis (left/right).\n- `${T} ${T} ${T}`: Three values for block-start (top), inline axis (left/right), and block-end (bottom).\n- `${T} ${T} ${T} ${T}`: Four values for block-start (top), inline-end (right), block-end (bottom), and inline-start (left).", + "isPublicDocs": true + }, + "SizeUnitsOrNone": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrNone", + "value": "SizeUnits | \"none\"", + "description": "Represents size values that can also be set to `none` to remove the size constraint.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `none`: No size constraint, allowing unlimited growth. Learn more about the [none value](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#none).", + "isPublicDocs": true + }, + "OverflowKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "OverflowKeyword", + "value": "\"auto\" | \"hidden\"", + "description": "", + "isPublicDocs": true + }, + "PaddingKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "PaddingKeyword", + "value": "SizeKeyword | \"none\"", + "description": "Defines the padding size for elements, using the standard size scale or `none` for no padding.\n\n- `SizeKeyword`: Standard padding sizes from the size scale for consistent spacing.\n- `none`: No padding.", + "isPublicDocs": true + }, + "SizeKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeKeyword", + "value": "\"small-500\" | \"small-400\" | \"small-300\" | \"small-200\" | \"small-100\" | \"small\" | \"base\" | \"large\" | \"large-100\" | \"large-200\" | \"large-300\" | \"large-400\" | \"large-500\"", + "description": "The design system's size scale, used to control the dimensions of components like avatars, icons, and thumbnails. Values range from `\"small-500\"` (smallest) through `\"base\"` (standard) to `\"large-500\"` (largest). Not all components support every size — check the component's `size` property type for its available options.", + "isPublicDocs": true + }, + "MaybeTwoValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeTwoValuesShorthandProperty", + "value": "T | `${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one or two values. Supports specifying the same value for both dimensions or different values.\n\n- `T`: Single value that applies to both dimensions.\n- `${T} ${T}`: Two values for block axis (vertical) and inline axis (horizontal).", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "scroll-box-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-scroll-box maxBlockSize=\"100px\">\n <s-box background=\"subdued\" border=\"base\" minBlockSize=\"50px\"></s-box>\n <s-box background=\"subdued\" border=\"base\" minBlockSize=\"50px\"></s-box>\n <s-box background=\"subdued\" border=\"base\" minBlockSize=\"50px\"></s-box>\n</s-scroll-box>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Section", + "description": "The section component groups related content into clearly-defined thematic areas with consistent styling and structure. Use section to organize page content into logical blocks, each with its own heading and visual container.\n\nSections automatically adapt their styling based on nesting depth and adjust heading levels to maintain meaningful, accessible page hierarchies. For simple visual separation without headings, use [divider](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/divider).", + "category": "Web components", + "subCategory": "Layout and structure", + "related": [], + "thumbnail": "section-thumbnail.png", + "isVisualComponent": true, + "subSections": [ + { + "title": "Useful for", + "type": "Generic", + "anchorLink": "useful-for", + "sectionContent": "- Organizing your page in a logical structure based on nesting levels.\n- Creating consistency across pages." + }, + { + "title": "Considerations", + "type": "Generic", + "anchorLink": "considerations", + "sectionContent": "- When adding headings inside sections they automatically use a specific style, which helps keep the content organized and clear." + } + ], + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "SectionProps", + "typeDefinitions": { + "SectionProps": { + "filePath": "src/surfaces/checkout/components/Section.ts", + "name": "SectionProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Section.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label used to describe the section that will be announced by assistive technologies.\n\nWhen no `heading` property is provided or included as a child of the section, you **must** provide an `accessibilityLabel` to describe the section. This is important as it allows assistive technologies to provide the right context to users.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Section.ts", + "syntaxKind": "PropertySignature", + "name": "heading", + "value": "string", + "description": "A title displayed at the top of the section. When provided, it serves as both a visible heading and the accessible name for the section. If omitted, you must provide an `accessibilityLabel` instead.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Section.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface SectionProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "section-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-section heading=\"Rewards\">\n <s-paragraph>\n Earn 10 points for every $1 spent. Redeem 100 points for $10 off your next\n purchase.\n </s-paragraph>\n</s-section>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Select", + "description": "The select component allows users to choose one option from a dropdown menu. Use select when presenting four or more choices to keep interfaces uncluttered and scannable, or when space is limited.\n\nSelect components support option grouping, placeholder text, help text, and validation states to create clear selection interfaces. For more visual selection layouts with radio buttons or checkboxes, use [choice list](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/choice-list).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "select-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "SelectElementProps", + "typeDefinitions": { + "SelectElementProps": { + "filePath": "src/surfaces/checkout/components/Select.ts", + "name": "SelectElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "placeholder", + "value": "string", + "description": "The placeholder text displayed in the field when it's empty, providing a hint about the expected input format or value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface SelectElementProps extends Pick {\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "SelectElementEvents", + "typeDefinitions": { + "SelectElementEvents": { + "filePath": "src/surfaces/checkout/components/Select.ts", + "name": "SelectElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the select loses focus. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the select value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the select receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + } + ], + "value": "export interface SelectElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the select value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the select loses focus.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the select receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Select.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Option", + "description": "Represents a single option within a select component. Use only as a child of `s-select` components.", + "type": "OptionProps", + "typeDefinitions": { + "OptionProps": { + "filePath": "src/surfaces/checkout/components/Option.ts", + "name": "OptionProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Option.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label used for users using assistive technologies like screen readers. When set, any children or `label` supplied will not be announced. This can also be used to display a control without a visual label, while still providing context to users using screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Option.ts", + "syntaxKind": "PropertySignature", + "name": "defaultSelected", + "value": "boolean", + "description": "Whether the control is selected by default.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Option.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the control is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Option.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Option.ts", + "syntaxKind": "PropertySignature", + "name": "selected", + "value": "boolean", + "description": "Whether the control is currently selected.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Option.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The value used in form data when the control is checked.", + "isOptional": true + } + ], + "value": "export interface OptionProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "select-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-select label=\"Country/region\">\n <s-option defaultSelected value=\"CA\">Canada</s-option>\n <s-option value=\"US\">United States</s-option>\n <s-option value=\"UK\">United Kingdom</s-option>\n</s-select>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Sheet", + "description": "The Sheet component displays essential information for customers at the bottom of the screen, appearing above other elements. Use it sparingly to avoid distracting customers during checkout. This component requires access to [Customer Privacy API](/docs/api/checkout-ui-extensions/latest/configuration#collect-buyer-consent) to be rendered. \n\nThe library automatically applies the [WAI-ARIA Dialog pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/) to both the activator and the sheet content.", + "requires": "configuration of the [Customer Privacy](/docs/api/checkout-ui-extensions/latest/configuration#collect-buyer-consent) capability to be rendered.", + "thumbnail": "sheet-thumbnail.png", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "SheetElementProps", + "typeDefinitions": { + "SheetElementProps": { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "name": "SheetElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose of the sheet, announced by assistive technologies. When set, screen readers will use this label instead of the `heading` to describe the sheet.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "defaultOpen", + "value": "boolean", + "description": "Whether the sheet should be open when it first renders. Use sparingly — only when the user must interact with the sheet before proceeding (for example, a privacy consent prompt). Only takes effect on the initial render.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "heading", + "value": "string", + "description": "A title that describes the content of the sheet.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface SheetElementProps extends Pick {\n /**\n * A label that describes the purpose of the sheet, announced by assistive technologies. When set, screen readers will use this label instead of the `heading` to describe the sheet.\n */\n accessibilityLabel?: string;\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "SheetElementEvents", + "typeDefinitions": { + "SheetElementEvents": { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "name": "SheetElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "afterhide", + "value": "CallbackEventListener", + "description": "A callback fired when the sheet is hidden, after any hide animations have completed.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "aftershow", + "value": "CallbackEventListener", + "description": "A callback fired when the sheet is shown, after any show animations have completed.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "hide", + "value": "CallbackEventListener", + "description": "A callback fired immediately after the sheet is hidden.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "show", + "value": "CallbackEventListener", + "description": "A callback fired immediately after the sheet is shown.", + "isOptional": true + } + ], + "value": "export interface SheetElementEvents {\n /**\n * A callback fired when the sheet is hidden, after any hide animations have completed.\n */\n afterhide?: CallbackEventListener;\n /**\n * A callback fired when the sheet is shown, after any show animations have completed.\n */\n aftershow?: CallbackEventListener;\n /**\n * A callback fired immediately after the sheet is hidden.\n */\n hide?: CallbackEventListener;\n /**\n * A callback fired immediately after the sheet is shown.\n */\n show?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "SheetElementSlots", + "typeDefinitions": { + "SheetElementSlots": { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "name": "SheetElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "primary-action", + "value": "HTMLElement", + "description": "The main action button displayed in the sheet footer, representing the primary action users should take. Only accepts a single button component.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "secondary-actions", + "value": "HTMLElement", + "description": "Additional action buttons displayed in the sheet footer, providing alternative or supporting actions.", + "isOptional": true + } + ], + "value": "export interface SheetElementSlots {\n /**\n * The main action button displayed in the sheet footer, representing the primary action users should take. Only accepts a single button component.\n */\n 'primary-action'?: HTMLElement;\n /**\n * Additional action buttons displayed in the sheet footer, providing alternative or supporting actions.\n */\n 'secondary-actions'?: HTMLElement;\n}" + } + } + }, + { + "title": "Methods", + "description": "Learn more about [component methods](/docs/api/checkout-ui-extensions/latest/using-polaris-components#methods).", + "type": "SheetElementMethods", + "typeDefinitions": { + "SheetElementMethods": { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "name": "SheetElementMethods", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Sheet.ts", + "syntaxKind": "PropertySignature", + "name": "hideOverlay", + "value": "() => void", + "description": "A method to programmatically hide the overlay and run any associated hide animations." + } + ], + "value": "export interface SheetElementMethods extends Pick {\n}" + } + } + } + ], + "category": "Web components", + "subCategory": "Overlays", + "defaultExample": { + "image": "sheet-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<!-- This component requires access to Customer Privacy API to be rendered. -->\n<s-button commandFor=\"consent-sheet\">Open Sheet</s-button>\n<s-sheet id=\"consent-sheet\" heading=\"Sheet\" accessibilityLabel=\"A sheet with text content\">\n <s-text>Sheet Content</s-text>\n</s-sheet>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "shopify-controlled-surfaces", + "title": "Shopify-controlled surfaces", + "sectionContent": "To prevent disruptions during checkout, we maintain strict design control over key areas of the Sheet component. These Shopify-controlled elements include:\n\n

Locations of elements

\n\nThe Sheet elements (header, content, action buttons, and dismiss button) are strategically positioned and sized to present vital information upfront.\n\n\"Locations\n\n\"Locations\n\n
\n\n

Padding and spacing

\n\n\"Padding\n\n
\n\n

Maximum height

\n\nTo balance customer attention and task completion, a maximum height is set for the Sheet component.\n\n\"Small\n\n\"Large\n\nWhen content pushes the sheet to exceed this limit, the following UI behaviors are triggered:\n\n
\n\n

Heading and content are scrollable

\n\n\"Heading\n\n
\n\n

Expand pill appears to allow customers to view the entire content

\n\n\"Expand\n\n
\n\n

Actions slot and dismiss button remain fixed

\n\n\"Actions\n" + }, + { + "type": "Generic", + "anchorLink": "privacy-consent-requirements", + "title": "Privacy consent requirements", + "sectionContent": "

Content

\n\nFor the best customer experience, ensure content is brief and to the point.\n\n\"Shows\n\nVarious strategies can be employed to avoid content scrolling.\n\n
\n\n

Use short content

\n\n\"Use\n\n
\n\n

Use small text size

\n\n\"Use\n\n
\n\n

Remove the header

\n\n\"Remove\n\n
\n\n

Actions slot

\n\nThe actions slots allows customers to make decisions and is split into primary and secondary sections.\n\n\"Actions\n\n
\n\n

Primary section

\n\n Contains primary actions for customer decisions on the sheet's prompt. Up to two buttons are allowed. Keep the button's content brief so that it doesn't wrap to more than one line.\n\n\"Primary\n\n
\n\n

Secondary section

\n\nContains action that is unrelated to the sheet's prompt. Only one button is allowed. A modal can be activated when engaging with the secondary action. Keep the button's content brief so that it doesn't wrap to more than one line.\n\n\"Secondary\n\n
\n\n

Consent, denial of consent, and sheet dismissal

\n\n

Consent

\n\nWhen a customer expresses consent by pressing the acceptance button, cookies will load and the sheet should not re-appear on refresh.\n\n
\n\n

Denial of consent

\n\nWhen a customer expresses denial of consent by pressing the rejection button, cookies will not load and the sheet will not re-appear on refresh.\n\n
\n\n

Sheet dismissal

\n\nWhen a customer neither grants nor denies consent by pressing the dismiss button, cookies will not load and the sheet will re-appear on refresh.\n\n\"Sheet" + } + ], + "related": [] + }, + { + "name": "Skeleton paragraph", + "description": "Displays a placeholder representation of text content while it loads. Use to improve perceived performance by showing users where text will appear.", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "isVisualComponent": true, + "thumbnail": "skeleton-paragraph-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "SkeletonParagraphProps", + "typeDefinitions": { + "SkeletonParagraphProps": { + "filePath": "src/surfaces/checkout/components/SkeletonParagraph.ts", + "name": "SkeletonParagraphProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/SkeletonParagraph.ts", + "syntaxKind": "PropertySignature", + "name": "content", + "value": "string", + "description": "The content to be used as a base for the skeleton. This content will be hidden when the skeleton is visible.\n\nThis can be useful when the skeleton is representing a known piece of content which is part of a larger element that has not yet fully loaded.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/SkeletonParagraph.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface SkeletonParagraphProps extends SkeletonParagraphProps$1 {\n}" + } + } + } + ], + "defaultExample": { + "image": "skeleton-paragraph-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-skeleton-paragraph></s-skeleton-paragraph>\n\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Spinner", + "description": "The spinner component displays an animated indicator showing users that content or actions are loading. Use spinner to communicate ongoing processes like fetching data, processing requests, or waiting for operations to complete.\n\nSpinners support multiple sizes and should be used for page or section loading states. For button loading states, use the `loading` property on the [button](/docs/api/{API_NAME}/{API_VERSION}/web-components/actions/button) component instead.", + "category": "Web components", + "subCategory": "Feedback and status indicators", + "related": [], + "requires": "", + "thumbnail": "spinner-thumbnail.png", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "SpinnerProps", + "typeDefinitions": { + "SpinnerProps": { + "filePath": "src/surfaces/checkout/components/Spinner.ts", + "name": "SpinnerProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Spinner.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose of the spinner for assistive technologies like screen readers. Provide an `accessibilityLabel` when there is no visible text that conveys a loading state.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Spinner.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Spinner.ts", + "syntaxKind": "PropertySignature", + "name": "size", + "value": "'small' | 'large' | 'base' | 'small-100' | 'large-100'", + "description": "The size of the spinner icon.\n\n- `base`: The default size, suitable for most use cases.\n- `small`: A compact size for secondary loading states.\n- `small-100`: The smallest size for tight spaces or inline indicators.\n- `large`: A larger size for more prominent loading states.\n- `large-100`: The largest size for full-page or section-level loading indicators.", + "isOptional": true, + "defaultValue": "'base'" + } + ], + "value": "export interface SpinnerProps extends SpinnerProps$1 {\n /**\n * A label that describes the purpose of the spinner for assistive technologies like screen readers. Provide an `accessibilityLabel` when there is no visible text that conveys a loading state.\n */\n accessibilityLabel?: SpinnerProps$1['accessibilityLabel'];\n /**\n * The size of the spinner icon.\n *\n * - `base`: The default size, suitable for most use cases.\n * - `small`: A compact size for secondary loading states.\n * - `small-100`: The smallest size for tight spaces or inline indicators.\n * - `large`: A larger size for more prominent loading states.\n * - `large-100`: The largest size for full-page or section-level loading indicators.\n *\n * @default 'base'\n */\n size?: Extract;\n}" + } + } + } + ], + "defaultExample": { + "image": "spinner-default.gif", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-spinner></s-spinner>\n", + "language": "html" + } + ] + } + }, + "subSections": [] + }, + { + "name": "Stack", + "description": "The stack component organizes elements horizontally or vertically along the block or inline axis. Use stack to structure layouts, group related components, control spacing between elements, or create flexible arrangements that adapt to content.\n\nStacks support gap spacing, alignment, wrapping, and distribution properties to create consistent, responsive layouts without custom CSS. For complex multi-column layouts with precise grid positioning, use [grid](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/grid).", + "category": "Web components", + "subCategory": "Layout and structure", + "related": [], + "isVisualComponent": true, + "thumbnail": "stack-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "StackProps", + "typeDefinitions": { + "StackProps": { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "name": "StackProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nOnly use this when the element's content is not enough context for users using assistive technologies.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityRole", + "value": "'aside' | 'footer' | 'header' | 'main' | 'section' | 'status' | 'none' | 'navigation' | 'ordered-list' | 'list-item' | 'list-item-separator' | 'unordered-list' | 'separator' | 'alert' | 'generic'", + "description": "The semantic meaning of the stack's content, used by assistive technologies.\n\n- `aside`: Supporting content related to the main content.\n- `footer`: Information such as copyright, navigation links, and privacy statements.\n- `header`: A page or section header.\n- `main`: The primary content of the page.\n- `section`: A generic section that should have a heading or `accessibilityLabel`.\n- `status`: A live region with advisory information that is not urgent.\n- `none`: Strips semantic meaning while keeping visual styling.\n- `navigation`: A major group of navigation links.\n- `ordered-list`: A list of ordered items.\n- `list-item`: An item inside a list.\n- `list-item-separator`: A divider between list items.\n- `unordered-list`: A list of unordered items.\n- `separator`: A divider that separates sections of content.\n- `alert`: Important, usually time-sensitive information.\n- `generic`: A nameless container with no semantic meaning (renders a `
`).", + "isOptional": true, + "defaultValue": "'generic'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "alignContent", + "value": "MaybeResponsive>", + "description": "Controls how lines of content are distributed along the cross axis when there is extra space.\n\n- `normal`: Default browser behavior.\n- `space-between`: Distributes lines evenly with no space at the edges.\n- `space-around`: Distributes lines evenly with equal space around each.\n- `space-evenly`: Distributes lines with equal space between and at the edges.\n- `stretch`: Stretches lines to fill the available space.\n- `center`: Packs lines toward the center.\n- `start`: Packs lines toward the start of the cross axis.\n- `end`: Packs lines toward the end of the cross axis.", + "isOptional": true, + "defaultValue": "'normal'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "alignItems", + "value": "MaybeResponsive>", + "description": "Controls how child elements are aligned along the cross axis.\n\n- `normal`: Default browser behavior.\n- `stretch`: Stretches children to fill the cross axis.\n- `center`: Centers children along the cross axis.\n- `start`: Aligns children to the start of the cross axis.\n- `end`: Aligns children to the end of the cross axis.", + "isOptional": true, + "defaultValue": "'normal'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "background", + "value": "'base' | 'subdued' | 'transparent'", + "description": "The background color of the stack.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", + "isOptional": true, + "defaultValue": "'transparent'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "blockSize", + "value": "MaybeResponsive", + "description": "The block size of the element (height in horizontal writing modes). Learn more about the [block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "border", + "value": "BorderShorthand", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'", + "examples": [ + { + "title": "Example", + "description": "", + "tabs": [ + { + "code": "// The following are equivalent:\n\n", + "title": "Example" + } + ] + } + ] + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "borderRadius", + "value": "MaybeAllValuesShorthandProperty>", + "description": "The roundedness of the stack's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "borderStyle", + "value": "MaybeAllValuesShorthandProperty | \"\"", + "description": "Controls the visual style of the border on all sides, such as solid, dashed, or dotted.\n\nWhen set, this overrides the style value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different styles per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "borderWidth", + "value": "MaybeAllValuesShorthandProperty | ''", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "columnGap", + "value": "MaybeResponsive", + "description": "Adjust spacing between elements in the inline axis.\n\nThis overrides the column value of `gap`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "direction", + "value": "MaybeResponsive<\"block\" | \"inline\">", + "description": "Sets how the children are placed within the Stack. This uses [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_logical_properties_and_values).", + "isOptional": true, + "defaultValue": "'block'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "display", + "value": "MaybeResponsive<\"auto\" | \"none\">", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "gap", + "value": "MaybeResponsive>", + "description": "Adjust spacing between elements.\n\nA single value applies to both axes. A pair of values (eg `large-100 large-500`) can be used to set the inline and block axes respectively.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "inlineSize", + "value": "MaybeResponsive", + "description": "The inline size of the element (width in horizontal writing modes). Learn more about the [inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "justifyContent", + "value": "MaybeResponsive>", + "description": "Controls how child elements are distributed along the main axis.\n\n- `normal`: Default browser behavior.\n- `space-between`: Distributes children evenly with no space at the edges.\n- `space-around`: Distributes children evenly with equal space around each.\n- `space-evenly`: Distributes children with equal space between and at the edges.\n- `stretch`: Stretches children to fill the available space.\n- `center`: Packs children toward the center.\n- `start`: Packs children toward the start of the main axis.\n- `end`: Packs children toward the end of the main axis.", + "isOptional": true, + "defaultValue": "'normal'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "maxBlockSize", + "value": "MaybeResponsive", + "description": "The maximum block size of the element (maximum height in horizontal writing modes). Learn more about the [max-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "maxInlineSize", + "value": "MaybeResponsive", + "description": "The maximum inline size of the element (maximum width in horizontal writing modes). Learn more about the [max-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "minBlockSize", + "value": "MaybeResponsive", + "description": "The minimum block size of the element (minimum height in horizontal writing modes). Learn more about the [min-block-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "minInlineSize", + "value": "MaybeResponsive", + "description": "The minimum inline size of the element (minimum width in horizontal writing modes). Learn more about the [min-inline-size property](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).", + "isOptional": true, + "defaultValue": "'0'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "overflow", + "value": "'hidden' | 'visible'", + "description": "Sets the overflow behavior of the element.\n\n- `visible`: The content that extends beyond the element’s container is visible.\n- `hidden`: Clips the content when it is larger than the element’s container. The element will not be scrollable and users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "padding", + "value": "MaybeResponsive>", + "description": "The padding applied to all edges of the component.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- 1 value applies to all sides\n- 2 values apply to block (top/bottom) and inline (left/right)\n- 3 values apply to block-start (top), inline (left/right), and block-end (bottom)\n- 4 values apply to block-start (top), inline-end (right), block-end (bottom), and inline-start (left)\n\n**Examples:** `base`, `large none`, `base large-100 base small`\n\nUse `auto` to inherit padding from the nearest container with removed padding.", + "isOptional": true, + "defaultValue": "'none'" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlock", + "value": "MaybeResponsive | \"\">", + "description": "The block-direction padding (top and bottom in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for block-start and block-end.\n\n**Example:** `large none` applies `large` to the top and `none` to the bottom.\n\nOverrides the block value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockEnd", + "value": "MaybeResponsive", + "description": "The block-end padding (bottom in horizontal writing modes).\n\nOverrides the block-end value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "paddingBlockStart", + "value": "MaybeResponsive", + "description": "The block-start padding (top in horizontal writing modes).\n\nOverrides the block-start value from `paddingBlock`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInline", + "value": "MaybeResponsive | \"\">", + "description": "The inline-direction padding (left and right in horizontal writing modes).\n\nAccepts a single value for both sides or two space-separated values for inline-start and inline-end.\n\n**Example:** `large none` applies `large` to the left and `none` to the right.\n\nOverrides the inline value from `padding`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineEnd", + "value": "MaybeResponsive", + "description": "The inline-end padding (right in LTR writing modes, left in RTL).\n\nOverrides the inline-end value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "paddingInlineStart", + "value": "MaybeResponsive", + "description": "The inline-start padding (left in LTR writing modes, right in RTL).\n\nOverrides the inline-start value from `paddingInline`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + }, + { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "PropertySignature", + "name": "rowGap", + "value": "MaybeResponsive", + "description": "Adjust spacing between elements in the block axis.\n\nThis overrides the row value of `gap`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" + } + ], + "value": "export interface StackProps extends Pick {\n /**\n * The semantic meaning of the stack's content, used by assistive technologies.\n *\n * - `aside`: Supporting content related to the main content.\n * - `footer`: Information such as copyright, navigation links, and privacy statements.\n * - `header`: A page or section header.\n * - `main`: The primary content of the page.\n * - `section`: A generic section that should have a heading or `accessibilityLabel`.\n * - `status`: A live region with advisory information that is not urgent.\n * - `none`: Strips semantic meaning while keeping visual styling.\n * - `navigation`: A major group of navigation links.\n * - `ordered-list`: A list of ordered items.\n * - `list-item`: An item inside a list.\n * - `list-item-separator`: A divider between list items.\n * - `unordered-list`: A list of unordered items.\n * - `separator`: A divider that separates sections of content.\n * - `alert`: Important, usually time-sensitive information.\n * - `generic`: A nameless container with no semantic meaning (renders a `
`).\n *\n * @default 'generic'\n */\n accessibilityRole?: Extract;\n /**\n * The background color of the stack.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The roundedness of the stack's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n /**\n * Controls how lines of content are distributed along the cross axis when there is extra space.\n *\n * - `normal`: Default browser behavior.\n * - `space-between`: Distributes lines evenly with no space at the edges.\n * - `space-around`: Distributes lines evenly with equal space around each.\n * - `space-evenly`: Distributes lines with equal space between and at the edges.\n * - `stretch`: Stretches lines to fill the available space.\n * - `center`: Packs lines toward the center.\n * - `start`: Packs lines toward the start of the cross axis.\n * - `end`: Packs lines toward the end of the cross axis.\n *\n * @default 'normal'\n */\n alignContent?: MaybeResponsive>;\n /**\n * Controls how child elements are aligned along the cross axis.\n *\n * - `normal`: Default browser behavior.\n * - `stretch`: Stretches children to fill the cross axis.\n * - `center`: Centers children along the cross axis.\n * - `start`: Aligns children to the start of the cross axis.\n * - `end`: Aligns children to the end of the cross axis.\n *\n * @default 'normal'\n */\n alignItems?: MaybeResponsive>;\n /**\n * Controls how child elements are distributed along the main axis.\n *\n * - `normal`: Default browser behavior.\n * - `space-between`: Distributes children evenly with no space at the edges.\n * - `space-around`: Distributes children evenly with equal space around each.\n * - `space-evenly`: Distributes children with equal space between and at the edges.\n * - `stretch`: Stretches children to fill the available space.\n * - `center`: Packs children toward the center.\n * - `start`: Packs children toward the start of the main axis.\n * - `end`: Packs children toward the end of the main axis.\n *\n * @default 'normal'\n */\n justifyContent?: MaybeResponsive>;\n}" + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + }, + "SizeUnitsOrAuto": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrAuto", + "value": "SizeUnits | \"auto\"", + "description": "Represents size values that can also be set to `auto` for automatic sizing.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `auto`: Automatically sizes based on content and layout constraints. Learn more about the [auto value](https://developer.mozilla.org/en-US/docs/Web/CSS/width#auto).", + "isPublicDocs": true + }, + "SizeUnits": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnits", + "value": "`${number}px` | `${number}%` | `0`", + "description": "Represents size values in pixels, percentages, or zero.\n\n- `` `${number}px` ``: Absolute size in pixels for fixed dimensions (such as `100px`, `24px`).\n- `` `${number}%` ``: Relative size as a percentage of the parent container (such as `50%`, `100%`).\n- `0`: Zero size, equivalent to no dimension.", + "isPublicDocs": true + }, + "BorderShorthand": { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderShorthand", + "value": "ReducedBorderSizeKeyword | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword}` | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword} ${BorderStyleKeyword}`", + "description": "A shorthand string for specifying border properties. Accepts a size alone (`'base'`), size with color (`'base base'`), or size with color and style (`'base base dashed'`). Omitted values use their defaults.", + "isPublicDocs": true + }, + "ReducedBorderSizeKeyword": { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedBorderSizeKeyword", + "value": "'large' | 'base' | 'large-100' | 'large-200' | 'none'", + "description": "The subset of border size values available for this component.\n\n- `base`: Standard border width.\n- `large`: Thick border for strong emphasis.\n- `large-100`: Extra thick border for maximum prominence.\n- `large-200`: The thickest available border.\n- `none`: No border.", + "isPublicDocs": true + }, + "ReducedColorKeyword": { + "filePath": "src/surfaces/checkout/components/Stack.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ReducedColorKeyword", + "value": "'base'", + "description": "The subset of border color values available for this component.\n\n- `base`: The standard border color for most contexts.", + "isPublicDocs": true + }, + "BorderStyleKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "BorderStyleKeyword", + "value": "\"none\" | \"solid\" | \"dashed\" | \"dotted\" | \"auto\"", + "description": "The visual style of a border. Learn more about [border-style](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style).\n\n- `none`: No border is rendered.\n- `solid`: A single continuous line.\n- `dashed`: A series of short dashes.\n- `dotted`: A series of round dots.\n- `auto`: The border style is determined automatically based on the surface's design system.", + "isPublicDocs": true + }, + "MaybeAllValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeAllValuesShorthandProperty", + "value": "T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one to four values, following the [CSS shorthand syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box). Supports specifying values for all four sides: top, right, bottom, and left.\n\n- `T`: Single value that applies to all four sides.\n- `${T} ${T}`: Two values for block axis (top/bottom) and inline axis (left/right).\n- `${T} ${T} ${T}`: Three values for block-start (top), inline axis (left/right), and block-end (bottom).\n- `${T} ${T} ${T} ${T}`: Four values for block-start (top), inline-end (right), block-end (bottom), and inline-start (left).", + "isPublicDocs": true + }, + "SpacingKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SpacingKeyword", + "value": "SizeKeyword | \"none\"", + "description": "", + "isPublicDocs": true + }, + "SizeKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeKeyword", + "value": "\"small-500\" | \"small-400\" | \"small-300\" | \"small-200\" | \"small-100\" | \"small\" | \"base\" | \"large\" | \"large-100\" | \"large-200\" | \"large-300\" | \"large-400\" | \"large-500\"", + "description": "The design system's size scale, used to control the dimensions of components like avatars, icons, and thumbnails. Values range from `\"small-500\"` (smallest) through `\"base\"` (standard) to `\"large-500\"` (largest). Not all components support every size — check the component's `size` property type for its available options.", + "isPublicDocs": true + }, + "MaybeTwoValuesShorthandProperty": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeTwoValuesShorthandProperty", + "value": "T | `${T} ${T}`", + "description": "Represents CSS shorthand properties that accept one or two values. Supports specifying the same value for both dimensions or different values.\n\n- `T`: Single value that applies to both dimensions.\n- `${T} ${T}`: Two values for block axis (vertical) and inline axis (horizontal).", + "isPublicDocs": true + }, + "SizeUnitsOrNone": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "SizeUnitsOrNone", + "value": "SizeUnits | \"none\"", + "description": "Represents size values that can also be set to `none` to remove the size constraint.\n\n- `SizeUnits`: Specific size values in pixels, percentages, or zero for precise control.\n- `none`: No size constraint, allowing unlimited growth. Learn more about the [none value](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#none).", + "isPublicDocs": true + }, + "PaddingKeyword": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "PaddingKeyword", + "value": "SizeKeyword | \"none\"", + "description": "Defines the padding size for elements, using the standard size scale or `none` for no padding.\n\n- `SizeKeyword`: Standard padding sizes from the size scale for consistent spacing.\n- `none`: No padding.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "stack-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-stack direction=\"inline\" gap=\"base\">\n <s-image\n src=\"https://cdn.shopify.com/plant-1\"\n alt=\"Areca palm in a gray pot\"\n inlineSize=\"auto\"\n />\n <s-image\n src=\"https://cdn.shopify.com/plant-2\"\n alt=\"Fiddle leaf fig in a gray pot\"\n inlineSize=\"auto\"\n />\n <s-image\n src=\"https://cdn.shopify.com/plant-3\"\n alt=\"Snake plant in a gray pot\"\n inlineSize=\"auto\"\n />\n <s-image\n src=\"https://cdn.shopify.com/plant-4\"\n alt=\"Monstera deliciosa in a gray pot\"\n inlineSize=\"auto\"\n />\n</s-stack>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "title": "Useful for", + "type": "Generic", + "anchorLink": "useful-for", + "sectionContent": "\n- Placing items in rows or columns when sections don't work for your layout.\n- Controlling the spacing between elements." + }, + { + "title": "Considerations", + "type": "Generic", + "anchorLink": "considerations", + "sectionContent": "\n- Stack doesn't add any padding by default. If you want padding around your stacked elements, use `base` to apply the default padding.\n- When spacing becomes limited, Stack will always wrap children to a new line." + }, + { + "title": "Best practices", + "type": "Generic", + "anchorLink": "best-practices", + "sectionContent": "\n- Use smaller gaps between small elements and larger gaps between big ones.\n- Maintain consistent spacing in stacks across all pages of your app." + } + ] + }, + { + "name": "Switch", + "description": "The switch component provides a clear way for users to toggle options or settings on and off. Use switch for binary controls that take effect immediately, like enabling features, activating settings, or controlling visibility.\n\nSwitches provide instant visual feedback and are ideal for settings that don't require a save action to apply changes. For selections that require explicit submission, use [checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/checkbox) instead.", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "switch-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "SwitchElementProps", + "typeDefinitions": { + "SwitchElementProps": { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "name": "SwitchElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityLabel", + "value": "string", + "description": "A label used for users using assistive technologies like screen readers. When set, any children or `label` supplied will not be announced. This can also be used to display a control without a visual label, while still providing context to users using screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "checked", + "value": "boolean", + "description": "Whether the control is currently checked.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "command", + "value": "'--auto' | '--show' | '--hide' | '--toggle'", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", + "isOptional": true, + "defaultValue": "'--auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "commandFor", + "value": "string", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "defaultChecked", + "value": "boolean", + "description": "Whether the control is checked by default.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the control is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The value used in form data when the control is checked.", + "isOptional": true + } + ], + "value": "export interface SwitchElementProps extends Pick {\n command?: Extract;\n}" + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "SwitchElementEvents", + "typeDefinitions": { + "SwitchElementEvents": { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "name": "SwitchElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the switch value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + } + ], + "value": "export interface SwitchElementEvents {\n /**\n * A callback fired when the switch value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/Switch.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "switch-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-switch label=\"Shipping insurance\"></s-switch>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Text", + "description": "The text component displays inline text with specific visual styles or tones. Use text to emphasize or differentiate words or phrases within paragraphs or other block-level components, applying weight, color, or semantic styling.\n\nText supports multiple visual variants, alignment options, and line clamping for flexible inline typography control. For block-level text content, use [paragraph](/docs/api/{API_NAME}/{API_VERSION}/web-components/typography-and-content/paragraph).", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "requires": "", + "thumbnail": "text-thumbnail.png", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "TextProps", + "typeDefinitions": { + "TextProps": { + "filePath": "src/surfaces/checkout/components/Text.ts", + "name": "TextProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Text.ts", + "syntaxKind": "PropertySignature", + "name": "accessibilityVisibility", + "value": "'visible' | 'hidden' | 'exclusive'", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/Text.ts", + "syntaxKind": "PropertySignature", + "name": "color", + "value": "'base' | 'subdued'", + "description": "The color emphasis level that controls visual intensity.\n\n- `subdued`: Deemphasized color for secondary text, supporting labels, and less critical interface elements.\n- `base`: Primary color for body text, standard UI elements, and general content with good readability.\n- `strong`: Emphasized color for headings, key labels, and interactive elements that need prominence.", + "isOptional": true, + "defaultValue": "'base'" + }, + { + "filePath": "src/surfaces/checkout/components/Text.ts", + "syntaxKind": "PropertySignature", + "name": "dir", + "value": "'ltr' | 'rtl' | 'auto' | ''", + "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: The languages written from left to right (such as English).\n- `rtl`: The languages written from right to left (such as Arabic).\n- `auto`: The user agent determines the direction based on the content.\n- `\"\"`: The direction is inherited from parent elements (equivalent to not setting the attribute).\n\nLearn more about the [dir attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir).", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Text.ts", + "syntaxKind": "PropertySignature", + "name": "display", + "value": "MaybeResponsive<\"auto\" | \"none\">", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Text.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/Text.ts", + "syntaxKind": "PropertySignature", + "name": "lang", + "value": "string", + "description": "The language of the button's text content. Use this when the button text is in a different language than the rest of the page, so assistive technologies can invoke the correct pronunciation. [Reference of values](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) (`Subtag` label)\n\nIt is recommended to combine it with the `dir` attribute to ensure the text is rendered correctly if the surrounding content’s direction is different.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Text.ts", + "syntaxKind": "PropertySignature", + "name": "tone", + "value": "'custom' | 'success' | 'info' | 'auto' | 'neutral' | 'warning' | 'critical'", + "description": "Sets the tone of the component, based on the intention of the information being conveyed.", + "isOptional": true, + "defaultValue": "'auto'" + }, + { + "filePath": "src/surfaces/checkout/components/Text.ts", + "syntaxKind": "PropertySignature", + "name": "type", + "value": "'small' | 'address' | 'mark' | 'strong' | 'generic' | 'redundant' | 'emphasis' | 'offset'", + "description": "The semantic type and styling treatment for the text content.\n\nOther presentation properties on `s-text` override the default styling.\n\n- `address`: A semantic type that indicates the text is contact information. Typically used for addresses.\n- `redundant`: A semantic type that indicates the text is no longer accurate or no longer relevant.\n- `mark`: A semantic type that indicates the text is marked or highlighted.\n- `emphasis`: A semantic type that indicates emphatic stress.\n- `offset`: A semantic type that indicates an offset from the normal prose.\n- `strong`: A semantic type that indicates strong importance, seriousness, or urgency.\n- `small`: A semantic type that indicates less important text.\n- `generic`: No additional semantics or styling is applied.", + "isOptional": true, + "defaultValue": "'generic'" + } + ], + "value": "export interface TextProps extends Pick {\n color?: Extract;\n tone?: Extract;\n /**\n * The semantic type and styling treatment for the text content.\n *\n * Other presentation properties on `s-text` override the default styling.\n *\n * - `address`: A semantic type that indicates the text is contact information. Typically used for addresses.\n * - `redundant`: A semantic type that indicates the text is no longer accurate or no longer relevant.\n * - `mark`: A semantic type that indicates the text is marked or highlighted.\n * - `emphasis`: A semantic type that indicates emphatic stress.\n * - `offset`: A semantic type that indicates an offset from the normal prose.\n * - `strong`: A semantic type that indicates strong importance, seriousness, or urgency.\n * - `small`: A semantic type that indicates less important text.\n * - `generic`: No additional semantics or styling is applied.\n *\n * @default 'generic'\n */\n type?: Extract;\n}" + }, + "MaybeResponsive": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "MaybeResponsive", + "value": "T | `@container${string}`", + "description": "Makes a property responsive by allowing it to be set conditionally based on container query conditions. The value can be either a base value or a container query string.\n\n- `T`: Base value that applies in all conditions.\n- `@container${string}`: Container query string for conditional responsive styling based on container size.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "text-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-text type=\"small\" color=\"subdued\">\n All transactions are secure and encrypted.\n</s-text>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "title": "Useful for", + "type": "Generic", + "anchorLink": "useful-for", + "sectionContent": "\n- Adding inline text elements such as labels or line errors.\n- Applying different visual tones and text styles to specific words or phrases within a `s-paragraph`, such as a `strong` type or `critical` tone." + }, + { + "title": "Best practices", + "type": "Generic", + "anchorLink": "best-practices", + "sectionContent": "\n- Use plain and clear terms.\n- Don’t use jargon or technical language.\n- Don’t use different terms to describe the same thing.\n- Don’t duplicate content." + } + ] + }, + { + "name": "Text area", + "description": "The text area component captures multi-line text input. Use it to collect descriptions, notes, comments, or other extended text content.\n\nThe component supports configurable height, character limits, and validation. For single-line text input, use [text field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/text-field).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "text-area-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "TextAreaElementProps", + "typeDefinitions": { + "TextAreaElementProps": { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "name": "TextAreaElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "maxLength", + "value": "number", + "description": "Specifies the maximum number of characters allowed.", + "isOptional": true, + "defaultValue": "Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "minLength", + "value": "number", + "description": "Specifies the minimum number of characters allowed.", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "placeholder", + "value": "string", + "description": "", + "isOptional": true, + "deprecationMessage": "Use `label` instead.", + "isPrivate": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "rows", + "value": "number", + "description": "A number of visible text lines.", + "isOptional": true, + "defaultValue": "2" + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface TextAreaElementProps extends Pick {\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "TextAreaElementEvents", + "typeDefinitions": { + "TextAreaElementEvents": { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "name": "TextAreaElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the text area loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the text area value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the text area receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the text area. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface TextAreaElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the text area value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the text area.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the text area loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the text area receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/TextArea.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + } + ], + "defaultExample": { + "image": "text-area-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-text-area\n label=\"Gift message\"\n value=\"Hope you enjoy this gift!\"\n rows={3}\n></s-text-area>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Text field", + "description": "The text field component captures single-line text input. Use it to collect short, free-form information like names, titles, or identifiers.\n\nThe component supports various input configurations including placeholders, character limits, and validation. For multi-line text entry, use [text area](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/text-area). For specialized input types, use [email field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/email-field), [URL field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/url-field), [password field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/password-field), or [search field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/search-field).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "requires": "", + "thumbnail": "text-field-thumbnail.png", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "TextFieldElementProps", + "typeDefinitions": { + "TextFieldElementProps": { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "name": "TextFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "icon", + "value": "'' | 'cart' | 'note' | 'settings' | 'reset' | 'map' | 'menu' | 'search' | 'circle' | 'filter' | 'image' | 'alert-circle' | 'alert-triangle-filled' | 'alert-triangle' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up-right' | 'arrow-up' | 'bag' | 'bullet' | 'calendar' | 'camera' | 'caret-down' | 'cash-dollar' | 'categories' | 'check-circle' | 'check' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'clipboard' | 'clock' | 'credit-card' | 'delete' | 'delivered' | 'delivery' | 'disabled' | 'discount' | 'edit' | 'email' | 'empty' | 'external' | 'geolocation' | 'gift-card' | 'globe' | 'grid' | 'info-filled' | 'info' | 'list-bulleted' | 'location' | 'lock' | 'menu-horizontal' | 'menu-vertical' | 'minus' | 'mobile' | 'order' | 'organization' | 'plus' | 'profile' | 'question-circle-filled' | 'question-circle' | 'reorder' | 'return' | 'savings' | 'star-filled' | 'star-half' | 'star' | 'store' | 'truck' | 'upload' | 'x-circle-filled' | 'x-circle' | 'x'", + "description": "The type of icon to be displayed in the field.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "maxLength", + "value": "number", + "description": "Specifies the maximum number of characters allowed.", + "isOptional": true, + "defaultValue": "Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "minLength", + "value": "number", + "description": "Specifies the minimum number of characters allowed.", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "placeholder", + "value": "string", + "description": "", + "isOptional": true, + "deprecationMessage": "Use `label` instead.", + "isPrivate": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "prefix", + "value": "string", + "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "suffix", + "value": "string", + "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface TextFieldElementProps extends Pick {\n icon?: IconProps['type'];\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "TextFieldElementEvents", + "typeDefinitions": { + "TextFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "name": "TextFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the text field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the text field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the text field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the text field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface TextFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the text field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the text field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the text field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the text field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "TextFieldElementSlots", + "typeDefinitions": { + "TextFieldElementSlots": { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "name": "TextFieldElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/TextField.ts", + "syntaxKind": "PropertySignature", + "name": "accessory", + "value": "HTMLElement", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", + "isOptional": true + } + ], + "value": "export interface TextFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "text-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-text-field\n label=\"First name (optional)\"\n defaultValue=\"Taylor\"\n></s-text-field>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\n- Clearly label text fields so that it’s obvious what customers should enter.\n- Label text fields as optional when input isn’t required. For example, use the label First name (optional).\n- Don’t have optional fields pass true to the required property.\n " + } + ] + }, + { + "name": "Time", + "description": "Represents a specific point or duration in time. Use to display dates, times, or durations clearly and consistently. May include a machine-readable `datetime` attribute for improved accessibility and functionality.", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "isVisualComponent": true, + "thumbnail": "time-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "TimeProps", + "typeDefinitions": { + "TimeProps": { + "filePath": "src/surfaces/checkout/components/Time.ts", + "name": "TimeProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Time.ts", + "syntaxKind": "PropertySignature", + "name": "dateTime", + "value": "string", + "description": "The machine-readable date and/or time value for the element. Use this to provide a datetime string that browsers, search engines, and assistive technologies can parse for improved semantics and functionality.\n\nThe value must be a [valid datetime string](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time#valid_datetime_values), such as `2024-01-15`, `14:30`, or `2024-01-15T14:30:00`.", + "isOptional": true, + "defaultValue": "''" + }, + { + "filePath": "src/surfaces/checkout/components/Time.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface TimeProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "time-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-time dateTime=\"2023-10-15\">October 15, 2023</s-time>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "- Use Time component for displaying time values to ensure consistent formatting.\n\n- Provide time values in a clear, readable format.\n\n- Consider using 24-hour format for international audiences.\n\n- Include timezone information when relevant.\n\n- Use Time component for any time-related content to maintain semantic meaning." + } + ] + }, + { + "name": "Tooltip", + "description": "The tooltip component displays helpful information in a small overlay when users hover over or focus on an element. Use tooltip to provide additional context, explain functionality, or clarify terms without cluttering the interface with permanent text.\n\nTooltips support keyboard accessibility, positioning options, and activation on both hover and focus for inclusive interaction patterns.", + "category": "Web components", + "subCategory": "Overlays", + "related": [], + "thumbnail": "tooltip-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "TooltipElementProps", + "typeDefinitions": { + "TooltipElementProps": { + "filePath": "src/surfaces/checkout/components/Tooltip.ts", + "name": "TooltipElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Tooltip.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface TooltipElementProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "tooltip-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-stack direction=\"inline\" gap=\"small-400\" alignItems=\"center\">\n <s-text color=\"subdued\">2600 Portland Street SE</s-text>\n <s-clickable interestFor=\"curbside-pickup-1\">\n <s-icon type=\"info-filled\" />\n </s-clickable>\n <s-tooltip id=\"curbside-pickup-1\">\n Curbside pickup is at the back of the warehouse.\n </s-tooltip>\n</s-stack>\n", + "language": "html" + } + ] + } + } + }, + { + "name": "Unordered list", + "description": "The unordered list component displays a bulleted list of related items where sequence isn't critical. Use unordered list to present collections of features, options, requirements, or any group of items where order doesn't affect meaning.\n\nUnordered lists automatically add bullet points and support nested lists for hierarchical content organization. For sequential items where order is important, use [ordered list](/docs/api/{API_NAME}/{API_VERSION}/web-components/layout-and-structure/ordered-list).", + "category": "Web components", + "subCategory": "Typography and content", + "related": [], + "isVisualComponent": true, + "thumbnail": "unordered-list-thumbnail.png", + "requires": "", + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "UnorderedListProps", + "typeDefinitions": { + "UnorderedListProps": { + "filePath": "src/surfaces/checkout/components/UnorderedList.ts", + "name": "UnorderedListProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/UnorderedList.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface UnorderedListProps extends UnorderedListProps$1 {\n}" + } + } + }, + { + "title": "List item", + "description": "The list item component represents a single entry within an ordered list or unordered list. Use list item to structure individual points, steps, or items within a list, with each item automatically receiving appropriate list markers (bullets or numbers) from its parent list.\n\nList item must be used as a direct child of ordered list or unordered list components. Each list item can contain text, inline formatting, or other components to create rich list content.", + "type": "ListItemProps", + "typeDefinitions": { + "ListItemProps": { + "filePath": "src/surfaces/checkout/components/ListItem.ts", + "name": "ListItemProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/ListItem.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + } + ], + "value": "export interface ListItemProps extends Pick {\n}" + } + } + } + ], + "defaultExample": { + "image": "unordered-list-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-unordered-list>\n <s-list-item>Free shipping on orders over $50</s-list-item>\n <s-list-item>30-day money-back guarantee</s-list-item>\n <s-list-item>Secure payment processing</s-list-item>\n</s-unordered-list>\n", + "language": "html" + } + ] + } + }, + "subSections": [ + { + "type": "Generic", + "anchorLink": "best-practices", + "title": "Best Practices", + "sectionContent": "\n- Use `s-unordered-list` when you need to present a list of related items or options.\n- Each item in the list should be wrapped in a `s-list-item` component.\n- Keep list items concise and consistent in length when possible.\n- Use `s-unordered-list` for navigation menus, feature lists, or any collection of related items.\n- Consider using `s-unordered-list` when you want to present information in a clear, scannable format." + } + ] + }, + { + "name": "URL field", + "description": "The URL field component collects URLs from users with built-in formatting and validation. Use URL field for website addresses, link destinations, or any URL input to provide URL-specific keyboard layouts and automatic validation.\n\nURL fields support protocol prefixing, validation, and help text to guide users toward entering properly formatted web addresses. For general text input, use [text field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/text-field).", + "category": "Web components", + "subCategory": "Forms", + "related": [], + "thumbnail": "url-field-thumbnail.png", + "requires": "", + "isVisualComponent": true, + "type": "", + "definitions": [ + { + "title": "Properties", + "description": "", + "type": "UrlFieldElementProps", + "typeDefinitions": { + "UrlFieldElementProps": { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "name": "UrlFieldElementProps", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "autocomplete", + "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "isOptional": true, + "defaultValue": "'on' for everything else" + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "defaultValue", + "value": "string", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "disabled", + "value": "boolean", + "description": "Whether the field is disabled, preventing any user interaction.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "error", + "value": "string", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "id", + "value": "string", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "string", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "labelAccessibilityVisibility", + "value": "'visible' | 'exclusive'", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", + "isOptional": true, + "defaultValue": "'visible'" + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "maxLength", + "value": "number", + "description": "Specifies the maximum number of characters allowed.", + "isOptional": true, + "defaultValue": "Infinity" + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "minLength", + "value": "number", + "description": "Specifies the minimum number of characters allowed.", + "isOptional": true, + "defaultValue": "0" + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "name", + "value": "string", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "readOnly", + "value": "boolean", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "required", + "value": "boolean", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "isOptional": true, + "defaultValue": "false" + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "value", + "value": "string", + "description": "The current value for the field. If omitted, the field will be empty.", + "isOptional": true + } + ], + "value": "export interface UrlFieldElementProps extends Pick {\n}" + }, + "AutocompleteSection": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteSection", + "value": "`section-${string}`", + "description": "The “section” scopes the autocomplete data that should be inserted to a specific area of the page.\n\nCommonly used when there are multiple fields with the same autocomplete needs in the same page. For example: 2 shipping address forms in the same page.", + "isPublicDocs": true + }, + "AutocompleteGroup": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "AutocompleteGroup", + "value": "\"shipping\" | \"billing\"", + "description": "The contact information group the autocomplete data should be sourced from.", + "isPublicDocs": true + } + } + }, + { + "title": "Events", + "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "type": "UrlFieldElementEvents", + "typeDefinitions": { + "UrlFieldElementEvents": { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "name": "UrlFieldElementEvents", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "blur", + "value": "CallbackEventListener", + "description": "A callback fired when the URL field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "change", + "value": "CallbackEventListener", + "description": "A callback fired when the URL field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "focus", + "value": "CallbackEventListener", + "description": "A callback fired when the URL field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "isOptional": true + }, + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "input", + "value": "CallbackEventListener", + "description": "A callback fired when the user inputs data into the URL field.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", + "isOptional": true + } + ], + "value": "export interface UrlFieldElementEvents {\n /**\n * A callback fired when the URL field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the URL field.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the URL field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the URL field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" + }, + "CallbackEventListener": { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEventListener", + "value": "(EventListener & {\n (event: CallbackEvent & TData): void;\n}) | null", + "description": "A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.", + "isPublicDocs": true + }, + "CallbackEvent": { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "CallbackEvent", + "value": "TEvent & {\n currentTarget: HTMLElementTagNameMap[TTagName];\n}", + "description": "An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.", + "isPublicDocs": true + } + } + }, + { + "title": "Slots", + "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "type": "UrlFieldElementSlots", + "typeDefinitions": { + "UrlFieldElementSlots": { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "name": "UrlFieldElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/UrlField.ts", + "syntaxKind": "PropertySignature", + "name": "accessory", + "value": "HTMLElement", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", + "isOptional": true + } + ], + "value": "export interface UrlFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" + } + } + } + ], + "defaultExample": { + "image": "url-field-default.png", + "codeblock": { + "title": "Code", + "tabs": [ + { + "code": "<s-url-field label=\"Website\" defaultValue=\"https://shopify.com\"></s-url-field>\n", + "language": "html" + } + ] + } + } } ] \ No newline at end of file diff --git a/packages/ui-extensions/docs/surfaces/checkout/generated/generated_docs_data_v2.json b/packages/ui-extensions/docs/surfaces/checkout/generated/generated_docs_data_v2.json index fc992865ba..863189ed38 100644 --- a/packages/ui-extensions/docs/surfaces/checkout/generated/generated_docs_data_v2.json +++ b/packages/ui-extensions/docs/surfaces/checkout/generated/generated_docs_data_v2.json @@ -20,7 +20,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](https://shopify.dev/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -34,14 +34,14 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "appMetafields", "value": "SubscribableSignalLike", - "description": "The metafields requested in the [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file. These metafields are updated when there's a change in the merchandise items being purchased by the customer.\n\nApp owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](https://shopify.dev/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The metafields requested in the [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file. These metafields are updated when there's a change in the merchandise items being purchased by the customer.\n\nApp owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -55,14 +55,14 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "billingAddress", "value": "SubscribableSignalLike", - "description": "The proposed customer billing address. The address updates when the field is committed (on change) rather than every keystroke. The property is available only if the extension has access to protected customer data. The subscribable value is `undefined` if the billing address hasn't been provided yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The proposed customer billing address. The address updates when the field is committed (on change) rather than every keystroke. The property is available only if the extension has access to protected customer data. The subscribable value is `undefined` if the billing address hasn't been provided yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -70,7 +70,7 @@ "syntaxKind": "PropertySignature", "name": "buyerIdentity", "value": "BuyerIdentity", - "description": "Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -78,7 +78,7 @@ "syntaxKind": "PropertySignature", "name": "buyerJourney", "value": "BuyerJourney", - "description": "Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n\nRefer to [buyer journey](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples) examples for more information." + "description": "Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n\nRefer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples) examples for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -92,7 +92,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](https://shopify.dev/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -113,14 +113,14 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "discountAllocations", "value": "SubscribableSignalLike", - "description": "The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered." + "description": "The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -134,7 +134,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -142,7 +142,7 @@ "name": "extensionPoint", "value": "Target", "description": "The identifier that specifies where in Shopify's UI your code is being injected. This is one of the targets you've included in your extension's configuration file.", - "deprecationMessage": "Deprecated as of version `2023-07`, use `extension.target` instead.", + "deprecationMessage": "Use `extension.target` instead.", "examples": [ { "title": "Example", @@ -161,14 +161,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -182,7 +182,7 @@ "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -197,7 +197,7 @@ "syntaxKind": "PropertySignature", "name": "metafields", "value": "SubscribableSignalLike", - "description": "The metafields that apply to the current checkout.\n\nMetafields are stored locally on the client and are applied to the order object after the checkout completes.\n\nThese metafields are shared by all extensions running on checkout, and persist for as long as the customer is working on this checkout.\n\nOnce the order is created, you can query these metafields using the [GraphQL Admin API](https://shopify.dev/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n\n> Tip: > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later." + "description": "The metafields that apply to the current checkout.\n\nMetafields are stored locally on the client and are applied to the order object after the checkout completes.\n\nThese metafields are shared by all extensions running on checkout, and persist for as long as the customer is working on this checkout.\n\nOnce the order is created, you can query these metafields using the [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n\n> Tip: > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -211,35 +211,35 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "settings", "value": "SubscribableSignalLike", - "description": "The settings matching the settings definition written in the [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n Refer to [settings examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n\n> Note: When an extension is being installed in the editor, the settings are empty until a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings." + "description": "The settings matching the settings definition written in the [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n\n> Note: When an extension is being installed in the editor, the settings are empty until a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "shippingAddress", "value": "SubscribableSignalLike", - "description": "The proposed customer shipping address. During the information step, the address updates when the field is committed (on change) rather than every keystroke. The property is available only if the extension has access to protected customer data. When available, the subscribable value is `undefined` if delivery isn't required.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The proposed customer shipping address. During the information step, the address updates when the field is committed (on change) rather than every keystroke. The property is available only if the extension has access to protected customer data. When available, the subscribable value is `undefined` if delivery isn't required.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -247,14 +247,14 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -276,31 +276,31 @@ ] } ], - "value": "export interface StandardApi {\n /**\n * The methods for interacting with [Web Pixels](https://shopify.dev/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available.\n * See the [update guide](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](https://shopify.dev/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](https://shopify.dev/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see https://shopify.dev/docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * of the checkout.\n *\n * Refer to [`localization` examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](https://shopify.dev/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`customer_privacy` capability](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" + "value": "export interface StandardApi {\n /**\n * Tracks custom events and sends visitor information to\n * [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events\n * and `visitor()` to submit buyer contact details.\n */\n analytics: Analytics;\n\n /**\n * The gift cards that have been applied to the checkout. Each entry includes\n * the last four characters of the gift card code, the amount used at\n * checkout, and the card's remaining balance.\n */\n appliedGiftCards: SubscribableSignalLike;\n\n /**\n * The cart instructions used to create the checkout and possibly limit extension capabilities.\n *\n * These instructions should be checked before performing any actions that might be affected by them.\n *\n * For example, if you intend to add a discount code via the `applyDiscountCodeChange` method,\n * check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n *\n * > Caution: Check cart instructions before calling select APIs, as\n * > some may not be available. See the\n * > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples)\n * > for more information.\n *\n */\n instructions: SubscribableSignalLike;\n\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n appMetafields: SubscribableSignalLike;\n\n /**\n * The custom key-value attributes attached to the cart or checkout. These are set by the buyer or by an extension using `applyAttributeChange()`. The list is empty if no attributes have been added.\n */\n attributes: SubscribableSignalLike;\n\n /**\n * All payment options available to the buyer for this checkout, such as\n * credit cards, wallets, and local payment methods. The list depends on\n * the shop's payment configuration and the buyer's region.\n *\n * The set of payment options can change when the buyer updates their\n * address or cart, so subscribe to changes rather than reading once\n * during initialization. Each option exposes `handle` and `type` only.\n * Provider names, logos, fees, and installment terms aren't available.\n */\n availablePaymentOptions: SubscribableSignalLike;\n\n /**\n * Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n buyerIdentity?: BuyerIdentity;\n\n /**\n * Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n *\n * Refer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples)\n * examples for more information.\n */\n buyerJourney: BuyerJourney;\n\n /**\n * Settings applied to the buyer's checkout.\n */\n checkoutSettings: SubscribableSignalLike;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * The value is `undefined` when the checkout hasn't been created on the server yet.\n *\n * Use this to correlate checkout sessions across your extension, web pixels, and backend systems.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n *\n * Can be `undefined`. Handle the `undefined` state before using the value.\n */\n checkoutToken: SubscribableSignalLike;\n\n /**\n * The cost breakdown for the current checkout, including subtotal, shipping, tax, and total amounts. These values update as the buyer progresses through checkout and costs like shipping and tax are calculated.\n */\n cost: CartCost;\n\n /**\n * The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n *\n * Empty until the buyer enters enough address information for Shopify to\n * calculate shipping rates.\n */\n deliveryGroups: SubscribableSignalLike;\n\n /**\n * The discount codes currently applied to the checkout. The list is empty if no discount codes have been applied. Use `applyDiscountCodeChange()` to add or remove codes.\n */\n discountCodes: SubscribableSignalLike;\n\n /**\n * The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered.\n */\n discountAllocations: SubscribableSignalLike;\n\n /**\n * Metadata about the running extension, including the current target, API version,\n * capabilities, and editor context. Use this to conditionally render content\n * based on where the extension is running.\n */\n extension: Extension;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n *\n * @deprecated Use `extension.target` instead.\n */\n extensionPoint: Target;\n\n /**\n * Utilities for translating strings, formatting currencies, numbers, and dates\n * according to the buyer's locale. Use alongside\n * [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization)\n * to build fully localized extensions.\n */\n i18n: I18n;\n\n /**\n * The list of line items the buyer intends to purchase. Each entry includes the merchandise, quantity, cost, and any custom attributes. Use `applyCartLinesChange()` to add, remove, or update line items.\n */\n lines: SubscribableSignalLike;\n\n /**\n * The buyer's language, country, currency, and timezone context. For\n * formatting and translation helpers, use the\n * [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n *\n * These metafields are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.\n */\n metafields: SubscribableSignalLike;\n\n /**\n * A note left by the customer to the merchant, either in their cart or during checkout.\n *\n * The value is `undefined` if the buyer hasn't entered a note. Use this to display or react to order-level instructions such as delivery preferences or gift messages.\n */\n note: SubscribableSignalLike;\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The payment options the buyer has currently selected. This updates as\n * the buyer changes their payment method. The array can contain multiple\n * entries when the buyer splits payment across methods (for example, a\n * gift card and a credit card).\n *\n * Each option exposes `handle` and `type` only. Provider names, logos,\n * fees, and installment terms aren't available.\n */\n selectedPaymentOptions: SubscribableSignalLike;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of five minutes.\n *\n * If the previous token expires, this value reflects a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n *\n * > Note: When an extension is being installed in the editor, the settings are empty until\n * a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings.\n */\n settings: SubscribableSignalLike;\n\n /**\n * The proposed customer shipping address. During the information step, the address\n * updates when the field is committed (on change) rather than every keystroke.\n * The property is available only if the extension has access to protected customer\n * data. When available, the subscribable value is `undefined` if delivery isn't required.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: SubscribableSignalLike;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke. The property is available only\n * if the extension has access to protected customer data. The subscribable value is\n * `undefined` if the billing address hasn't been provided yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: SubscribableSignalLike;\n\n /**\n * The store where the checkout is taking place, including the shop name,\n * storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.\n */\n shop: Shop;\n\n /**\n * Key-value storage that persists across page loads within the current checkout\n * session. Data is shared across all activated targets associated with\n * this extension.\n *\n * > Caution: Data persistence isn't guaranteed and storage is cleared when the\n * buyer starts a new checkout.\n */\n storage: Storage;\n\n /**\n * The renderer version being used for the extension.\n *\n * @example '2025-10'\n */\n version: Version;\n\n /**\n * Customer privacy consent settings and a flag denoting if consent has previously been collected.\n */\n customerPrivacy: SubscribableSignalLike;\n\n /**\n * Enables setting and updating customer privacy consent settings and tracking consent metafields.\n *\n * > Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyTrackingConsentChange: ApplyTrackingConsentChangeType;\n\n /**\n * Additional region-specific fields required during checkout, such as tax identification numbers (Brazil's CPF/CNPJ) or customs credentials. The property is available only if the extension has access to protected customer data. The array is empty if the current checkout doesn't require any localized fields.\n */\n localizedFields?: SubscribableSignalLike;\n}" } }, "Analytics": { "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Analytics", - "description": "", + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "publish", "value": "(name: string, data: Record) => Promise", - "description": "Publish method to emit analytics events to [Web Pixels](https://shopify.dev/docs/apps/marketing)." + "description": "Publishes a custom event to [Web Pixels](/docs/apps/marketing). Returns `true` when the event is successfully dispatched.\n\nThe Promise resolves to `true` when the event was dispatched. The boolean indicates dispatch confirmation only. It doesn't indicate whether any specific web pixel processed the event." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "visitor", "value": "(data: { email?: string; phone?: string; }) => Promise", - "description": "A method for capturing details about a visitor on the online store." + "description": "Submits buyer contact details for attribution and analytics purposes." } ], - "value": "export interface Analytics {\n /**\n * Publish method to emit analytics events to [Web Pixels](https://shopify.dev/docs/apps/marketing).\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * A method for capturing details about a visitor on the online store.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" + "value": "export interface Analytics {\n /**\n * Publishes a custom event to [Web Pixels](/docs/apps/marketing).\n * Returns `true` when the event is successfully dispatched.\n *\n * The Promise resolves to `true` when the event was dispatched. The boolean\n * indicates dispatch confirmation only. It doesn't indicate whether any\n * specific web pixel processed the event.\n */\n publish(name: string, data: Record): Promise;\n\n /**\n * Submits buyer contact details for attribution and analytics purposes.\n */\n visitor(data: {email?: string; phone?: string}): Promise;\n}" } }, "VisitorResult": { @@ -347,10 +347,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'error'", - "description": "Indicates that the visitor information is invalid and wasn't submitted. Examples are using the wrong data type or missing a required property." + "description": "Indicates that the visitor information is invalid and wasn't submitted. Common causes include using the wrong data type or omitting a required property." } ], - "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Examples are using the wrong data type or missing a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface VisitorError {\n /**\n * Indicates that the visitor information is invalid and wasn't submitted.\n * Common causes include using the wrong data type or omitting a required property.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" } }, "SubscribableSignalLike": { @@ -578,10 +578,10 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string | null", - "description": "The new value to store in the metafield. Set to `null` to delete the metafield." + "description": "The new value to store in the metafield. Set to `null` to delete the metafield.\n\nConsent metafield values are strings, not booleans. Pass `null` to delete a tracking consent metafield." } ], - "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n */\n value: string | null;\n}" + "value": "export interface TrackingConsentMetafieldChange {\n /**\n * The identifier for the tracking consent metafield to update.\n */\n key: string;\n /**\n * The new value to store in the metafield. Set to `null` to delete the metafield.\n *\n * Consent metafield values are strings, not booleans. Pass `null` to delete\n * a tracking consent metafield.\n */\n value: string | null;\n}" } }, "VisitorConsent": { @@ -680,7 +680,7 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "AppMetafieldEntry", - "description": "An entry that pairs a Shopify resource with one of its [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields). Each entry contains a `target` identifying which resource the metafield belongs to and a `metafield` object with the actual data.", + "description": "An entry that pairs a Shopify resource with one of its [metafields](/docs/apps/build/custom-data/metafields). Each entry contains a `target` identifying which resource the metafield belongs to and a `metafield` object with the actual data.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -694,17 +694,17 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "AppMetafieldEntryTarget", - "description": "The Shopify resource that this metafield is attached to, including the resource type (such as `'product'` or `'customer'`) and its globally-unique ID.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data) when the type is `customer`, `company` or `companyLocation`." + "description": "The Shopify resource that this metafield is attached to, including the resource type (such as `'product'` or `'customer'`) and its globally-unique ID.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data) when the type is `customer`, `company` or `companyLocation`." } ], - "value": "export interface AppMetafieldEntry {\n /**\n * The Shopify resource that this metafield is attached to, including the resource type (such as `'product'` or `'customer'`) and its globally-unique ID.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data) when the type is `customer`, `company` or `companyLocation`.\n */\n target: AppMetafieldEntryTarget;\n\n /**\n * The metafield data, including the namespace, key, value, and content type. Use the `namespace` and `key` together to uniquely identify the metafield within its resource.\n */\n metafield: AppMetafield;\n}" + "value": "export interface AppMetafieldEntry {\n /**\n * The Shopify resource that this metafield is attached to, including the resource type (such as `'product'` or `'customer'`) and its globally-unique ID.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data) when the type is `customer`, `company` or `companyLocation`.\n */\n target: AppMetafieldEntryTarget;\n\n /**\n * The metafield data, including the namespace, key, value, and content type. Use the `namespace` and `key` together to uniquely identify the metafield within its resource.\n */\n metafield: AppMetafield;\n}" } }, "AppMetafield": { "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "AppMetafield", - "description": "Represents a custom [metafield](https://shopify.dev/docs/apps/build/custom-data/metafields) attached to a resource such as a product, variant, customer, or shop.", + "description": "Represents a custom [metafield](/docs/apps/build/custom-data/metafields) attached to a resource such as a product, variant, customer, or shop.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -718,14 +718,14 @@ "syntaxKind": "PropertySignature", "name": "namespace", "value": "string", - "description": "The namespace that the metafield belongs to. Namespaces group related metafields and prevent naming collisions between different apps.\n\nApp owned metafield namespaces are returned using the `$app` format. See [app owned metafields](https://shopify.dev/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information." + "description": "The namespace that the metafield belongs to. Namespaces group related metafields and prevent naming collisions between different apps.\n\nApp owned metafield namespaces are returned using the `$app` format. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "type", "value": "string", - "description": "The metafield's [type name](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-data-types), such as `'single_line_text_field'` or `'json'`. This is the full type identifier, whereas `valueType` is a simplified category." + "description": "The metafield's [type name](/docs/apps/build/custom-data/metafields/list-of-data-types), such as `'single_line_text_field'` or `'json'`. This is the full type identifier, whereas `valueType` is a simplified category." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -742,7 +742,7 @@ "description": "The metafield's information type.\n\n- `'boolean'`: A true or false value.\n- `'float'`: A decimal number value.\n- `'integer'`: A whole number value.\n- `'json_string'`: A JSON-encoded string value.\n- `'string'`: A plain text value." } ], - "value": "export interface AppMetafield {\n /**\n * The identifier for the metafield within its namespace, such as `'ingredients'` or `'shipping_weight'`.\n */\n key: string;\n\n /**\n * The namespace that the metafield belongs to. Namespaces group related metafields and prevent naming collisions between different apps.\n *\n * App owned metafield namespaces are returned using the `$app` format. See [app owned metafields](https://shopify.dev/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n */\n namespace: string;\n\n /**\n * The value of a metafield, stored as a string regardless of the underlying type. For JSON metafields, parse the string to access structured data.\n */\n value: string;\n\n /**\n * The metafield's information type.\n *\n * - `'boolean'`: A true or false value.\n * - `'float'`: A decimal number value.\n * - `'integer'`: A whole number value.\n * - `'json_string'`: A JSON-encoded string value.\n * - `'string'`: A plain text value.\n */\n valueType: 'boolean' | 'float' | 'integer' | 'json_string' | 'string';\n\n /**\n * The metafield's [type name](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-data-types), such as `'single_line_text_field'` or `'json'`. This is the full type identifier, whereas `valueType` is a simplified category.\n */\n type: string;\n}" + "value": "export interface AppMetafield {\n /**\n * The identifier for the metafield within its namespace, such as `'ingredients'` or `'shipping_weight'`.\n */\n key: string;\n\n /**\n * The namespace that the metafield belongs to. Namespaces group related metafields and prevent naming collisions between different apps.\n *\n * App owned metafield namespaces are returned using the `$app` format. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n */\n namespace: string;\n\n /**\n * The value of a metafield, stored as a string regardless of the underlying type. For JSON metafields, parse the string to access structured data.\n */\n value: string;\n\n /**\n * The metafield's information type.\n *\n * - `'boolean'`: A true or false value.\n * - `'float'`: A decimal number value.\n * - `'integer'`: A whole number value.\n * - `'json_string'`: A JSON-encoded string value.\n * - `'string'`: A plain text value.\n */\n valueType: 'boolean' | 'float' | 'integer' | 'json_string' | 'string';\n\n /**\n * The metafield's [type name](/docs/apps/build/custom-data/metafields/list-of-data-types), such as `'single_line_text_field'` or `'json'`. This is the full type identifier, whereas `valueType` is a simplified category.\n */\n type: string;\n}" } }, "AppMetafieldEntryTarget": { @@ -756,7 +756,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "The globally-unique identifier of the Shopify resource, in [GID](https://shopify.dev/docs/api/usage/gids) format. Use this value to match the metafield to a specific resource in your extension or when querying the [Storefront API](https://shopify.dev/docs/api/storefront).", + "description": "The globally-unique identifier of the Shopify resource, in [GID](/docs/api/usage/gids) format. Use this value to match the metafield to a specific resource in your extension or when querying the [Storefront API](/docs/api/storefront).", "examples": [ { "title": "Example", @@ -775,10 +775,10 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "| 'customer'\n | 'product'\n | 'shop'\n | 'shopUser'\n | 'variant'\n | 'company'\n | 'companyLocation'\n | 'cart'", - "description": "The kind of Shopify resource this metafield belongs to:\n\n- `'customer'`: The customer who placed the order.\n- `'product'`: A product in the merchant's catalog.\n- `'shop'`: The merchant's shop.\n- `'shopUser'`: A staff member or collaborator account on the shop.\n- `'variant'`: A specific variant of a product.\n- `'company'`: A [B2B](https://shopify.dev/docs/apps/build/b2b) company associated with the order.\n- `'companyLocation'`: A location belonging to a [B2B](https://shopify.dev/docs/apps/build/b2b) company.\n- `'cart'`: The cart associated with the checkout.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data) when the type is `customer`, `company` or `companyLocation`." + "description": "The kind of Shopify resource this metafield belongs to:\n\n- `'customer'`: The customer who placed the order.\n- `'product'`: A product in the merchant's catalog.\n- `'shop'`: The merchant's shop.\n- `'shopUser'`: A staff member or collaborator account on the shop.\n- `'variant'`: A specific variant of a product.\n- `'company'`: A [B2B](/docs/apps/build/b2b) company associated with the order.\n- `'companyLocation'`: A location belonging to a [B2B](/docs/apps/build/b2b) company.\n- `'cart'`: The cart associated with the checkout.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data) when the type is `customer`, `company` or `companyLocation`." } ], - "value": "export interface AppMetafieldEntryTarget {\n /**\n * The kind of Shopify resource this metafield belongs to:\n *\n * - `'customer'`: The customer who placed the order.\n * - `'product'`: A product in the merchant's catalog.\n * - `'shop'`: The merchant's shop.\n * - `'shopUser'`: A staff member or collaborator account on the shop.\n * - `'variant'`: A specific variant of a product.\n * - `'company'`: A [B2B](https://shopify.dev/docs/apps/build/b2b) company associated with the order.\n * - `'companyLocation'`: A location belonging to a [B2B](https://shopify.dev/docs/apps/build/b2b) company.\n * - `'cart'`: The cart associated with the checkout.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data) when the type is `customer`, `company` or `companyLocation`.\n */\n type:\n | 'customer'\n | 'product'\n | 'shop'\n | 'shopUser'\n | 'variant'\n | 'company'\n | 'companyLocation'\n | 'cart';\n\n /**\n * The globally-unique identifier of the Shopify resource, in [GID](https://shopify.dev/docs/api/usage/gids) format. Use this value to match the metafield to a specific resource in your extension or when querying the [Storefront API](https://shopify.dev/docs/api/storefront).\n *\n * @example 'gid://shopify/Product/123'\n */\n id: string;\n}" + "value": "export interface AppMetafieldEntryTarget {\n /**\n * The kind of Shopify resource this metafield belongs to:\n *\n * - `'customer'`: The customer who placed the order.\n * - `'product'`: A product in the merchant's catalog.\n * - `'shop'`: The merchant's shop.\n * - `'shopUser'`: A staff member or collaborator account on the shop.\n * - `'variant'`: A specific variant of a product.\n * - `'company'`: A [B2B](/docs/apps/build/b2b) company associated with the order.\n * - `'companyLocation'`: A location belonging to a [B2B](/docs/apps/build/b2b) company.\n * - `'cart'`: The cart associated with the checkout.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data) when the type is `customer`, `company` or `companyLocation`.\n */\n type:\n | 'customer'\n | 'product'\n | 'shop'\n | 'shopUser'\n | 'variant'\n | 'company'\n | 'companyLocation'\n | 'cart';\n\n /**\n * The globally-unique identifier of the Shopify resource, in [GID](/docs/api/usage/gids) format. Use this value to match the metafield to a specific resource in your extension or when querying the [Storefront API](/docs/api/storefront).\n *\n * @example 'gid://shopify/Product/123'\n */\n id: string;\n}" } }, "Attribute": { @@ -811,7 +811,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.", + "description": "The value associated with the attribute key. This is a freeform string that can store any information the buyer or app provides.\n\nAttribute values are always strings. To store structured data, serialize it to JSON and parse it when reading.", "examples": [ { "title": "Example", @@ -826,7 +826,7 @@ ] } ], - "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" + "value": "export interface Attribute {\n /**\n * The identifier for the attribute. Each key must be unique within the\n * set of attributes on the cart or checkout. If you call\n * `applyAttributeChange()` with a key that already exists, then the\n * existing value is replaced.\n *\n * @example 'gift_wrapping'\n */\n key: string;\n\n /**\n * The value associated with the attribute key. This is a freeform string\n * that can store any information the buyer or app provides.\n *\n * Attribute values are always strings. To store structured data, serialize\n * it to JSON and parse it when reading.\n *\n * @example 'Please use red wrapping paper'\n */\n value: string;\n}" } }, "PaymentOption": { @@ -864,7 +864,7 @@ "syntaxKind": "PropertySignature", "name": "address1", "value": "string", - "description": "The first line of the street address, including the street number and name. The value is `undefined` if the buyer hasn't entered an address yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The first line of the street address, including the street number and name. The value is `undefined` if the buyer hasn't entered an address yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -884,7 +884,7 @@ "syntaxKind": "PropertySignature", "name": "address2", "value": "string", - "description": "The second line of the buyer's address, such as apartment number, suite, or unit. The value is `undefined` if the buyer didn't provide a second address line.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The second line of the buyer's address, such as apartment number, suite, or unit. The value is `undefined` if the buyer didn't provide a second address line.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -904,7 +904,7 @@ "syntaxKind": "PropertySignature", "name": "city", "value": "string", - "description": "The city, town, or village of the address. The value is `undefined` if the buyer hasn't entered a city yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The city, town, or village of the address. The value is `undefined` if the buyer hasn't entered a city yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -924,7 +924,7 @@ "syntaxKind": "PropertySignature", "name": "company", "value": "string", - "description": "The buyer's company name. The value is `undefined` if the buyer didn't enter a company or the store doesn't collect company names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's company name. The value is `undefined` if the buyer didn't enter a company or the store doesn't collect company names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -944,7 +944,7 @@ "syntaxKind": "PropertySignature", "name": "countryCode", "value": "CountryCode", - "description": "The two-letter country code in [ISO 3166 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if the buyer hasn't selected a country yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The two-letter country code in [ISO 3166 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if the buyer hasn't selected a country yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -964,7 +964,7 @@ "syntaxKind": "PropertySignature", "name": "firstName", "value": "string", - "description": "The buyer's first name. Use this alongside `lastName` when you need to display or process name parts separately. The value is `undefined` if the buyer didn't provide a first name or the store doesn't collect split names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's first name. Use this alongside `lastName` when you need to display or process name parts separately. The value is `undefined` if the buyer didn't provide a first name or the store doesn't collect split names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -984,7 +984,7 @@ "syntaxKind": "PropertySignature", "name": "lastName", "value": "string", - "description": "The buyer's last name. Use this alongside `firstName` when you need to display or process name parts separately. The value is `undefined` if the buyer didn't provide a last name or the store doesn't collect split names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's last name. Use this alongside `firstName` when you need to display or process name parts separately. The value is `undefined` if the buyer didn't provide a last name or the store doesn't collect split names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -1004,7 +1004,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "The buyer's full name, typically a combination of first and last name. The value is `undefined` if the buyer didn't provide a name.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's full name, typically a combination of first and last name. The value is `undefined` if the buyer didn't provide a name.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -1024,7 +1024,7 @@ "syntaxKind": "PropertySignature", "name": "phone", "value": "string", - "description": "The phone number associated with the address, typically in international format. The value is `undefined` if the buyer didn't provide a phone number or the store doesn't collect phone numbers.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The phone number associated with the address, typically in international format. The value is `undefined` if the buyer didn't provide a phone number or the store doesn't collect phone numbers.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -1044,7 +1044,7 @@ "syntaxKind": "PropertySignature", "name": "provinceCode", "value": "string", - "description": "The province, state, prefecture, or region code of the address. The format varies by country. The value is `undefined` if the buyer hasn't selected one yet or the country doesn't have provinces.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The province, state, prefecture, or region code of the address. The format varies by country. The value is `undefined` if the buyer hasn't selected one yet or the country doesn't have provinces.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -1064,7 +1064,7 @@ "syntaxKind": "PropertySignature", "name": "zip", "value": "string", - "description": "The postal code or ZIP code of the address, used for mail sorting and delivery routing. The value is `undefined` if the buyer hasn't entered one yet or the country doesn't use postal codes.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The postal code or ZIP code of the address, used for mail sorting and delivery routing. The value is `undefined` if the buyer hasn't entered one yet or the country doesn't use postal codes.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -1080,7 +1080,7 @@ ] } ], - "value": "export interface MailingAddress {\n /**\n * The buyer's full name, typically a combination of first and last name.\n * The value is `undefined` if the buyer didn't provide a name.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'John Doe'\n */\n name?: string;\n\n /**\n * The buyer's first name. Use this alongside `lastName` when you need to\n * display or process name parts separately. The value is `undefined` if\n * the buyer didn't provide a first name or the store doesn't collect\n * split names.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'John'\n */\n firstName?: string;\n\n /**\n * The buyer's last name. Use this alongside `firstName` when you need to\n * display or process name parts separately. The value is `undefined` if\n * the buyer didn't provide a last name or the store doesn't collect\n * split names.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'Doe'\n */\n lastName?: string;\n\n /**\n * The buyer's company name. The value is `undefined` if the buyer didn't\n * enter a company or the store doesn't collect company names.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'Shopify'\n */\n company?: string;\n\n /**\n * The first line of the street address, including the street number and\n * name. The value is `undefined` if the buyer hasn't entered an address yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example '151 O'Connor Street'\n */\n address1?: string;\n\n /**\n * The second line of the buyer's address, such as apartment number, suite,\n * or unit. The value is `undefined` if the buyer didn't provide a second\n * address line.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'Ground floor'\n */\n address2?: string;\n\n /**\n * The city, town, or village of the address. The value is `undefined` if\n * the buyer hasn't entered a city yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'Ottawa'\n */\n city?: string;\n\n /**\n * The postal code or ZIP code of the address, used for mail sorting and\n * delivery routing. The value is `undefined` if the buyer hasn't entered\n * one yet or the country doesn't use postal codes.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'K2P 2L8'\n */\n zip?: string;\n\n /**\n * The two-letter country code in [ISO 3166 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n * format. The value is `undefined` if the buyer hasn't selected a country\n * yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'CA' for Canada.\n */\n countryCode?: CountryCode;\n\n /**\n * The province, state, prefecture, or region code of the address. The\n * format varies by country. The value is `undefined` if the buyer hasn't\n * selected one yet or the country doesn't have provinces.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'ON' for Ontario.\n */\n provinceCode?: string;\n\n /**\n * The phone number associated with the address, typically in international\n * format. The value is `undefined` if the buyer didn't provide a phone\n * number or the store doesn't collect phone numbers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example '+1 613 111 2222'\n */\n phone?: string;\n}" + "value": "export interface MailingAddress {\n /**\n * The buyer's full name, typically a combination of first and last name.\n * The value is `undefined` if the buyer didn't provide a name.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'John Doe'\n */\n name?: string;\n\n /**\n * The buyer's first name. Use this alongside `lastName` when you need to\n * display or process name parts separately. The value is `undefined` if\n * the buyer didn't provide a first name or the store doesn't collect\n * split names.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'John'\n */\n firstName?: string;\n\n /**\n * The buyer's last name. Use this alongside `firstName` when you need to\n * display or process name parts separately. The value is `undefined` if\n * the buyer didn't provide a last name or the store doesn't collect\n * split names.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'Doe'\n */\n lastName?: string;\n\n /**\n * The buyer's company name. The value is `undefined` if the buyer didn't\n * enter a company or the store doesn't collect company names.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'Shopify'\n */\n company?: string;\n\n /**\n * The first line of the street address, including the street number and\n * name. The value is `undefined` if the buyer hasn't entered an address yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example '151 O'Connor Street'\n */\n address1?: string;\n\n /**\n * The second line of the buyer's address, such as apartment number, suite,\n * or unit. The value is `undefined` if the buyer didn't provide a second\n * address line.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'Ground floor'\n */\n address2?: string;\n\n /**\n * The city, town, or village of the address. The value is `undefined` if\n * the buyer hasn't entered a city yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'Ottawa'\n */\n city?: string;\n\n /**\n * The postal code or ZIP code of the address, used for mail sorting and\n * delivery routing. The value is `undefined` if the buyer hasn't entered\n * one yet or the country doesn't use postal codes.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'K2P 2L8'\n */\n zip?: string;\n\n /**\n * The two-letter country code in [ISO 3166 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n * format. The value is `undefined` if the buyer hasn't selected a country\n * yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'CA' for Canada.\n */\n countryCode?: CountryCode;\n\n /**\n * The province, state, prefecture, or region code of the address. The\n * format varies by country. The value is `undefined` if the buyer hasn't\n * selected one yet or the country doesn't have provinces.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'ON' for Ontario.\n */\n provinceCode?: string;\n\n /**\n * The phone number associated with the address, typically in international\n * format. The value is `undefined` if the buyer didn't provide a phone\n * number or the store doesn't collect phone numbers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example '+1 613 111 2222'\n */\n phone?: string;\n}" } }, "CountryCode": { @@ -1096,59 +1096,59 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "BuyerIdentity", - "description": "Information about the buyer who is completing the checkout.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data). The `customer` and `purchasingCompany` properties require level 1 access. The `email` and `phone` properties require level 2 access.", + "description": "Information about the buyer who is completing the checkout.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data). The `customer` and `purchasingCompany` properties require level 1 access. The `email` and `phone` properties require level 2 access.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "customer", "value": "SubscribableSignalLike", - "description": "The buyer's customer account, including their ID and whether they've accepted marketing. The value is `undefined` if the buyer isn't a known customer for this shop or if they haven't logged in yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The buyer's customer account, including their ID and whether they've accepted marketing. The value is `undefined` if the buyer isn't a known customer for this shop or if they haven't logged in yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "email", "value": "SubscribableSignalLike", - "description": "The email address the buyer provided during checkout. The value is `undefined` if the app doesn't have access to customer data.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The email address the buyer provided during checkout. The value is `undefined` if the app doesn't have access to customer data.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "phone", "value": "SubscribableSignalLike", - "description": "The phone number the buyer provided during checkout. The value is `undefined` if no phone number was provided or the app doesn't have access to customer data.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The phone number the buyer provided during checkout. The value is `undefined` if no phone number was provided or the app doesn't have access to customer data.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "purchasingCompany", "value": "SubscribableSignalLike", - "description": "The company and company location that a B2B (business-to-business) customer is purchasing on behalf of. Use this to identify the business context of the order. The value is `undefined` if the buyer isn't a B2B customer.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The company and company location that a B2B (business-to-business) customer is purchasing on behalf of. Use this to identify the business context of the order. The value is `undefined` if the buyer isn't a B2B customer.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." } ], - "value": "export interface BuyerIdentity {\n /**\n * The buyer's customer account, including their ID and whether they've accepted marketing. The value is `undefined` if the buyer isn't a\n * known customer for this shop or if they haven't logged in yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n customer: SubscribableSignalLike;\n\n /**\n * The email address the buyer provided during checkout. The value is `undefined` if the app doesn't have access to customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n email: SubscribableSignalLike;\n\n /**\n * The phone number the buyer provided during checkout. The value is `undefined` if no phone number was provided or the app doesn't have access to customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n phone: SubscribableSignalLike;\n\n /**\n * The company and company location that a B2B (business-to-business) customer is purchasing on behalf of. Use this to identify the business context of the order. The value is `undefined` if the buyer isn't a B2B customer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n purchasingCompany: SubscribableSignalLike;\n}" + "value": "export interface BuyerIdentity {\n /**\n * The buyer's customer account, including their ID and whether they've accepted marketing. The value is `undefined` if the buyer isn't a\n * known customer for this shop or if they haven't logged in yet.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n customer: SubscribableSignalLike;\n\n /**\n * The email address the buyer provided during checkout. The value is `undefined` if the app doesn't have access to customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email: SubscribableSignalLike;\n\n /**\n * The phone number the buyer provided during checkout. The value is `undefined` if no phone number was provided or the app doesn't have access to customer data.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone: SubscribableSignalLike;\n\n /**\n * The company and company location that a B2B (business-to-business) customer is purchasing on behalf of. Use this to identify the business context of the order. The value is `undefined` if the buyer isn't a B2B customer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n purchasingCompany: SubscribableSignalLike;\n}" } }, "Customer": { "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Customer", - "description": "Information about a customer who has previously purchased from this shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "Information about a customer who has previously purchased from this shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "acceptsEmailMarketing", "value": "boolean", - "description": "Whether the customer has opted in to email marketing.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "Whether the customer has opted in to email marketing.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "acceptsMarketing", "value": "boolean", - "description": "Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n\n> Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.", + "description": "Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n\n> Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.", "deprecationMessage": "Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead." }, { @@ -1156,14 +1156,14 @@ "syntaxKind": "PropertySignature", "name": "acceptsSmsMarketing", "value": "boolean", - "description": "Whether the customer has opted in to SMS marketing.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "Whether the customer has opted in to SMS marketing.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "email", "value": "string", - "description": "The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -1171,7 +1171,7 @@ "syntaxKind": "PropertySignature", "name": "firstName", "value": "string", - "description": "The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -1179,7 +1179,7 @@ "syntaxKind": "PropertySignature", "name": "fullName", "value": "string", - "description": "The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -1187,7 +1187,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -1206,14 +1206,14 @@ "syntaxKind": "PropertySignature", "name": "image", "value": "ImageDetails", - "description": "The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "lastName", "value": "string", - "description": "The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -1221,14 +1221,14 @@ "syntaxKind": "PropertySignature", "name": "ordersCount", "value": "number", - "description": "The number of orders the customer has previously placed with this shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The number of orders the customer has previously placed with this shop.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "phone", "value": "string", - "description": "The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -1236,11 +1236,11 @@ "syntaxKind": "PropertySignature", "name": "storeCreditAccounts", "value": "StoreCreditAccount[]", - "description": "The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isPrivate": true } ], - "value": "export interface Customer {\n /**\n * A globally-unique identifier for the customer in the format `gid://shopify/Customer/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" + "value": "export interface Customer {\n /**\n * An identifier for the customer in the format `gid://shopify/Customer/`. This value is unique per shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Customer/123'\n */\n id: string;\n /**\n * The email address associated with the customer's account. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n email?: string;\n /**\n * The phone number associated with the customer's account. The value is `undefined` if no phone number is on file or the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n phone?: string;\n /**\n * The customer's full name, typically a combination of first and last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n fullName?: string;\n /**\n * The customer's first name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n firstName?: string;\n /**\n * The customer's last name. The value is `undefined` if the app doesn't have the required access level.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n lastName?: string;\n /**\n * The customer's profile image, such as a Gravatar avatar. Use this to personalize the extension UI for the logged-in buyer.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n image: ImageDetails;\n /**\n * Whether the customer has opted in to receiving marketing communications from the merchant, such as email campaigns and promotional offers.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Caution: This field is deprecated and will be removed in a future version. Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n *\n * @deprecated Use `acceptsEmailMarketing` or `acceptsSmsMarketing` instead.\n */\n acceptsMarketing: boolean;\n /**\n * Whether the customer has opted in to email marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsEmailMarketing: boolean;\n /**\n * Whether the customer has opted in to SMS marketing.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n acceptsSmsMarketing: boolean;\n /**\n * The store credit accounts owned by this customer that can be used as payment during checkout. Each account has a balance representing available store credit.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @private\n */\n storeCreditAccounts: StoreCreditAccount[];\n /**\n * The number of orders the customer has previously placed with this shop.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n ordersCount: number;\n}" } }, "ImageDetails": { @@ -1308,24 +1308,24 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "PurchasingCompany", - "description": "The company and location that the [B2B](https://shopify.dev/docs/apps/build/b2b) customer is purchasing on behalf of. This is present only when the buyer is logged in as a business customer.", + "description": "The company and location that the [B2B](/docs/apps/build/b2b) customer is purchasing on behalf of. This is present only when the buyer is logged in as a business customer.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "company", "value": "Company", - "description": "The company the B2B customer belongs to.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The company the B2B customer belongs to.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "location", "value": "CompanyLocation", - "description": "The specific company location associated with this B2B purchase.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The specific company location associated with this B2B purchase.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." } ], - "value": "export interface PurchasingCompany {\n /**\n * The company the B2B customer belongs to.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n company: Company;\n /**\n * The specific company location associated with this B2B purchase.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n location: CompanyLocation;\n}" + "value": "export interface PurchasingCompany {\n /**\n * The company the B2B customer belongs to.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n company: Company;\n /**\n * The specific company location associated with this B2B purchase.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n location: CompanyLocation;\n}" } }, "Company": { @@ -1339,7 +1339,7 @@ "syntaxKind": "PropertySignature", "name": "externalId", "value": "string", - "description": "A merchant-defined external identifier for the company. The value is `undefined` if the merchant hasn't set one.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "A merchant-defined external identifier for the company. The value is `undefined` if the merchant hasn't set one.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -1347,7 +1347,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the company in the format `gid://shopify/Company/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "A globally-unique identifier for the company in the format `gid://shopify/Company/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -1366,10 +1366,10 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "The company's display name.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The company's display name.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." } ], - "value": "export interface Company {\n /**\n * A globally-unique identifier for the company in the format `gid://shopify/Company/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Company/123'\n */\n id: string;\n /**\n * The company's display name.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n name: string;\n /**\n * A merchant-defined external identifier for the company. The value is `undefined` if the merchant hasn't set one.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n externalId?: string;\n}" + "value": "export interface Company {\n /**\n * A globally-unique identifier for the company in the format `gid://shopify/Company/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/Company/123'\n */\n id: string;\n /**\n * The company's display name.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n name: string;\n /**\n * A merchant-defined external identifier for the company. The value is `undefined` if the merchant hasn't set one.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n externalId?: string;\n}" } }, "CompanyLocation": { @@ -1383,7 +1383,7 @@ "syntaxKind": "PropertySignature", "name": "externalId", "value": "string", - "description": "A merchant-defined external identifier for the company location. The value is `undefined` if the merchant hasn't set one.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "A merchant-defined external identifier for the company location. The value is `undefined` if the merchant hasn't set one.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -1391,7 +1391,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A globally-unique identifier for the company location in the format `gid://shopify/CompanyLocation/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "A globally-unique identifier for the company location in the format `gid://shopify/CompanyLocation/`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "examples": [ { "title": "Example", @@ -1410,10 +1410,10 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "The display name of the company location.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The display name of the company location.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." } ], - "value": "export interface CompanyLocation {\n /**\n * A globally-unique identifier for the company location in the format `gid://shopify/CompanyLocation/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/CompanyLocation/123'\n */\n id: string;\n /**\n * The display name of the company location.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n name: string;\n /**\n * A merchant-defined external identifier for the company location. The value is `undefined` if the merchant hasn't set one.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n externalId?: string;\n}" + "value": "export interface CompanyLocation {\n /**\n * A globally-unique identifier for the company location in the format `gid://shopify/CompanyLocation/`.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'gid://shopify/CompanyLocation/123'\n */\n id: string;\n /**\n * The display name of the company location.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n name: string;\n /**\n * A merchant-defined external identifier for the company location. The value is `undefined` if the merchant hasn't set one.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n externalId?: string;\n}" } }, "BuyerJourney": { @@ -1441,7 +1441,7 @@ "syntaxKind": "MethodSignature", "name": "intercept", "value": "(interceptor: Interceptor) => Promise<() => void>", - "description": "Installs a function for intercepting and preventing progress on checkout.\n\nThis returns a promise that resolves to a teardown function. Calling the teardown function removes the interceptor.\n\nTo block checkout progress, you must set the [block_progress](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress) capability in your extension's configuration.\n\nIf you do, then you're expected to inform the buyer why navigation was blocked, either by passing validation errors to the checkout UI or rendering the errors in your extension.\n\nIf the merchant hasn't allowed your extension to block checkout progress, show a warning in the [checkout editor](https://shopify.dev/docs/apps/build/checkout/test-checkout-ui-extensions#test-the-extension-in-the-checkout-editor)." + "description": "Installs a function for intercepting and preventing progress on checkout.\n\nThis returns a promise that resolves to a teardown function. Calling the teardown function removes the interceptor.\n\nTo block checkout progress, you must set the [block_progress](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress) capability in your extension's configuration.\n\nIf you do, then you're expected to inform the buyer why navigation was blocked, either by passing validation errors to the checkout UI or rendering the errors in your extension.\n\nIf the merchant hasn't allowed your extension to block checkout progress, show a warning in the [checkout editor](/docs/apps/build/checkout/test-checkout-ui-extensions#test-the-extension-in-the-checkout-editor)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -1451,7 +1451,7 @@ "description": "All possible steps the buyer can take to complete checkout. These steps vary depending on whether the checkout is one-page or three-page, and on the shop's configuration." } ], - "value": "export interface BuyerJourney {\n /**\n * Installs a function for intercepting and preventing progress on checkout.\n *\n * This returns a promise that resolves to a teardown function. Calling the\n * teardown function removes the interceptor.\n *\n * To block checkout progress, you must set the [block_progress](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress)\n * capability in your extension's configuration.\n *\n * If you do, then you're expected to inform the buyer why navigation was blocked,\n * either by passing validation errors to the checkout UI or rendering the errors in your extension.\n *\n * If the merchant hasn't allowed your extension to block checkout progress, show a warning in the [checkout editor](https://shopify.dev/docs/apps/build/checkout/test-checkout-ui-extensions#test-the-extension-in-the-checkout-editor).\n */\n intercept(interceptor: Interceptor): Promise<() => void>;\n\n /**\n * Whether the buyer has completed submitting their order. When `true`, the buyer is on the order status page after submitting payment. When `false`, the buyer is still in the checkout flow.\n */\n completed: SubscribableSignalLike;\n /**\n * All possible steps the buyer can take to complete checkout. These steps vary depending on whether the checkout is one-page or three-page, and on the shop's configuration.\n */\n steps: SubscribableSignalLike;\n /**\n * The step of checkout the buyer is currently on. The value is `undefined` if the current step can't be determined.\n */\n activeStep: SubscribableSignalLike;\n}" + "value": "export interface BuyerJourney {\n /**\n * Installs a function for intercepting and preventing progress on checkout.\n *\n * This returns a promise that resolves to a teardown function. Calling the\n * teardown function removes the interceptor.\n *\n * To block checkout progress, you must set the [block_progress](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress)\n * capability in your extension's configuration.\n *\n * If you do, then you're expected to inform the buyer why navigation was blocked,\n * either by passing validation errors to the checkout UI or rendering the errors in your extension.\n *\n * If the merchant hasn't allowed your extension to block checkout progress, show a warning in the [checkout editor](/docs/apps/build/checkout/test-checkout-ui-extensions#test-the-extension-in-the-checkout-editor).\n */\n intercept(interceptor: Interceptor): Promise<() => void>;\n\n /**\n * Whether the buyer has completed submitting their order. When `true`, the buyer is on the order status page after submitting payment. When `false`, the buyer is still in the checkout flow.\n */\n completed: SubscribableSignalLike;\n /**\n * All possible steps the buyer can take to complete checkout. These steps vary depending on whether the checkout is one-page or three-page, and on the shop's configuration.\n */\n steps: SubscribableSignalLike;\n /**\n * The step of checkout the buyer is currently on. The value is `undefined` if the current step can't be determined.\n */\n activeStep: SubscribableSignalLike;\n}" } }, "BuyerJourneyStepReference": { @@ -1546,11 +1546,11 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true } ], - "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestAllow {\n /**\n * Indicates that the interceptor allows the buyer's journey to continue.\n */\n behavior: 'allow';\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" } }, "InterceptorResult": { @@ -1622,7 +1622,7 @@ "syntaxKind": "MethodSignature", "name": "perform", "value": "(result: InterceptorResult) => void | Promise", - "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.", + "description": "This callback is called when all interceptors finish. We recommend setting errors or reasons for blocking at this stage, so that all the errors in the UI show up at once.\n\nRuns after all intercept results are collected. Use it for local state updates such as setting an error flag. By the time it runs, the navigation decision is final, so blocking logic belongs in the intercept handler itself, not here.", "isOptional": true }, { @@ -1633,7 +1633,7 @@ "description": "The reason for blocking the interceptor request. This value isn't presented to the buyer, so it doesn't need to be localized. The value is used only for Shopify's own internal debugging and metrics." } ], - "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" + "value": "interface InterceptorRequestBlock {\n /**\n * Indicates that the interceptor blocks the buyer's journey from continuing.\n */\n behavior: 'block';\n\n /**\n * The reason for blocking the interceptor request. This value isn't presented to\n * the buyer, so it doesn't need to be localized. The value is used only for Shopify's\n * own internal debugging and metrics.\n */\n reason: string;\n\n /**\n * Used to pass errors to the checkout UI, outside your extension's UI boundaries.\n */\n errors?: ValidationError[];\n\n /**\n * This callback is called when all interceptors finish. We recommend\n * setting errors or reasons for blocking at this stage, so that all the errors in\n * the UI show up at once.\n *\n * Runs after all intercept results are collected. Use it for local state\n * updates such as setting an error flag. By the time it runs, the navigation\n * decision is final, so blocking logic belongs in the intercept handler\n * itself, not here.\n * @param result InterceptorResult with behavior as either 'allow' or 'block'\n */\n perform?(result: InterceptorResult): void | Promise;\n}" } }, "ValidationError": { @@ -1662,7 +1662,7 @@ "description": "", "tabs": [ { - "code": "'$.cart.deliveryGroups[0].deliveryAddress.countryCode'\n\nSee the [supported targets](https://shopify.dev/docs/api/functions/reference/cart-checkout-validation/graphql#supported-targets)\nfor more information.", + "code": "'$.cart.deliveryGroups[0].deliveryAddress.countryCode'\n\nSee the [supported targets](/docs/api/functions/reference/cart-checkout-validation/graphql#supported-targets)\nfor more information.", "title": "Example" } ] @@ -1670,7 +1670,7 @@ ] } ], - "value": "export interface ValidationError {\n /**\n * The error message to display to the buyer. Use this to explain what\n * went wrong and how to fix it.\n */\n message: string;\n /**\n * The checkout UI field that the error is associated with. When provided,\n * checkout highlights the matching field so the buyer knows where to fix\n * the issue. The value is `undefined` if the error isn't tied to a\n * specific field.\n *\n * @example '$.cart.deliveryGroups[0].deliveryAddress.countryCode'\n *\n * See the [supported targets](https://shopify.dev/docs/api/functions/reference/cart-checkout-validation/graphql#supported-targets)\n * for more information.\n */\n target?: string;\n}" + "value": "export interface ValidationError {\n /**\n * The error message to display to the buyer. Use this to explain what\n * went wrong and how to fix it.\n */\n message: string;\n /**\n * The checkout UI field that the error is associated with. When provided,\n * checkout highlights the matching field so the buyer knows where to fix\n * the issue. The value is `undefined` if the error isn't tied to a\n * specific field.\n *\n * @example '$.cart.deliveryGroups[0].deliveryAddress.countryCode'\n *\n * See the [supported targets](/docs/api/functions/reference/cart-checkout-validation/graphql#supported-targets)\n * for more information.\n */\n target?: string;\n}" } }, "BuyerJourneyStep": { @@ -1868,17 +1868,17 @@ "syntaxKind": "PropertySignature", "name": "totalShippingAmount", "value": "SubscribableSignalLike", - "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step." + "description": "The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n\n`undefined` until the buyer selects a shipping method (typically after the information step)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "totalTaxAmount", "value": "SubscribableSignalLike", - "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet." + "description": "The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n\n`undefined` when taxes haven't been calculated or aren't available for the buyer's region." } ], - "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" + "value": "export interface CartCost {\n /**\n * The sum of all line item prices at the current step of checkout, before shipping and taxes are applied. Use this value to display the base cost of the items the buyer purchased.\n */\n subtotalAmount: SubscribableSignalLike;\n\n /**\n * The total shipping cost after shipping discounts have been applied. The value is `undefined` if shipping hasn't been calculated yet, such as when the buyer is still on the information step.\n *\n * `undefined` until the buyer selects a shipping method (typically after the\n * information step).\n */\n totalShippingAmount: SubscribableSignalLike;\n\n /**\n * The total tax the buyer can expect to pay, or the total tax already included in product and shipping prices (for tax-inclusive regions). The value is `undefined` if taxes haven't been calculated yet.\n *\n * `undefined` when taxes haven't been calculated or aren't available for the\n * buyer's region.\n */\n totalTaxAmount: SubscribableSignalLike;\n\n /**\n * The minimum total at the current step of checkout. Costs not yet calculated, such as shipping on the information step, aren't included. Gift cards and store credits are excluded from this total.\n */\n totalAmount: SubscribableSignalLike;\n}" } }, "CustomerPrivacy": { @@ -1926,7 +1926,7 @@ "description": "", "tabs": [ { - "code": "`{countryCode: 'CA', provinceCode: 'ON'}` for a visitor in Ontario, Canada; `{countryCode: 'US', provinceCode: undefined}` for a visitor in the United States if geolocation fails to detect the state; or `undefined` if neither country nor province is detected or geolocation fails.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "code": "`{countryCode: 'CA', provinceCode: 'ON'}` for a visitor in Ontario, Canada; `{countryCode: 'US', provinceCode: undefined}` for a visitor in the United States if geolocation fails to detect the state; or `undefined` if neither country nor province is detected or geolocation fails.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "title": "Example" } ] @@ -1955,7 +1955,7 @@ "description": "The visitor's current privacy consent settings. Each property represents a consent category and is `true` (actively granted), `false` (actively denied), or `undefined` (no decision made yet)." } ], - "value": "export interface CustomerPrivacy {\n /**\n * Flags indicating whether each type of data processing is permitted, based on the visitor's consent, the merchant's privacy configuration, and the visitor's geographic location.\n */\n allowedProcessing: AllowedProcessing;\n /**\n * The tracking consent metafields that have been stored for this visitor. These contain app-specific consent data beyond the standard categories.\n *\n * @example `[{key: 'analyticsType', value: 'granular'}, {key: 'marketingType', value: 'granular'}]`, or `[]`\n */\n metafields: TrackingConsentMetafield[];\n /**\n * The visitor's current privacy consent settings. Each property represents a consent category and is `true` (actively granted), `false` (actively denied), or `undefined` (no decision made yet).\n */\n visitorConsent: VisitorConsent;\n /**\n * Whether a consent banner should be displayed by default when the page loads. Use this as the initial open/expanded state of the consent banner.\n *\n * This is determined by the visitor's current privacy consent, the shop's [region visibility configuration](https://help.shopify.com/en/manual/privacy-and-security/privacy/customer-privacy-settings/privacy-settings#add-a-cookie-banner) settings, and the region in which the visitor is located.\n */\n shouldShowBanner: boolean;\n /**\n * Whether the visitor is located in a region that requires an explicit opt-out option for the sale or sharing of personal data, such as California (CCPA) or other jurisdictions with similar regulations.\n */\n saleOfDataRegion: boolean;\n /**\n * The visitor's geographic location, used to determine whether more granular consent controls should be displayed based on regional privacy regulations.\n *\n * @example `{countryCode: 'CA', provinceCode: 'ON'}` for a visitor in Ontario, Canada; `{countryCode: 'US', provinceCode: undefined}` for a visitor in the United States if geolocation fails to detect the state; or `undefined` if neither country nor province is detected or geolocation fails.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n region?: CustomerPrivacyRegion;\n}" + "value": "export interface CustomerPrivacy {\n /**\n * Flags indicating whether each type of data processing is permitted, based on the visitor's consent, the merchant's privacy configuration, and the visitor's geographic location.\n */\n allowedProcessing: AllowedProcessing;\n /**\n * The tracking consent metafields that have been stored for this visitor. These contain app-specific consent data beyond the standard categories.\n *\n * @example `[{key: 'analyticsType', value: 'granular'}, {key: 'marketingType', value: 'granular'}]`, or `[]`\n */\n metafields: TrackingConsentMetafield[];\n /**\n * The visitor's current privacy consent settings. Each property represents a consent category and is `true` (actively granted), `false` (actively denied), or `undefined` (no decision made yet).\n */\n visitorConsent: VisitorConsent;\n /**\n * Whether a consent banner should be displayed by default when the page loads. Use this as the initial open/expanded state of the consent banner.\n *\n * This is determined by the visitor's current privacy consent, the shop's [region visibility configuration](https://help.shopify.com/en/manual/privacy-and-security/privacy/customer-privacy-settings/privacy-settings#add-a-cookie-banner) settings, and the region in which the visitor is located.\n */\n shouldShowBanner: boolean;\n /**\n * Whether the visitor is located in a region that requires an explicit opt-out option for the sale or sharing of personal data, such as California (CCPA) or other jurisdictions with similar regulations.\n */\n saleOfDataRegion: boolean;\n /**\n * The visitor's geographic location, used to determine whether more granular consent controls should be displayed based on regional privacy regulations.\n *\n * @example `{countryCode: 'CA', provinceCode: 'ON'}` for a visitor in Ontario, Canada; `{countryCode: 'US', provinceCode: undefined}` for a visitor in the United States if geolocation fails to detect the state; or `undefined` if neither country nor province is detected or geolocation fails.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n region?: CustomerPrivacyRegion;\n}" } }, "AllowedProcessing": { @@ -1969,31 +1969,31 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "boolean", - "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred." + "description": "Whether analytics data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Analytics data includes how the shop was used and what interactions occurred.\n\nWhether analytics data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.analytics`, before calling `shopify.analytics.publish()`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "marketing", "value": "boolean", - "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences." + "description": "Whether marketing data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Marketing data includes attribution and targeted advertising preferences.\n\nWhether marketing data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.marketing`, before performing marketing-related data collection." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "preferences", "value": "boolean", - "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices." + "description": "Whether preference data can be collected based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. Preference data includes language, currency, and sizing choices.\n\nWhether preference data can be collected right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.preferences`, before storing or reading buyer preference data." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "saleOfData", "value": "boolean", - "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data." + "description": "Whether data can be shared with third parties based on the visitor's consent, the merchant's privacy configuration, and the visitor's region. This typically applies to behavioral advertising data.\n\nWhether buyer data can be shared with or sold to third parties right now. Combines the buyer's consent, the merchant's privacy configuration, and the buyer's region into a single boolean. Check this flag, not `visitorConsent.saleOfData`, before sharing or selling buyer data with third parties." } ], - "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n */\n saleOfData: boolean;\n}" + "value": "export interface AllowedProcessing {\n /**\n * Whether analytics data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Analytics\n * data includes how the shop was used and what interactions occurred.\n *\n * Whether analytics data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.analytics`, before\n * calling `shopify.analytics.publish()`.\n */\n analytics: boolean;\n /**\n * Whether marketing data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Marketing\n * data includes attribution and targeted advertising preferences.\n *\n * Whether marketing data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.marketing`, before\n * performing marketing-related data collection.\n */\n marketing: boolean;\n /**\n * Whether preference data can be collected based on the visitor's consent,\n * the merchant's privacy configuration, and the visitor's region. Preference\n * data includes language, currency, and sizing choices.\n *\n * Whether preference data can be collected right now. Combines the buyer's\n * consent, the merchant's privacy configuration, and the buyer's region into\n * a single boolean. Check this flag, not `visitorConsent.preferences`,\n * before storing or reading buyer preference data.\n */\n preferences: boolean;\n /**\n * Whether data can be shared with third parties based on the visitor's\n * consent, the merchant's privacy configuration, and the visitor's region.\n * This typically applies to behavioral advertising data.\n *\n * Whether buyer data can be shared with or sold to third parties right now.\n * Combines the buyer's consent, the merchant's privacy configuration, and\n * the buyer's region into a single boolean. Check this flag, not\n * `visitorConsent.saleOfData`, before sharing or selling buyer data with\n * third parties.\n */\n saleOfData: boolean;\n}" } }, "TrackingConsentMetafield": { @@ -2031,7 +2031,7 @@ "syntaxKind": "PropertySignature", "name": "countryCode", "value": "CountryCode", - "description": "The buyer's country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if geolocation failed.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if geolocation failed.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -2051,7 +2051,7 @@ "syntaxKind": "PropertySignature", "name": "provinceCode", "value": "string", - "description": "The buyer's province, state, or region code in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. The value is `undefined` if geolocation failed or only the country was detected.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's province, state, or region code in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. The value is `undefined` if geolocation failed or only the country was detected.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -2067,7 +2067,7 @@ ] } ], - "value": "export interface CustomerPrivacyRegion {\n /**\n * The buyer's country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if geolocation failed.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'CA' for Canada, 'US' for United States, 'GB' for Great Britain\n */\n countryCode?: CountryCode;\n /**\n * The buyer's province, state, or region code in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. The value is `undefined` if geolocation failed or only the country was detected.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'ON' for Ontario, 'ENG' for England, 'CA' for California\n */\n provinceCode?: string;\n}" + "value": "export interface CustomerPrivacyRegion {\n /**\n * The buyer's country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if geolocation failed.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'CA' for Canada, 'US' for United States, 'GB' for Great Britain\n */\n countryCode?: CountryCode;\n /**\n * The buyer's province, state, or region code in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format. The value is `undefined` if geolocation failed or only the country was detected.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * @example 'ON' for Ontario, 'ENG' for England, 'CA' for California\n */\n provinceCode?: string;\n}" } }, "DeliveryGroup": { @@ -2194,7 +2194,7 @@ "syntaxKind": "PropertySignature", "name": "metafields", "value": "Metafield[]", - "description": "Custom [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields) attached to this delivery option by the carrier or a [Shopify Function](https://shopify.dev/docs/apps/build/functions). Use these to display additional information about the option." + "description": "Custom [metafields](/docs/apps/build/custom-data/metafields) attached to this delivery option by the carrier or a [Shopify Function](/docs/apps/build/functions). Use these to display additional information about the option." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -2281,7 +2281,7 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Metafield", - "description": "Metadata associated with the checkout. See the [metafields documentation](https://shopify.dev/docs/apps/build/custom-data/metafields) for more information on how metafields work.", + "description": "Metadata associated with the checkout. See the [metafields documentation](/docs/apps/build/custom-data/metafields) for more information on how metafields work.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -2400,7 +2400,7 @@ "syntaxKind": "PropertySignature", "name": "metafields", "value": "Metafield[]", - "description": "Custom [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields) attached to this delivery option by the carrier or a [Shopify Function](https://shopify.dev/docs/apps/build/functions). Use these to display additional information about the option." + "description": "Custom [metafields](/docs/apps/build/custom-data/metafields) attached to this delivery option by the carrier or a [Shopify Function](/docs/apps/build/functions). Use these to display additional information about the option." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -2519,7 +2519,7 @@ "syntaxKind": "PropertySignature", "name": "metafields", "value": "Metafield[]", - "description": "Custom [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields) attached to this delivery option by the carrier or a [Shopify Function](https://shopify.dev/docs/apps/build/functions). Use these to display additional information about the option." + "description": "Custom [metafields](/docs/apps/build/custom-data/metafields) attached to this delivery option by the carrier or a [Shopify Function](/docs/apps/build/functions). Use these to display additional information about the option." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -2571,7 +2571,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "DeliveryGroupType", "value": "'oneTimePurchase' | 'subscription'", - "description": "The possible types of a delivery group.\n\n- `'oneTimePurchase'`: Items bought as a single, non-recurring purchase.\n- `'subscription'`: Items bought through a [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) that results in recurring deliveries." + "description": "The possible types of a delivery group.\n\n- `'oneTimePurchase'`: Items bought as a single, non-recurring purchase.\n- `'subscription'`: Items bought through a [selling plan](/docs/apps/build/purchase-options/subscriptions) that results in recurring deliveries." } }, "DeliveryOptionReference": { @@ -2614,7 +2614,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "CartDiscountAllocation", "value": "CartCodeDiscountAllocation | CartAutomaticDiscountAllocation | CartCustomDiscountAllocation", - "description": "A discount allocation applied to the cart. Use the `type` property to determine how the discount was triggered:\n\n- `CartCodeDiscountAllocation` (`type: 'code'`): Triggered by a discount code the buyer entered.\n- `CartAutomaticDiscountAllocation` (`type: 'automatic'`): Applied automatically based on merchant-configured rules.\n- `CartCustomDiscountAllocation` (`type: 'custom'`): Applied by a [Shopify Function](https://shopify.dev/docs/api/functions/latest/discount)." + "description": "A discount allocation applied to the cart. Use the `type` property to determine how the discount was triggered:\n\n- `CartCodeDiscountAllocation` (`type: 'code'`): Triggered by a discount code the buyer entered.\n- `CartAutomaticDiscountAllocation` (`type: 'automatic'`): Applied automatically based on merchant-configured rules.\n- `CartCustomDiscountAllocation` (`type: 'custom'`): Applied by a [Shopify Function](/docs/api/functions/latest/discount)." } }, "CartCodeDiscountAllocation": { @@ -2697,17 +2697,17 @@ "syntaxKind": "PropertySignature", "name": "title", "value": "string", - "description": "The title of the custom discount, typically applied by a [Shopify Function](https://shopify.dev/docs/api/functions/latest/discount)." + "description": "The title of the custom discount, typically applied by a [Shopify Function](/docs/api/functions/latest/discount)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "type", "value": "'custom'", - "description": "Identifies this as a custom discount applied by a [Shopify Function](https://shopify.dev/docs/api/functions/latest/discount)." + "description": "Identifies this as a custom discount applied by a [Shopify Function](/docs/api/functions/latest/discount)." } ], - "value": "export interface CartCustomDiscountAllocation\n extends CartDiscountAllocationBase {\n /**\n * The title of the custom discount, typically applied by a [Shopify Function](https://shopify.dev/docs/api/functions/latest/discount).\n */\n title: string;\n\n /**\n * Identifies this as a custom discount applied by a [Shopify Function](https://shopify.dev/docs/api/functions/latest/discount).\n */\n type: 'custom';\n}" + "value": "export interface CartCustomDiscountAllocation\n extends CartDiscountAllocationBase {\n /**\n * The title of the custom discount, typically applied by a [Shopify Function](/docs/api/functions/latest/discount).\n */\n title: string;\n\n /**\n * Identifies this as a custom discount applied by a [Shopify Function](/docs/api/functions/latest/discount).\n */\n type: 'custom';\n}" } }, "CartDiscountCode": { @@ -2731,7 +2731,7 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Extension", - "description": "The meta information about an extension target.", + "description": "Metadata about the running extension, including its API version, target, capabilities, and editor context. Use this to read configuration details or conditionally render content based on where the extension is running.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -2757,7 +2757,7 @@ "syntaxKind": "PropertySignature", "name": "capabilities", "value": "SubscribableSignalLike", - "description": "The allowed capabilities of the extension, defined in your [shopify.extension.toml](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n* [`api_access`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n\n* [`network_access`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n\n* [`block_progress`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n\n* [`collect_buyer_consent.sms_marketing`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n\n* [`collect_buyer_consent.customer_privacy`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n\n* [`iframe.sources`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe." + "description": "The allowed capabilities of the extension, defined in your [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -2805,7 +2805,7 @@ "syntaxKind": "PropertySignature", "name": "version", "value": "string", - "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.", + "description": "The published version of the running extension target.\n\nFor unpublished extensions, the value is `undefined`.\n\nDon't use this property as a stable identifier in development environments. It becomes available only after the extension is published.", "isOptional": true, "examples": [ { @@ -2821,7 +2821,7 @@ ] } ], - "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined\n * in your [shopify.extension.toml](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n *\n * * [`api_access`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#api-access): the extension can access the Storefront API.\n *\n * * [`network_access`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access): the extension can make external network calls.\n *\n * * [`block_progress`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#block-progress): the extension can block a customer's progress and the merchant has allowed this blocking behavior.\n *\n * * [`collect_buyer_consent.sms_marketing`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can collect customer consent for SMS marketing.\n *\n * * [`collect_buyer_consent.customer_privacy`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent): the extension can register customer consent decisions that are honored on Shopify-managed services.\n *\n * * [`iframe.sources`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#iframe): the extension can embed an external URL in an iframe.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see https://shopify.dev/docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * @example 3.0.10\n */\n version?: string;\n}" + "value": "export interface Extension {\n /**\n * The API version that was set in the extension config file.\n *\n * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'\n */\n apiVersion: ApiVersion;\n\n /**\n * The allowed capabilities of the extension, defined in your\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n */\n capabilities: SubscribableSignalLike;\n\n /**\n * Information about the editor where the extension is being rendered.\n *\n * If the value is undefined, then the extension isn't running in an editor.\n */\n editor?: Editor;\n\n /**\n * A Boolean to show whether your extension is currently rendered to the screen.\n *\n * Shopify might render your extension before it's visible in the UI,\n * typically to pre-render extensions that appear on a later step of the\n * checkout.\n *\n * Your extension might also continue to run after the customer has navigated away\n * from where it was rendered. The extension continues running so that\n * your extension is immediately available to render if the customer navigates back.\n */\n rendered: SubscribableSignalLike;\n\n /**\n * The URL to the script that started the extension target.\n */\n scriptUrl: string;\n\n /**\n * The identifier that specifies where in Shopify's UI your code is being\n * injected. This is one of the targets you've included in your\n * extension's configuration file.\n *\n * @example 'purchase.checkout.block.render'\n * @see /docs/api/checkout-ui-extensions/{API_VERSION}/extension-targets-overview\n * @see /docs/apps/app-extensions/configuration#targets\n */\n target: Target;\n\n /**\n * The published version of the running extension target.\n *\n * For unpublished extensions, the value is `undefined`.\n *\n * Don't use this property as a stable identifier in development environments.\n * It becomes available only after the extension is published.\n *\n * @example 3.0.10\n */\n version?: string;\n}" } }, "ApiVersion": { @@ -2846,24 +2846,24 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Editor", - "description": "", + "description": "Information about the editor environment when an extension is rendered inside the checkout editor. The value is `undefined` when the extension is not rendering in an editor.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "type", "value": "'checkout'", - "description": "Indicates whether the extension is rendering in the [checkout editor](https://shopify.dev/docs/apps/checkout). Always `'checkout'`." + "description": "Indicates whether the extension is rendering in the [checkout editor](/docs/apps/checkout). Always `'checkout'`." } ], - "value": "export interface Editor {\n /**\n * Indicates whether the extension is rendering in the [checkout editor](https://shopify.dev/docs/apps/checkout). Always `'checkout'`.\n */\n type: 'checkout';\n}" + "value": "export interface Editor {\n /**\n * Indicates whether the extension is rendering in the [checkout editor](/docs/apps/checkout). Always `'checkout'`.\n */\n type: 'checkout';\n}" } }, "I18n": { "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18n", - "description": "", + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use the I18n API alongside the Localization API to build fully localized extensions.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -2901,7 +2901,7 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "I18nTranslate", - "description": "This returns a translated string matching a key in a locale file.", + "description": "Translates a key from your extension's locale files into a localized string. Supports interpolation with placeholder replacements and pluralization via the special `count` option.", "members": [], "value": "export interface I18nTranslate {\n (\n key: string,\n options?: Record,\n ): ReplacementType extends string | number\n ? string\n : (string | ReplacementType)[];\n}" } @@ -3132,7 +3132,7 @@ "syntaxKind": "PropertySignature", "name": "lineComponents", "value": "CartBundleLineComponent[]", - "description": "The individual components of a [bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles) line item. Each component represents a separate product within the bundle. Returns an empty array if the line item isn't a bundle." + "description": "The individual components of a [bundle](/docs/apps/build/product-merchandising/bundles) line item. Each component represents a separate product within the bundle. Returns an empty array if the line item isn't a bundle." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -3156,7 +3156,7 @@ "description": "The number of units of this merchandise that the buyer purchased." } ], - "value": "export interface CartLine {\n /**\n * A unique identifier for the cart line in the format `gid://shopify/CartLine/`. This ID isn't stable and can change after any cart operation, so avoid persisting it. Always look up the current ID before calling `applyCartLinesChange()`, because you'll need it to create a `CartLineChange` object.\n *\n * @example 'gid://shopify/CartLine/123'\n */\n id: string;\n\n /**\n * The product variant or other merchandise associated with this line item. Use this to access product details such as the title, image, SKU, and selected options.\n */\n merchandise: Merchandise;\n\n /**\n * The number of units of this merchandise that the buyer purchased.\n */\n quantity: number;\n\n /**\n * The cost breakdown for this line item, including the total price after any line-level discounts have been applied.\n */\n cost: CartLineCost;\n\n /**\n * Custom key-value attributes attached to this cart line, such as gift messages or engraving text. Use `applyCartLinesChange()` to update these values.\n */\n attributes: Attribute[];\n\n /**\n * Discounts applied to this cart line, including code-based, automatic, and custom discounts. Each allocation shows the discounted amount and how the discount was triggered.\n */\n discountAllocations: CartDiscountAllocation[];\n\n /**\n * The individual components of a [bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles) line item. Each component represents a separate product within the bundle. Returns an empty array if the line item isn't a bundle.\n */\n lineComponents: CartLineComponentType[];\n\n /**\n * The parent line item that this line belongs to, or `null` if this is a\n * top-level line item. Used to identify lines added as children of a bundle\n * or other grouped product.\n */\n parentRelationship: CartLineParentRelationship | null;\n}" + "value": "export interface CartLine {\n /**\n * A unique identifier for the cart line in the format `gid://shopify/CartLine/`. This ID isn't stable and can change after any cart operation, so avoid persisting it. Always look up the current ID before calling `applyCartLinesChange()`, because you'll need it to create a `CartLineChange` object.\n *\n * @example 'gid://shopify/CartLine/123'\n */\n id: string;\n\n /**\n * The product variant or other merchandise associated with this line item. Use this to access product details such as the title, image, SKU, and selected options.\n */\n merchandise: Merchandise;\n\n /**\n * The number of units of this merchandise that the buyer purchased.\n */\n quantity: number;\n\n /**\n * The cost breakdown for this line item, including the total price after any line-level discounts have been applied.\n */\n cost: CartLineCost;\n\n /**\n * Custom key-value attributes attached to this cart line, such as gift messages or engraving text. Use `applyCartLinesChange()` to update these values.\n */\n attributes: Attribute[];\n\n /**\n * Discounts applied to this cart line, including code-based, automatic, and custom discounts. Each allocation shows the discounted amount and how the discount was triggered.\n */\n discountAllocations: CartDiscountAllocation[];\n\n /**\n * The individual components of a [bundle](/docs/apps/build/product-merchandising/bundles) line item. Each component represents a separate product within the bundle. Returns an empty array if the line item isn't a bundle.\n */\n lineComponents: CartLineComponentType[];\n\n /**\n * The parent line item that this line belongs to, or `null` if this is a\n * top-level line item. Used to identify lines added as children of a bundle\n * or other grouped product.\n */\n parentRelationship: CartLineParentRelationship | null;\n}" } }, "CartLineCost": { @@ -3313,7 +3313,7 @@ "syntaxKind": "PropertySignature", "name": "sellingPlan", "value": "SellingPlan", - "description": "The [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) associated with this variant, such as a subscription or pre-order plan. The value is `undefined` if the item isn't being purchased through a selling plan.", + "description": "The [selling plan](/docs/apps/build/purchase-options/subscriptions) associated with this variant, such as a subscription or pre-order plan. The value is `undefined` if the item isn't being purchased through a selling plan.", "isOptional": true }, { @@ -3444,7 +3444,7 @@ "src/surfaces/checkout/api/shared.ts": { "filePath": "src/surfaces/checkout/api/shared.ts", "name": "SellingPlan", - "description": "A [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) represents a recurring or deferred purchasing option for a product, such as a subscription, pre-order, or try-before-you-buy plan. The merchant configures selling plans to define how and when the buyer is charged.", + "description": "A [selling plan](/docs/apps/build/purchase-options/subscriptions) represents a recurring or deferred purchasing option for a product, such as a subscription, pre-order, or try-before-you-buy plan. The merchant configures selling plans to define how and when the buyer is charged.", "members": [ { "filePath": "src/surfaces/checkout/api/shared.ts", @@ -3497,14 +3497,14 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Localization", - "description": "", + "description": "The buyer's language, country, currency, and timezone context. Use this to adapt your extension to the buyer's region and display localized content.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "country", "value": "SubscribableSignalLike", - "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown." + "description": "The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n\nDerived from the buyer's shipping address. Returns `undefined` until the buyer enters a shipping address." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -3532,18 +3532,18 @@ "syntaxKind": "PropertySignature", "name": "market", "value": "SubscribableSignalLike", - "description": "The [market](https://shopify.dev/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n\n> Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.", - "deprecationMessage": "Deprecated as of version `2025-04`" + "description": "The [market](/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. The market context updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.", + "deprecationMessage": "Merchants now manage which extensions load for each\nmarket, so extensions no longer need to check this value." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "timezone", "value": "SubscribableSignalLike", - "description": "The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time." + "description": "The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time." } ], - "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, derived from their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](https://shopify.dev/docs/apps/build/markets) context of the checkout, carried over from the cart context. Markets group countries and regions with shared pricing, languages, and domains. It updates when the buyer changes the country of their shipping address. The value is `undefined` if the market is unknown.\n *\n * > Caution: Deprecated as of version `2025-04`. Merchants now manage which extensions load for each market, so extensions no longer need to check this value.\n *\n * @deprecated Deprecated as of version `2025-04`\n */\n market: SubscribableSignalLike;\n}" + "value": "export interface Localization {\n /**\n * The currency that the buyer sees for money amounts in the checkout. Use this value to format prices and totals in the buyer's expected currency.\n */\n currency: SubscribableSignalLike;\n\n /**\n * The buyer's time zone, based on their browser or account settings. Use this value to format dates and times relative to the buyer's local time.\n */\n timezone: SubscribableSignalLike;\n\n /**\n * The language the buyer sees in the checkout. This reflects the language selected by the buyer or determined by their browser settings, and might differ from the languages your extension supports.\n */\n language: SubscribableSignalLike;\n\n /**\n * The best available language match for your extension based on the buyer's language. If the buyer's language is `'fr-CA'` but your extension supports only `'fr'`, this returns `'fr'`. If your extension doesn't support any variant of the buyer's language, this falls back to your extension's default locale (the `.default.json` translation file). Use this value to load the correct translation file for your extension.\n */\n extensionLanguage: SubscribableSignalLike;\n\n /**\n * The country context of the checkout, carried over from the cart. It updates when the buyer changes their shipping address country. Use this value to display region-specific content such as local support information or regional policies. The value is `undefined` if the buyer's country is unknown.\n *\n * Derived from the buyer's shipping address. Returns `undefined` until the\n * buyer enters a shipping address.\n */\n country: SubscribableSignalLike;\n\n /**\n * The [market](/docs/apps/build/markets) context of the checkout,\n * carried over from the cart context. Markets group countries and\n * regions with shared pricing, languages, and domains. The market\n * context updates when the buyer changes the country of their\n * shipping address. The value is `undefined` if the market is unknown.\n *\n * @deprecated Merchants now manage which extensions load for each\n * market, so extensions no longer need to check this value.\n */\n market: SubscribableSignalLike;\n}" } }, "Country": { @@ -3623,14 +3623,14 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Market", - "description": "A [Shopify Market](https://shopify.dev/docs/apps/build/markets) that represents a group of one or more regions for international selling.", + "description": "A [Shopify Market](/docs/apps/build/markets) that represents a group of one or more regions for international selling.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "PropertySignature", "name": "handle", "value": "string", - "description": "The human-readable, shop-scoped identifier for the market, such as `'us'` or `'eu'`. Merchants define these handles when configuring [Shopify Markets](https://shopify.dev/docs/apps/build/markets)." + "description": "The human-readable, shop-scoped identifier for the market, such as `'us'` or `'eu'`. Merchants define these handles when configuring [Shopify Markets](/docs/apps/build/markets)." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -3640,7 +3640,7 @@ "description": "A globally-unique identifier for the market in the format `gid://shopify/Market/`." } ], - "value": "export interface Market {\n /**\n * A globally-unique identifier for the market in the format `gid://shopify/Market/`.\n */\n id: string;\n\n /**\n * The human-readable, shop-scoped identifier for the market, such as `'us'` or `'eu'`. Merchants define these handles when configuring [Shopify Markets](https://shopify.dev/docs/apps/build/markets).\n */\n handle: string;\n}" + "value": "export interface Market {\n /**\n * A globally-unique identifier for the market in the format `gid://shopify/Market/`.\n */\n id: string;\n\n /**\n * The human-readable, shop-scoped identifier for the market, such as `'us'` or `'eu'`. Merchants define these handles when configuring [Shopify Markets](/docs/apps/build/markets).\n */\n handle: string;\n}" } }, "Timezone": { @@ -3766,7 +3766,7 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "SessionToken", - "description": "", + "description": "Authenticates requests between your extension and your app backend. Use session tokens to verify the identity of the buyer and the shop context when making server-side API calls. The token is a signed JWT that contains claims such as the customer ID, shop domain, and expiration.\n\nThe `sub` claim in the decoded token is present only when the buyer is logged in and the app has permission to read customer accounts. Absent for anonymous buyers.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -3800,7 +3800,7 @@ "syntaxKind": "PropertySignature", "name": "address1", "value": "string", - "description": "The first line of the street address, including the street number and name. The value is `undefined` if the buyer hasn't entered an address yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The first line of the street address, including the street number and name. The value is `undefined` if the buyer hasn't entered an address yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3820,7 +3820,7 @@ "syntaxKind": "PropertySignature", "name": "address2", "value": "string", - "description": "The second line of the buyer's address, such as apartment number, suite, or unit. The value is `undefined` if the buyer didn't provide a second address line.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The second line of the buyer's address, such as apartment number, suite, or unit. The value is `undefined` if the buyer didn't provide a second address line.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3840,7 +3840,7 @@ "syntaxKind": "PropertySignature", "name": "city", "value": "string", - "description": "The city, town, or village of the address. The value is `undefined` if the buyer hasn't entered a city yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The city, town, or village of the address. The value is `undefined` if the buyer hasn't entered a city yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3860,7 +3860,7 @@ "syntaxKind": "PropertySignature", "name": "company", "value": "string", - "description": "The buyer's company name. The value is `undefined` if the buyer didn't enter a company or the store doesn't collect company names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's company name. The value is `undefined` if the buyer didn't enter a company or the store doesn't collect company names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3880,7 +3880,7 @@ "syntaxKind": "PropertySignature", "name": "countryCode", "value": "CountryCode", - "description": "The two-letter country code in [ISO 3166 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if the buyer hasn't selected a country yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The two-letter country code in [ISO 3166 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if the buyer hasn't selected a country yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3900,7 +3900,7 @@ "syntaxKind": "PropertySignature", "name": "firstName", "value": "string", - "description": "The buyer's first name. Use this alongside `lastName` when you need to display or process name parts separately. The value is `undefined` if the buyer didn't provide a first name or the store doesn't collect split names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's first name. Use this alongside `lastName` when you need to display or process name parts separately. The value is `undefined` if the buyer didn't provide a first name or the store doesn't collect split names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3920,7 +3920,7 @@ "syntaxKind": "PropertySignature", "name": "lastName", "value": "string", - "description": "The buyer's last name. Use this alongside `firstName` when you need to display or process name parts separately. The value is `undefined` if the buyer didn't provide a last name or the store doesn't collect split names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's last name. Use this alongside `firstName` when you need to display or process name parts separately. The value is `undefined` if the buyer didn't provide a last name or the store doesn't collect split names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3940,7 +3940,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "The buyer's full name, typically a combination of first and last name. The value is `undefined` if the buyer didn't provide a name.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's full name, typically a combination of first and last name. The value is `undefined` if the buyer didn't provide a name.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3968,7 +3968,7 @@ "syntaxKind": "PropertySignature", "name": "phone", "value": "string", - "description": "The phone number associated with the address, typically in international format. The value is `undefined` if the buyer didn't provide a phone number or the store doesn't collect phone numbers.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The phone number associated with the address, typically in international format. The value is `undefined` if the buyer didn't provide a phone number or the store doesn't collect phone numbers.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -3988,7 +3988,7 @@ "syntaxKind": "PropertySignature", "name": "provinceCode", "value": "string", - "description": "The province, state, prefecture, or region code of the address. The format varies by country. The value is `undefined` if the buyer hasn't selected one yet or the country doesn't have provinces.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The province, state, prefecture, or region code of the address. The format varies by country. The value is `undefined` if the buyer hasn't selected one yet or the country doesn't have provinces.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -4008,7 +4008,7 @@ "syntaxKind": "PropertySignature", "name": "zip", "value": "string", - "description": "The postal code or ZIP code of the address, used for mail sorting and delivery routing. The value is `undefined` if the buyer hasn't entered one yet or the country doesn't use postal codes.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The postal code or ZIP code of the address, used for mail sorting and delivery routing. The value is `undefined` if the buyer hasn't entered one yet or the country doesn't use postal codes.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -4031,7 +4031,7 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Shop", - "description": "", + "description": "Metadata about the merchant's store, including its name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -4071,32 +4071,32 @@ "syntaxKind": "PropertySignature", "name": "storefrontUrl", "value": "string", - "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n\n> Caution: > As of version `2024-04` this value no longer has a trailing slash.", + "description": "The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.", "isOptional": true } ], - "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n *\n * > Caution:\n * > As of version `2024-04` this value no longer has a trailing slash.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" + "value": "export interface Shop {\n /**\n * A globally-unique identifier for the shop in the format `gid://shopify/Shop/`.\n *\n * @example 'gid://shopify/Shop/123'\n */\n id: string;\n /**\n * The display name of the shop as configured by the merchant in Shopify admin.\n */\n name: string;\n /**\n * The primary storefront URL for the shop, such as `'https://example.myshopify.com'`. Use this to build links back to the merchant's online store.\n */\n storefrontUrl?: string;\n /**\n * The shop's unique `.myshopify.com` subdomain, such as `'example.myshopify.com'`. This domain is permanent and doesn't change even if the merchant adds a custom domain.\n */\n myshopifyDomain: string;\n}" } }, "Storage": { "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "Storage", - "description": "A key-value storage object for the extension.\n\nStored data is available only to this specific extension and any of its instances.\n\nThe storage backend is implemented with `localStorage` and should persist across the buyer's checkout session. However, data persistence isn't guaranteed.", + "description": "Key-value storage for a specific extension. Use storage to save preferences or cached data that should survive page reloads without requiring a backend call. Stored data is only available to this specific extension. The storage backend is implemented with `localStorage` and data persistence isn't guaranteed.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "delete", "value": "(key: string) => Promise", - "description": "Delete stored data by key." + "description": "Deletes a previously stored value by key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "syntaxKind": "MethodSignature", "name": "read", "value": "(key: string) => Promise", - "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original primitive.\n\nReturns `null` if no stored data exists." + "description": "Read and return a stored value by key.\n\nThe stored data is deserialized from JSON and returned as its original type.\n\nReturns the stored value for the given key, or `null` when no value exists. Doesn't throw on a missing key." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -4106,7 +4106,7 @@ "description": "Write stored data for this key.\n\nThe data must be serializable to JSON." } ], - "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original primitive.\n *\n * Returns `null` if no stored data exists.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Delete stored data by key.\n */\n delete(key: string): Promise;\n}" + "value": "export interface Storage {\n /**\n * Read and return a stored value by key.\n *\n * The stored data is deserialized from JSON and returned as\n * its original type.\n *\n * Returns the stored value for the given key, or `null` when no value\n * exists. Doesn't throw on a missing key.\n */\n read(key: string): Promise;\n\n /**\n * Write stored data for this key.\n *\n * The data must be serializable to JSON.\n */\n write(key: string, data: any): Promise;\n\n /**\n * Deletes a previously stored value by key.\n */\n delete(key: string): Promise;\n}" } }, "Version": { @@ -4130,49 +4130,49 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -4185,7 +4185,7 @@ "isPrivate": true } ], - "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n *\n * > Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" + "value": "export interface CheckoutApi {\n /**\n * Updates or removes an attribute on the cart and checkout. On success, the\n * [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyAttributeChange(change: AttributeChange): Promise;\n\n /**\n * Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n *\n * Accepts a single change per call. To make multiple changes, call this\n * method separately for each one.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyCartLinesChange(change: CartLineChange): Promise;\n\n /**\n * Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyDiscountCodeChange(\n change: DiscountCodeChange,\n ): Promise;\n\n /**\n * Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n *\n * Unlike other write operations, gift card changes aren't gated by a cart\n * instruction flag.\n *\n * > Caution:\n * > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n *\n * > Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyGiftCardChange(change: GiftCardChange): Promise;\n\n /**\n * Creates, updates, or removes a metafield on the checkout. On success, the\n * [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyMetafieldChange(change: MetafieldChange): Promise;\n\n /**\n * Sets or removes the buyer's note on the checkout. On success, the\n * [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note)\n * property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n */\n applyNoteChange(change: NoteChange): Promise;\n\n /**\n * @private\n */\n experimentalIsShopAppStyle?: boolean;\n\n /**\n * Updates the buyer's shipping address on the checkout. The provided fields\n * are merged into the existing address without prompting the buyer. On success,\n * the `shippingAddress` property updates to reflect the change.\n *\n * > Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n applyShippingAddressChange?(\n change: ShippingAddressChange,\n ): Promise;\n}" } }, "AttributeChange": { @@ -4364,7 +4364,7 @@ "syntaxKind": "PropertySignature", "name": "sellingPlanId", "value": "string", - "description": "The identifier of the [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) to associate with this line item, such as a subscription or pre-order plan.", + "description": "The identifier of the [selling plan](/docs/apps/build/purchase-options/subscriptions) to associate with this line item, such as a subscription or pre-order plan.", "isOptional": true }, { @@ -4375,7 +4375,7 @@ "description": "Identifies this as a line item addition. Set this when creating a change to add a new product to the cart." } ], - "value": "export interface CartLineAddChange {\n /**\n * Identifies this as a line item addition. Set this when creating a change to add a new product to the cart.\n */\n type: 'addCartLine';\n\n /**\n * The globally-unique identifier of the product variant to add.\n * @example 'gid://shopify/ProductVariant/123'\n */\n merchandiseId: string;\n\n /**\n * The number of items to add. Must be a positive integer.\n */\n quantity: number;\n\n /**\n * Custom key-value attributes to attach to the new line item.\n */\n attributes?: Attribute[];\n\n /**\n * The identifier of the [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) to associate with this line item, such as a subscription or pre-order plan.\n */\n sellingPlanId?: SellingPlan['id'];\n\n /**\n * The parent cart line to associate the new item with, identified by either `lineId` or `merchandiseId`. Use this when adding child items to a bundle.\n */\n parent?: {lineId: string} | {merchandiseId: string};\n}" + "value": "export interface CartLineAddChange {\n /**\n * Identifies this as a line item addition. Set this when creating a change to add a new product to the cart.\n */\n type: 'addCartLine';\n\n /**\n * The globally-unique identifier of the product variant to add.\n * @example 'gid://shopify/ProductVariant/123'\n */\n merchandiseId: string;\n\n /**\n * The number of items to add. Must be a positive integer.\n */\n quantity: number;\n\n /**\n * Custom key-value attributes to attach to the new line item.\n */\n attributes?: Attribute[];\n\n /**\n * The identifier of the [selling plan](/docs/apps/build/purchase-options/subscriptions) to associate with this line item, such as a subscription or pre-order plan.\n */\n sellingPlanId?: SellingPlan['id'];\n\n /**\n * The parent cart line to associate the new item with, identified by either `lineId` or `merchandiseId`. Use this when adding child items to a bundle.\n */\n parent?: {lineId: string} | {merchandiseId: string};\n}" } }, "CartLineRemoveChange": { @@ -4495,7 +4495,7 @@ "syntaxKind": "PropertySignature", "name": "sellingPlanId", "value": "SellingPlan['id'] | null", - "description": "The [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) to associate with this line item. Pass `null` to remove the item from its current selling plan.", + "description": "The [selling plan](/docs/apps/build/purchase-options/subscriptions) to associate with this line item. Pass `null` to remove the item from its current selling plan.", "isOptional": true }, { @@ -4506,7 +4506,7 @@ "description": "Identifies this as a line item update. Set this when creating a change to modify a line item's quantity, variant, or attributes." } ], - "value": "export interface CartLineUpdateChange {\n /**\n * Identifies this as a line item update. Set this when creating a change to modify a line item's quantity, variant, or attributes.\n */\n type: 'updateCartLine';\n\n /**\n * The unique identifier of the cart line to update. Look up the current ID from `lines` before calling, because cart line IDs aren't stable.\n * @example 'gid://shopify/CartLine/123'\n */\n id: string;\n\n /**\n * The new product variant to swap in for this line item. Only provide this if you want to change the variant.\n * @example 'gid://shopify/ProductVariant/123'\n */\n\n merchandiseId?: string;\n /**\n * The new quantity for this line item. Only provide this if you want to change the quantity.\n */\n quantity?: number;\n\n /**\n * The new custom key-value attributes for this line item. Replaces all existing attributes when provided.\n */\n attributes?: Attribute[];\n\n /**\n * The [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) to associate with this line item. Pass `null` to remove the item from its current selling plan.\n */\n sellingPlanId?: SellingPlan['id'] | null;\n\n /**\n * The parent cart line to associate this item with. Use this when updating the parent relationship for bundled items.\n */\n parent?: {lineId: string} | {merchandiseId: string};\n}" + "value": "export interface CartLineUpdateChange {\n /**\n * Identifies this as a line item update. Set this when creating a change to modify a line item's quantity, variant, or attributes.\n */\n type: 'updateCartLine';\n\n /**\n * The unique identifier of the cart line to update. Look up the current ID from `lines` before calling, because cart line IDs aren't stable.\n * @example 'gid://shopify/CartLine/123'\n */\n id: string;\n\n /**\n * The new product variant to swap in for this line item. Only provide this if you want to change the variant.\n * @example 'gid://shopify/ProductVariant/123'\n */\n\n merchandiseId?: string;\n /**\n * The new quantity for this line item. Only provide this if you want to change the quantity.\n */\n quantity?: number;\n\n /**\n * The new custom key-value attributes for this line item. Replaces all existing attributes when provided.\n */\n attributes?: Attribute[];\n\n /**\n * The [selling plan](/docs/apps/build/purchase-options/subscriptions) to associate with this line item. Pass `null` to remove the item from its current selling plan.\n */\n sellingPlanId?: SellingPlan['id'] | null;\n\n /**\n * The parent cart line to associate this item with. Use this when updating the parent relationship for bundled items.\n */\n parent?: {lineId: string} | {merchandiseId: string};\n}" } }, "CartLineChangeResult": { @@ -4546,7 +4546,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -4556,7 +4556,7 @@ "description": "Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error." } ], - "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface CartLineChangeResultError {\n /**\n * Indicates that the line item wasn't changed successfully. Refer to the `message` property for details about the error.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } }, "DiscountCodeChange": { @@ -4760,7 +4760,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -4770,7 +4770,7 @@ "description": "Indicates that the gift card change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface GiftCardChangeResultError {\n /**\n * Indicates that the gift card change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } }, "MetafieldChange": { @@ -4779,7 +4779,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "MetafieldChange", "value": "MetafieldRemoveChange | MetafieldUpdateChange | MetafieldRemoveCartChange | MetafieldUpdateCartChange", - "description": "The input for `applyMetafieldChange()`. Use the `type` property to specify the operation.\n\n- `MetafieldRemoveCartChange` (`type: 'removeCartMetafield'`): Removes an existing cart [metafield](https://shopify.dev/docs/apps/build/custom-data/metafields).\n- `MetafieldUpdateCartChange` (`type: 'updateCartMetafield'`): Creates or updates a cart metafield.\n- `MetafieldRemoveChange` (`type: 'removeMetafield'`) - Removes an existing metafield.\n- `MetafieldUpdateChange` (`type: 'updateMetafield'`) - Creates or updates a metafield." + "description": "The input for `applyMetafieldChange()`. Use the `type` property to specify the operation.\n\n- `MetafieldRemoveCartChange` (`type: 'removeCartMetafield'`): Removes an existing cart [metafield](/docs/apps/build/custom-data/metafields).\n- `MetafieldUpdateCartChange` (`type: 'updateCartMetafield'`): Creates or updates a cart metafield.\n- `MetafieldRemoveChange` (`type: 'removeMetafield'`) - Removes an existing metafield.\n- `MetafieldUpdateChange` (`type: 'updateMetafield'`) - Creates or updates a metafield." } }, "MetafieldRemoveChange": { @@ -4862,7 +4862,7 @@ "src/surfaces/checkout/api/checkout/checkout.ts": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "name": "MetafieldRemoveCartChange", - "description": "Removes a cart [metafield](https://shopify.dev/docs/apps/build/custom-data/metafields). Pass this to `applyMetafieldChange()` to delete a metafield by key and namespace.", + "description": "Removes a cart [metafield](/docs/apps/build/custom-data/metafields). Pass this to `applyMetafieldChange()` to delete a metafield by key and namespace.", "members": [ { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -4894,7 +4894,7 @@ "src/surfaces/checkout/api/standard/standard.ts": { "filePath": "src/surfaces/checkout/api/standard/standard.ts", "name": "CartMetafield", - "description": "Represents a custom metadata attached to the cart. Unlike `AppMetafield`, cart metafield values are always strings and don't include a `valueType` discriminator.\n\nCart [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields) are set by extensions using `applyMetafieldChange()` and can be copied to order metafields at order creation time.", + "description": "Represents a custom metadata attached to the cart. Unlike `AppMetafield`, cart metafield values are always strings and don't include a `valueType` discriminator.\n\nCart [metafields](/docs/apps/build/custom-data/metafields) are set by extensions using `applyMetafieldChange()` and can be copied to order metafields at order creation time.", "members": [ { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -4915,7 +4915,7 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "string", - "description": "The metafield's [type name](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-data-types), such as `'single_line_text_field'` or `'json'`." + "description": "The metafield's [type name](/docs/apps/build/custom-data/metafields/list-of-data-types), such as `'single_line_text_field'` or `'json'`." }, { "filePath": "src/surfaces/checkout/api/standard/standard.ts", @@ -4925,14 +4925,14 @@ "description": "The string value stored in the cart metafield. Unlike `AppMetafield`, cart metafield values are always strings." } ], - "value": "export interface CartMetafield {\n /**\n * The key name of a metafield, such as `'delivery_instructions'` or `'gift_message'`. Together with `namespace`, this uniquely identifies the metafield on the cart.\n */\n key: string;\n\n /**\n * The namespace for a metafield, such as `'custom'` or `'my_app'`. Together with `key`, this uniquely identifies the metafield on the cart.\n */\n namespace: string;\n\n /**\n * The string value stored in the cart metafield. Unlike `AppMetafield`, cart metafield values are always strings.\n */\n value: string;\n\n /**\n * The metafield's [type name](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-data-types), such as `'single_line_text_field'` or `'json'`.\n */\n type: string;\n}" + "value": "export interface CartMetafield {\n /**\n * The key name of a metafield, such as `'delivery_instructions'` or `'gift_message'`. Together with `namespace`, this uniquely identifies the metafield on the cart.\n */\n key: string;\n\n /**\n * The namespace for a metafield, such as `'custom'` or `'my_app'`. Together with `key`, this uniquely identifies the metafield on the cart.\n */\n namespace: string;\n\n /**\n * The string value stored in the cart metafield. Unlike `AppMetafield`, cart metafield values are always strings.\n */\n value: string;\n\n /**\n * The metafield's [type name](/docs/apps/build/custom-data/metafields/list-of-data-types), such as `'single_line_text_field'` or `'json'`.\n */\n type: string;\n}" } }, "MetafieldUpdateCartChange": { "src/surfaces/checkout/api/checkout/checkout.ts": { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", "name": "MetafieldUpdateCartChange", - "description": "Creates or updates a cart [metafield](https://shopify.dev/docs/apps/build/custom-data/metafields). Pass this to `applyMetafieldChange()` to set a metafield value. If a metafield with the provided key and namespace doesn't already exist, then it gets created.", + "description": "Creates or updates a cart [metafield](/docs/apps/build/custom-data/metafields). Pass this to `applyMetafieldChange()` to set a metafield value. If a metafield with the provided key and namespace doesn't already exist, then it gets created.", "members": [ { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -4949,7 +4949,7 @@ "description": "Identifies this as a cart metafield creation or update. Set this when creating a change to set a metafield value." } ], - "value": "export interface MetafieldUpdateCartChange {\n /**\n * Identifies this as a cart metafield creation or update. Set this when creating a change to set a metafield value.\n */\n type: 'updateCartMetafield';\n\n /**\n * The metafield data to set on the cart. If a metafield with this key and namespace already exists, then its value is replaced.\n */\n metafield: {\n /** The name of the metafield to update. */\n key: string;\n\n /** The namespace of the metafield to update. */\n namespace?: string;\n\n /** The new information to store in the metafield. */\n value: string;\n\n /**\n * The metafield's information type.\n * See the [metafield types documentation](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-data-types) for a list of supported types.\n */\n type: string;\n };\n}" + "value": "export interface MetafieldUpdateCartChange {\n /**\n * Identifies this as a cart metafield creation or update. Set this when creating a change to set a metafield value.\n */\n type: 'updateCartMetafield';\n\n /**\n * The metafield data to set on the cart. If a metafield with this key and namespace already exists, then its value is replaced.\n */\n metafield: {\n /** The name of the metafield to update. */\n key: string;\n\n /** The namespace of the metafield to update. */\n namespace?: string;\n\n /** The new information to store in the metafield. */\n value: string;\n\n /**\n * The metafield's information type.\n * See the [metafield types documentation](/docs/apps/build/custom-data/metafields/list-of-data-types) for a list of supported types.\n */\n type: string;\n };\n}" } }, "MetafieldChangeResult": { @@ -4989,7 +4989,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -4999,7 +4999,7 @@ "description": "Indicates that the metafield change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface MetafieldChangeResultError {\n /**\n * Indicates that the metafield change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } }, "NoteChange": { @@ -5089,7 +5089,7 @@ "syntaxKind": "PropertySignature", "name": "message", "value": "string", - "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer." + "description": "A message that explains the error. This message is useful for debugging. It isn't localized and shouldn't be displayed to the buyer.\n\nRender your own localized error text rather than displaying this message to the buyer." }, { "filePath": "src/surfaces/checkout/api/checkout/checkout.ts", @@ -5099,7 +5099,7 @@ "description": "Indicates that the note change couldn't be applied. Check the `message` property for details." } ], - "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n */\n message: string;\n}" + "value": "export interface NoteChangeResultError {\n /**\n * Indicates that the note change couldn't be applied. Check the `message` property for details.\n */\n type: 'error';\n\n /**\n * A message that explains the error. This message is useful for debugging.\n * It isn't localized and shouldn't be displayed to the buyer.\n *\n * Render your own localized error text rather than displaying this message\n * to the buyer.\n */\n message: string;\n}" } }, "ShippingAddressUpdateChange": { @@ -5336,7 +5336,7 @@ "syntaxKind": "PropertySignature", "name": "number", "value": "string", - "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.", + "description": "A randomly generated alpha-numeric identifier for the order, distinct from `order.id`. The value is `undefined` for orders that were created before this field was introduced. All recent orders have a number.\n\nOptional. Might not be present for orders created before 2024.", "isOptional": true }, { @@ -5347,7 +5347,7 @@ "description": "" } ], - "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" + "value": "export interface OrderConfirmation {\n order: {\n /**\n * A globally unique identifier for the order. This becomes the\n * [`Order`](/docs/api/admin-graphql/latest/objects/Order) object ID in the\n * GraphQL Admin API after the order is created.\n *\n * @example 'gid://shopify/Order/123'\n */\n id: string;\n };\n /**\n * A randomly generated alpha-numeric identifier for the order, distinct\n * from `order.id`. The value is `undefined` for orders that were created\n * before this field was introduced. All recent orders have a number.\n *\n * Optional. Might not be present for orders created before 2024.\n */\n number?: string;\n\n /**\n * Whether this is the customer's first completed order with this shop. `true` means the buyer hasn't placed an order here before. Use this to show first-purchase messaging or trigger welcome offers.\n */\n isFirstOrder: boolean;\n}" } }, "CartLineItemApi": { @@ -5362,10 +5362,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." + "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." } ], - "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" + "value": "export interface CartLineItemApi {\n /**\n * The cart line that this extension is attached to. Use this to read the\n * line item's merchandise, quantity, cost, and attributes.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n *\n * > Note: Until version `2023-04`, this property was a `ReadonlySignalLike`.\n */\n target: SubscribableSignalLike;\n}" } }, "PickupLocationListApi": { @@ -5398,10 +5398,10 @@ "syntaxKind": "PropertySignature", "name": "isLocationFormVisible", "value": "SubscribableSignalLike", - "description": "Whether the location search form is currently visible to the buyer. Use this to conditionally render UI that depends on the buyer actively searching for pickup points." + "description": "Reflects which view was active when the extension loaded. When the buyer moves to the next view, the extension restarts with the current value rather than updating in place." } ], - "value": "export interface PickupPointListApi {\n /**\n * Whether the location search form is currently visible to the buyer.\n * Use this to conditionally render UI that depends on the buyer actively\n * searching for pickup points.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" + "value": "export interface PickupPointListApi {\n /**\n * Reflects which view was active when the extension loaded. When the\n * buyer moves to the next view, the extension restarts with the\n * current value rather than updating in place.\n */\n isLocationFormVisible: SubscribableSignalLike;\n}" } }, "PickupLocationItemApi": { @@ -5416,17 +5416,17 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location." + "description": "Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/pickup/pickup-location-item.ts", "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details." + "description": "The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n */\n isTargetSelected: SubscribableSignalLike;\n}" + "value": "export interface PickupLocationItemApi {\n /**\n * The pickup location that this extension is attached to. Use this to read the location's name, address, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target pickup location. When `true`, the target location is the buyer's active choice. When `false`, the buyer has chosen a different pickup location.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n}" } }, "ShippingOptionItemApi": { @@ -5441,7 +5441,7 @@ "syntaxKind": "PropertySignature", "name": "isTargetSelected", "value": "SubscribableSignalLike", - "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option." + "description": "Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." }, { "filePath": "src/surfaces/checkout/api/shipping/shipping-option-item.ts", @@ -5455,10 +5455,10 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details." + "description": "The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties." } ], - "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" + "value": "export interface ShippingOptionItemApi {\n /**\n * The shipping option that this extension is attached to. Use this to read the option's cost, carrier, delivery estimate, and other details.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n target: SubscribableSignalLike;\n\n /**\n * Whether the buyer has selected the target shipping option. When `true`, the target option is the buyer's active choice. When `false`, the buyer has chosen a different shipping option.\n *\n * Available only on the corresponding item target. Shipping option item\n * targets expose shipping option properties; pickup location item targets\n * expose pickup location properties.\n */\n isTargetSelected: SubscribableSignalLike;\n\n /**\n * The render mode of this shipping option, indicating how the extension is displayed in the checkout UI.\n */\n renderMode: ShippingOptionItemRenderMode;\n}" } }, "ShippingOptionItemRenderMode": { @@ -5573,10 +5573,10 @@ "syntaxKind": "PropertySignature", "name": "groupType", "value": "DeliveryGroupType", - "description": "The type of delivery groups in this list. This is the same `DeliveryGroupType` used on `DeliveryGroup.groupType`.\n\n- `'oneTimePurchase'`: Items bought as a single, non-recurring purchase.\n- `'subscription'`: Items bought through a [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) that results in recurring deliveries." + "description": "The type of delivery groups in this list. This is the same `DeliveryGroupType` used on `DeliveryGroup.groupType`.\n\n- `'oneTimePurchase'`: Items bought as a single, non-recurring purchase.\n- `'subscription'`: Items bought through a [selling plan](/docs/apps/build/purchase-options/subscriptions) that results in recurring deliveries." } ], - "value": "export interface DeliveryGroupList {\n /**\n * The type of delivery groups in this list. This is the same `DeliveryGroupType` used on `DeliveryGroup.groupType`.\n *\n * - `'oneTimePurchase'`: Items bought as a single, non-recurring purchase.\n * - `'subscription'`: Items bought through a [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) that results in recurring deliveries.\n */\n groupType: DeliveryGroupType;\n /**\n * The delivery groups in this list. Each group contains cart lines and available delivery options for those items.\n */\n deliveryGroups: DeliveryGroup[];\n}" + "value": "export interface DeliveryGroupList {\n /**\n * The type of delivery groups in this list. This is the same `DeliveryGroupType` used on `DeliveryGroup.groupType`.\n *\n * - `'oneTimePurchase'`: Items bought as a single, non-recurring purchase.\n * - `'subscription'`: Items bought through a [selling plan](/docs/apps/build/purchase-options/subscriptions) that results in recurring deliveries.\n */\n groupType: DeliveryGroupType;\n /**\n * The delivery groups in this list. Each group contains cart lines and available delivery options for those items.\n */\n deliveryGroups: DeliveryGroup[];\n}" } }, "AddressAutocompleteFormatSuggestionApi": { @@ -5702,7 +5702,7 @@ "syntaxKind": "PropertySignature", "name": "address1", "value": "string", - "description": "The first line of the street address, including the street number and name. The value is `undefined` if the buyer hasn't entered an address yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The first line of the street address, including the street number and name. The value is `undefined` if the buyer hasn't entered an address yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -5722,7 +5722,7 @@ "syntaxKind": "PropertySignature", "name": "address2", "value": "string", - "description": "The second line of the buyer's address, such as apartment number, suite, or unit. The value is `undefined` if the buyer didn't provide a second address line.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The second line of the buyer's address, such as apartment number, suite, or unit. The value is `undefined` if the buyer didn't provide a second address line.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -5742,7 +5742,7 @@ "syntaxKind": "PropertySignature", "name": "city", "value": "string", - "description": "The city, town, or village of the address. The value is `undefined` if the buyer hasn't entered a city yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The city, town, or village of the address. The value is `undefined` if the buyer hasn't entered a city yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -5762,7 +5762,7 @@ "syntaxKind": "PropertySignature", "name": "company", "value": "string", - "description": "The buyer's company name. The value is `undefined` if the buyer didn't enter a company or the store doesn't collect company names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The buyer's company name. The value is `undefined` if the buyer didn't enter a company or the store doesn't collect company names.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -5782,7 +5782,7 @@ "syntaxKind": "PropertySignature", "name": "countryCode", "value": "CountryCode", - "description": "The two-letter country code in [ISO 3166 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if the buyer hasn't selected a country yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The two-letter country code in [ISO 3166 Alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format. The value is `undefined` if the buyer hasn't selected a country yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -5842,7 +5842,7 @@ "syntaxKind": "PropertySignature", "name": "provinceCode", "value": "string", - "description": "The province, state, prefecture, or region code of the address. The format varies by country. The value is `undefined` if the buyer hasn't selected one yet or the country doesn't have provinces.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The province, state, prefecture, or region code of the address. The format varies by country. The value is `undefined` if the buyer hasn't selected one yet or the country doesn't have provinces.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -5862,7 +5862,7 @@ "syntaxKind": "PropertySignature", "name": "zip", "value": "string", - "description": "The postal code or ZIP code of the address, used for mail sorting and delivery routing. The value is `undefined` if the buyer hasn't entered one yet or the country doesn't use postal codes.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The postal code or ZIP code of the address, used for mail sorting and delivery routing. The value is `undefined` if the buyer hasn't entered one yet or the country doesn't use postal codes.\n\n{% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true, "examples": [ { @@ -5942,14 +5942,14 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](https://shopify.dev/docs/apps/marketing), such as emitting an event." + "description": "The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", "syntaxKind": "PropertySignature", "name": "appMetafields", "value": "AppMetafieldEntry[]", - "description": "The metafields requested in the [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/configuration) file. These metafields are updated when there's a change in the merchandise items being purchased by the customer.\n\nApp owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` is not supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n\n> Tip: > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.*" + "description": "The metafields requested in the [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration) file. These metafields are updated when there's a change in the merchandise items being purchased by the customer.\n\nApp owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` is not supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n\n> Tip: > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.*" }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", @@ -5971,7 +5971,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "CheckoutToken | undefined", - "description": "A stable ID that represents the current checkout.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](https://shopify.dev/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object)." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", @@ -5985,42 +5985,42 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](https://shopify.dev/docs/api/checkout-ui-extensions/apis/localization) Type 'RunnableExtensionInstance' is not assignable to type 'ExtensionInstance'.\n\nRefer to [`localization` examples](https://shopify.dev/docs/api/checkout-ui-extensions/apis/localization#examples) for more information." + "description": "Utilities for translating content and formatting values according to the current [`localization`](/docs/api/checkout-ui-extensions/apis/localization) Type 'RunnableExtensionInstance' is not assignable to type 'ExtensionInstance'.\n\nRefer to [`localization` examples](/docs/api/checkout-ui-extensions/apis/localization#examples) for more information." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](https://shopify.dev/docs/api/checkout-ui-extensions/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#properties-propertydetail-i18n) object instead." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", "syntaxKind": "PropertySignature", "name": "metafields", "value": "Metafield[]", - "description": "The metafields that apply to the current checkout.\n\nMetafields are stored locally on the client and are applied to the order object after the checkout completes. They are shared by all extensions running on checkout, and persist for as long as the customer is working on this checkout.\n\nOnce the order is created, you can query these metafields using the [GraphQL Admin API](https://shopify.dev/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)" + "description": "The metafields that apply to the current checkout.\n\nMetafields are stored locally on the client and are applied to the order object after the checkout completes. They are shared by all extensions running on checkout, and persist for as long as the customer is working on this checkout.\n\nOnce the order is created, you can query these metafields using the [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)" }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](https://shopify.dev/docs/api/checkout-ui-extensions/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](/docs/api/checkout-ui-extensions/apis/storefront-api) for more information." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of 5 minutes.\n\nIf the previous token expires, this value will reflect a new session token with a new signature and expiry.\n\nRefer to [session token examples](https://shopify.dev/docs/api/checkout-ui-extensions/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of 5 minutes.\n\nIf the previous token expires, this value will reflect a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", "syntaxKind": "PropertySignature", "name": "settings", "value": "ExtensionSettings", - "description": "The settings matching the settings definition written in the [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/configuration) file.\n\n Refer to [settings examples](https://shopify.dev/docs/api/checkout-ui-extensions/apis/settings#examples) for more information.\n\n> Note: The settings are empty when an extension is being installed in the [checkout editor](https://help.shopify.com/en/manual/checkout-settings/checkout-extensibility/checkout-editor)." + "description": "The settings matching the settings definition written in the [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration) file.\n\n Refer to [settings examples](/docs/api/checkout-ui-extensions/apis/settings#examples) for more information.\n\n> Note: The settings are empty when an extension is being installed in the [checkout editor](https://help.shopify.com/en/manual/checkout-settings/checkout-extensibility/checkout-editor)." }, { "filePath": "src/surfaces/checkout/api/address-autocomplete/standard.ts", @@ -6064,7 +6064,7 @@ ] } ], - "value": "export interface AddressAutocompleteStandardApi<\n Target extends\n | 'purchase.address-autocomplete.suggest'\n | 'purchase.address-autocomplete.format-suggestion',\n> {\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` is not supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.*\n */\n appMetafields: AppMetafieldEntry[];\n\n /**\n * The methods for interacting with [Web Pixels](https://shopify.dev/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The custom attributes left by the customer to the merchant, either in their cart or during checkout.\n */\n attributes: Attribute[] | undefined;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: MailingAddress | undefined;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](https://shopify.dev/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: CheckoutToken | undefined;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](https://shopify.dev/docs/api/checkout-ui-extensions/apis/localization)\n * Type 'RunnableExtensionInstance' is not assignable to type 'ExtensionInstance'.\n *\n * Refer to [`localization` examples](https://shopify.dev/docs/api/checkout-ui-extensions/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](https://shopify.dev/docs/api/checkout-ui-extensions/apis/localization#standardapi-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n * They are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](https://shopify.dev/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n */\n metafields: Metafield[];\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](https://shopify.dev/docs/api/checkout-ui-extensions/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of 5 minutes.\n *\n * If the previous token expires, this value will reflect a new session token with a new signature and expiry.\n *\n * Refer to [session token examples](https://shopify.dev/docs/api/checkout-ui-extensions/apis/session-token) for more information.\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/configuration) file.\n *\n * Refer to [settings examples](https://shopify.dev/docs/api/checkout-ui-extensions/apis/settings#examples) for more information.\n *\n * > Note: The settings are empty when an extension is being installed in the [checkout editor](https://help.shopify.com/en/manual/checkout-settings/checkout-extensibility/checkout-editor).\n\n */\n settings: ExtensionSettings;\n\n /**\n * The proposed customer shipping address. During the information step,\n * the address updates when the field is committed (on change) rather than every keystroke.\n *\n * > Note: An address value is only present if delivery is required. Otherwise, the subscribable value is undefined.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: MailingAddress | undefined;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The runner version being used for the extension.\n *\n * @example 'unstable'\n */\n version: Version;\n}" + "value": "export interface AddressAutocompleteStandardApi<\n Target extends\n | 'purchase.address-autocomplete.suggest'\n | 'purchase.address-autocomplete.format-suggestion',\n> {\n /**\n * The metafields requested in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration)\n * file. These metafields are updated when there's a change in the merchandise items\n * being purchased by the customer.\n *\n * App owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` is not supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n *\n * > Tip:\n * > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later.*\n */\n appMetafields: AppMetafieldEntry[];\n\n /**\n * The methods for interacting with [Web Pixels](/docs/apps/marketing), such as emitting an event.\n */\n analytics: Analytics;\n\n /**\n * The custom attributes left by the customer to the merchant, either in their cart or during checkout.\n */\n attributes: Attribute[] | undefined;\n\n /**\n * The proposed customer billing address. The address updates when the field is\n * committed (on change) rather than every keystroke.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n billingAddress?: MailingAddress | undefined;\n\n /**\n * A stable ID that represents the current checkout.\n *\n * This matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data)\n * and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n */\n checkoutToken: CheckoutToken | undefined;\n\n /**\n * The meta information about the extension.\n */\n extension: Extension;\n\n /**\n * Utilities for translating content and formatting values according to the current\n * [`localization`](/docs/api/checkout-ui-extensions/apis/localization)\n * Type 'RunnableExtensionInstance' is not assignable to type 'ExtensionInstance'.\n *\n * Refer to [`localization` examples](/docs/api/checkout-ui-extensions/apis/localization#examples)\n * for more information.\n */\n i18n: I18n;\n\n /**\n * The details about the location, language, and currency of the customer. For utilities to easily\n * format and translate content based on these details, you can use the\n * [`i18n`](/docs/api/checkout-ui-extensions/apis/localization#properties-propertydetail-i18n)\n * object instead.\n */\n localization: Localization;\n\n /**\n * The metafields that apply to the current checkout.\n *\n * Metafields are stored locally on the client and are applied to the order object after the checkout completes.\n * They are shared by all extensions running on checkout, and\n * persist for as long as the customer is working on this checkout.\n *\n * Once the order is created, you can query these metafields using the\n * [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n */\n metafields: Metafield[];\n\n /**\n * The method used to query the Storefront GraphQL API with a prefetched token.\n *\n * Refer to [Storefront API access examples](/docs/api/checkout-ui-extensions/apis/storefront-api) for more information.\n */\n query: >(\n query: string,\n options?: {variables?: Variables; version?: StorefrontApiVersion},\n ) => Promise<{data?: Data; errors?: GraphQLError[]}>;\n\n /**\n * The session token providing a set of claims as a signed JSON Web Token (JWT).\n *\n * The token has a TTL of 5 minutes.\n *\n * If the previous token expires, this value will reflect a new session token with a new signature and expiry.\n *\n * Learn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens).\n */\n sessionToken: SessionToken;\n\n /**\n * The settings matching the settings definition written in the\n * [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/configuration) file.\n *\n * Refer to [settings examples](/docs/api/checkout-ui-extensions/apis/settings#examples) for more information.\n *\n * > Note: The settings are empty when an extension is being installed in the [checkout editor](https://help.shopify.com/en/manual/checkout-settings/checkout-extensibility/checkout-editor).\n\n */\n settings: ExtensionSettings;\n\n /**\n * The proposed customer shipping address. During the information step,\n * the address updates when the field is committed (on change) rather than every keystroke.\n *\n * > Note: An address value is only present if delivery is required. Otherwise, the subscribable value is undefined.\n *\n * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).\n */\n shippingAddress?: MailingAddress | undefined;\n\n /** The shop where the checkout is taking place. */\n shop: Shop;\n\n /**\n * The key-value storage for the extension.\n *\n * It uses `localStorage` and should persist across the customer's current checkout session.\n *\n * > Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n *\n * Data is shared across all activated extension targets of this extension. In versions 2023-07 and earlier,\n * each activated extension target had its own storage.\n */\n storage: Storage;\n\n /**\n * The runner version being used for the extension.\n *\n * @example 'unstable'\n */\n version: Version;\n}" } }, "DocsStyle": { @@ -6336,7 +6336,7 @@ "syntaxKind": "PropertySignature", "name": "Checkout::Dynamic::Render", "value": "RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Dynamic::Render'>,\n AnyCheckoutComponent\n >", - "description": "A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).", + "description": "A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).", "deprecationMessage": "Use `purchase.checkout.block.render` instead.", "isPrivate": true }, @@ -6498,7 +6498,7 @@ "syntaxKind": "PropertySignature", "name": "Checkout::ThankYou::Dynamic::Render", "value": "RenderExtension<\n OrderConfirmationApi & StandardApi<'Checkout::ThankYou::Dynamic::Render'>,\n AnyCheckoutComponent\n >", - "description": "A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).", + "description": "A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).", "deprecationMessage": "Use `purchase.thank-you.block.render` instead.", "isPrivate": true }, @@ -6536,7 +6536,7 @@ "syntaxKind": "PropertySignature", "name": "purchase.checkout.block.render", "value": "RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.block.render'>,\n AnyCheckoutComponent\n >", - "description": "A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets)." + "description": "A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets)." }, { "filePath": "src/surfaces/checkout/extension-targets.ts", @@ -6729,7 +6729,7 @@ "syntaxKind": "PropertySignature", "name": "purchase.thank-you.block.render", "value": "RenderExtension<\n OrderConfirmationApi & StandardApi<'purchase.thank-you.block.render'>,\n AnyCheckoutComponent\n >", - "description": "A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets)." + "description": "A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets)." }, { "filePath": "src/surfaces/checkout/extension-targets.ts", @@ -7131,10 +7131,10 @@ "syntaxKind": "PropertySignature", "name": "suggestions", "value": "AddressAutocompleteSuggestion[]", - "description": "An array of address autocomplete suggestions to show to the buyer.\n\n> Note: Only the first five suggestions will be displayed to the buyer." + "description": "An array of address autocomplete suggestions to show to the buyer. Checkout displays up to five address suggestions. Return no more than five. Additional suggestions are ignored." } ], - "value": "export interface AddressAutocompleteSuggestOutput {\n /**\n * An array of address autocomplete suggestions to show to the buyer.\n *\n * > Note: Only the first five suggestions will be displayed to the buyer.\n */\n suggestions: AddressAutocompleteSuggestion[];\n}" + "value": "export interface AddressAutocompleteSuggestOutput {\n /**\n * An array of address autocomplete suggestions to show to the buyer.\n * Checkout displays up to five address suggestions. Return no more\n * than five. Additional suggestions are ignored.\n */\n suggestions: AddressAutocompleteSuggestion[];\n}" } }, "AllowedComponents": { @@ -7247,7 +7247,7 @@ "syntaxKind": "PropertySignature", "name": "Checkout::Dynamic::Render", "value": "RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Dynamic::Render'>,\n AnyCheckoutComponent\n >", - "description": "A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).", + "description": "A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).", "deprecationMessage": "Use `purchase.checkout.block.render` instead.", "isPrivate": true }, @@ -7409,7 +7409,7 @@ "syntaxKind": "PropertySignature", "name": "Checkout::ThankYou::Dynamic::Render", "value": "RenderExtension<\n OrderConfirmationApi & StandardApi<'Checkout::ThankYou::Dynamic::Render'>,\n AnyCheckoutComponent\n >", - "description": "A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).", + "description": "A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).", "deprecationMessage": "Use `purchase.thank-you.block.render` instead.", "isPrivate": true }, @@ -7433,7 +7433,7 @@ "syntaxKind": "PropertySignature", "name": "purchase.checkout.block.render", "value": "RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.block.render'>,\n AnyCheckoutComponent\n >", - "description": "A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets)." + "description": "A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets)." }, { "filePath": "src/surfaces/checkout/extension-targets.ts", @@ -7626,7 +7626,7 @@ "syntaxKind": "PropertySignature", "name": "purchase.thank-you.block.render", "value": "RenderExtension<\n OrderConfirmationApi & StandardApi<'purchase.thank-you.block.render'>,\n AnyCheckoutComponent\n >", - "description": "A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets)." + "description": "A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page. Unlike static extension targets, block extension targets render where the merchant sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n\nThe [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets)." }, { "filePath": "src/surfaces/checkout/extension-targets.ts", @@ -7671,7 +7671,7 @@ "description": "A static extension target that is rendered below the header on the **Thank you** page." } ], - "value": "export interface RenderExtensionTargets {\n /**\n * A static extension target that is rendered immediately before any actions within each step.\n */\n 'purchase.checkout.actions.render-before': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.actions.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately before any actions within each step.\n *\n * @deprecated Use `purchase.checkout.actions.render-before` instead.\n * @private\n */\n 'Checkout::Actions::RenderBefore': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Actions::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after all line items.\n */\n 'purchase.checkout.cart-line-list.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.cart-line-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after all line items.\n *\n * @deprecated Use `purchase.checkout.cart-line-list.render-after` instead.\n * @private\n */\n 'Checkout::CartLines::RenderAfter': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::CartLines::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every line item, inside the details\n * under the line item properties element.\n */\n 'purchase.checkout.cart-line-item.render-after': RenderExtension<\n CheckoutApi &\n CartLineItemApi &\n StandardApi<'purchase.checkout.cart-line-item.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every line item, inside the details\n * under the line item properties element.\n *\n * @deprecated Use `purchase.checkout.cart-line-item.render-after` instead.\n * @private\n */\n 'Checkout::CartLineDetails::RenderAfter': RenderExtension<\n CheckoutApi &\n CartLineItemApi &\n StandardApi<'Checkout::CartLineDetails::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every bundle line item, inside the details\n * under the line item properties element. It replaces the default bundle products rendering.\n * @private\n */\n 'purchase.cart-line-item.line-components.render': RenderExtension<\n CartLineItemApi &\n StandardApi<'purchase.cart-line-item.line-components.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every bundle line item, inside the details\n * under the line item properties element. It replaces the default bundle products rendering.\n *\n * @deprecated Use `purchase.cart-line-item.line-components.render` instead.\n * @private\n */\n 'Checkout::CartLineDetails::RenderLineComponents': RenderExtension<\n CartLineItemApi &\n StandardApi<'Checkout::CartLineDetails::RenderLineComponents'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately after the contact form element.\n */\n 'purchase.checkout.contact.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.contact.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately after the contact form element.\n *\n * @deprecated Use `purchase.checkout.contact.render-after` instead.\n * @private\n */\n 'Checkout::Contact::RenderAfter': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Contact::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after a purchase below the customer information.\n *\n * @deprecated Use `purchase.thank-you.customer-information.render-after` or\n * `customer-account.order-status.customer-information.render-after` from `@shopify/ui-extension/customer-account` instead.\n * @private\n */\n 'Checkout::CustomerInformation::RenderAfter': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::CustomerInformation::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered between the shipping address header\n * and shipping address form elements.\n */\n 'purchase.checkout.delivery-address.render-before': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.delivery-address.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered between the shipping address header\n * and shipping address form elements.\n *\n * @deprecated Use `purchase.checkout.delivery-address.render-before` instead.\n * @private\n */\n 'Checkout::DeliveryAddress::RenderBefore': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::DeliveryAddress::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping address form elements.\n */\n 'purchase.checkout.delivery-address.render-after': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.delivery-address.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature.\n * Unlike static extension targets, block extension targets render where the merchant\n * sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n *\n * The [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development\n * by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).\n */\n 'purchase.checkout.block.render': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.block.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature.\n * Unlike static extension targets, block extension targets render where the merchant\n * sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n *\n * The [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development\n * by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).\n *\n * @deprecated Use `purchase.checkout.block.render` instead.\n * @private\n */\n 'Checkout::Dynamic::Render': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Dynamic::Render'>,\n AnyCheckoutComponent\n >;\n /**\n * A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page.\n * Unlike static extension targets, block extension targets render where the merchant\n * sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n *\n * The [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development\n * by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).\n *\n */\n 'purchase.thank-you.block.render': RenderExtension<\n OrderConfirmationApi & StandardApi<'purchase.thank-you.block.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A [block extension target](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page.\n * Unlike static extension targets, block extension targets render where the merchant\n * sets them using the [checkout editor](https://shopify.dev/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n *\n * The [supported locations](https://shopify.dev/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development\n * by [using a URL parameter](https://shopify.dev/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).\n *\n * @deprecated Use `purchase.thank-you.block.render` instead.\n * @private\n */\n 'Checkout::ThankYou::Dynamic::Render': RenderExtension<\n OrderConfirmationApi & StandardApi<'Checkout::ThankYou::Dynamic::Render'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every line item, inside the details\n * under the line item properties element on the **Thank you** page.\n */\n 'purchase.thank-you.cart-line-item.render-after': RenderExtension<\n OrderConfirmationApi &\n CartLineItemApi &\n StandardApi<'purchase.thank-you.cart-line-item.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every line item, inside the details\n * under the line item properties element on the **Thank you** page.\n *\n * @deprecated Use `purchase.thank-you.cart-line-item.render-after` instead.\n * @private\n */\n 'Checkout::ThankYou::CartLineDetails::RenderAfter': RenderExtension<\n OrderConfirmationApi &\n CartLineItemApi &\n StandardApi<'Checkout::ThankYou::CartLineDetails::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after all line items on the **Thank you** page.\n */\n 'purchase.thank-you.cart-line-list.render-after': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.cart-line-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after all line items on the **Thank you** page.\n *\n * @deprecated Use `purchase.thank-you.cart-line-list.render-after` instead.\n * @private\n */\n 'Checkout::ThankYou::CartLines::RenderAfter': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'Checkout::ThankYou::CartLines::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after a purchase below the customer information on the **Thank you** page.\n */\n 'purchase.thank-you.customer-information.render-after': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.customer-information.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after a purchase below the customer information on the **Thank you** page.\n *\n * @deprecated Use `purchase.thank-you.customer-information.render-after` instead.\n * @private\n */\n 'Checkout::ThankYou::CustomerInformation::RenderAfter': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'Checkout::ThankYou::CustomerInformation::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders the gift card entry form fields after\n * the buyer ticks a box to use a gift card. This does not replace the\n * native gift card entry form which is rendered in a separate part of checkout.\n *\n * @private\n */\n 'purchase.checkout.gift-card.render': RenderExtension<\n RedeemableApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.gift-card.render'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders the gift card entry form fields after\n * the buyer ticks a box to use a gift card. This does not replace the\n * native gift card entry form which is rendered in a separate part of checkout.\n *\n * @private\n * @deprecated Use `purchase.checkout.gift-card.render` instead.\n */\n 'Checkout::GiftCard::Render': RenderExtension<\n RedeemableApi & CheckoutApi & StandardApi<'Checkout::GiftCard::Render'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders the form fields for a payment method when selected by the buyer.\n *\n * @private\n */\n 'purchase.checkout.payment-option-item.details.render': RenderExtension<\n PaymentOptionItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-option-item.details.render'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders the form fields for a payment method when selected by the buyer.\n *\n * @private\n * @deprecated Use `purchase.checkout.payment-option-item.details.render` instead.\n */\n 'Checkout::PaymentMethod::Render': RenderExtension<\n PaymentOptionItemApi &\n CheckoutApi &\n StandardApi<'Checkout::PaymentMethod::Render'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders after the hosted fields of a credit card payment method.\n *\n * @private\n */\n 'purchase.checkout.payment-option-item.hosted-fields.render-after': RenderExtension<\n PaymentOptionItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-option-item.hosted-fields.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders after the hosted fields of a credit card payment method.\n * for a credit card payment method when selected by the buyer.\n *\n * @private\n * @deprecated Use `purchase.checkout.payment-option-item.hosted-fields.render-after` instead.\n */\n 'Checkout::PaymentMethod::HostedFields::RenderAfter': RenderExtension<\n PaymentOptionItemApi &\n CheckoutApi &\n StandardApi<'Checkout::PaymentMethod::HostedFields::RenderAfter'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders a form modal when a buyer selects the custom onsite payment method.\n *\n * @private\n */\n 'purchase.checkout.payment-option-item.action-required.render': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-option-item.action-required.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders a form modal when a buyer selects the custom onsite payment method.\n *\n * @private\n * @deprecated Use `purchase.checkout.payment-option-item.action-required.render` instead.\n */\n 'Checkout::PaymentMethod::RenderRequiredAction': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::PaymentMethod::RenderRequiredAction'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders between the payment heading and payment method list.\n *\n */\n 'purchase.checkout.payment-method-list.render-before': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-method-list.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders below the list of payment methods.\n *\n */\n 'purchase.checkout.payment-method-list.render-after': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-method-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered in the order summary, before the discount form element.\n */\n 'purchase.checkout.reductions.render-before': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.reductions.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered in the order summary, before the discount form element.\n *\n * @deprecated Use `purchase.checkout.reductions.render-before` instead.\n * @private\n */\n 'Checkout::Reductions::RenderBefore': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Reductions::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered in the order summary, after the discount form\n * and discount tag elements.\n */\n 'purchase.checkout.reductions.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.reductions.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered in the order summary, after the discount form\n * and discount tag elements.\n *\n * @deprecated Use `purchase.checkout.reductions.render-after` instead.\n * @private\n */\n 'Checkout::Reductions::RenderAfter': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Reductions::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered between the shipping method\n * header and shipping method options.\n */\n 'purchase.checkout.shipping-option-list.render-before': RenderExtension<\n ShippingOptionListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.shipping-option-list.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered between the shipping method\n * header and shipping method options.\n *\n * @deprecated Use `purchase.checkout.shipping-option-list.render-before` instead.\n * @private\n */\n 'Checkout::ShippingMethods::RenderBefore': RenderExtension<\n ShippingOptionListApi &\n CheckoutApi &\n StandardApi<'Checkout::ShippingMethods::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping method\n * options.\n */\n 'purchase.checkout.shipping-option-list.render-after': RenderExtension<\n ShippingOptionListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.shipping-option-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping method\n * options.\n *\n * @deprecated Use `purchase.checkout.shipping-option-list.render-after` instead.\n * @private\n */\n 'Checkout::ShippingMethods::RenderAfter': RenderExtension<\n ShippingOptionListApi &\n CheckoutApi &\n StandardApi<'Checkout::ShippingMethods::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered before pickup location options.\n */\n 'purchase.checkout.pickup-location-list.render-before': RenderExtension<\n PickupLocationListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-location-list.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered before pickup location options.\n *\n * @deprecated Use `purchase.checkout.pickup-location-list.render-before` instead.\n * @private\n */\n 'Checkout::PickupLocations::RenderBefore': RenderExtension<\n PickupLocationListApi &\n CheckoutApi &\n StandardApi<'Checkout::PickupLocations::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after pickup location options.\n */\n 'purchase.checkout.pickup-location-list.render-after': RenderExtension<\n PickupLocationListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-location-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after pickup location options.\n *\n * @deprecated Use `purchase.checkout.pickup-location-list.render-after` instead.\n * @private\n */\n 'Checkout::PickupLocations::RenderAfter': RenderExtension<\n PickupLocationListApi &\n CheckoutApi &\n StandardApi<'Checkout::PickupLocations::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping method\n * details within the shipping method option list, for each option.\n */\n 'purchase.checkout.shipping-option-item.render-after': RenderExtension<\n ShippingOptionItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.shipping-option-item.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping method\n * details within the shipping method option list, for each option.\n *\n * @deprecated Use `purchase.checkout.shipping-option-item.render-after` instead.\n * @private\n */\n 'Checkout::ShippingMethodDetails::RenderAfter': RenderExtension<\n ShippingOptionItemApi &\n CheckoutApi &\n StandardApi<'Checkout::ShippingMethodDetails::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered under the shipping method\n * within the shipping method option list, for each option.\n */\n 'purchase.checkout.shipping-option-item.details.render': RenderExtension<\n ShippingOptionItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.shipping-option-item.details.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered under the shipping method\n * within the shipping method option list, for each option.\n *\n * @deprecated Use `purchase.checkout.shipping-option-item.details.render` instead.\n * @private\n */\n 'Checkout::ShippingMethodDetails::RenderExpanded': RenderExtension<\n ShippingOptionItemApi &\n CheckoutApi &\n StandardApi<'Checkout::ShippingMethodDetails::RenderExpanded'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately before the pickup points.\n */\n 'purchase.checkout.pickup-point-list.render-before': RenderExtension<\n PickupPointListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-point-list.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately before the pickup points.\n *\n * @deprecated Use `purchase.checkout.pickup-point-list.render-before` instead.\n * @private\n */\n 'Checkout::PickupPoints::RenderBefore': RenderExtension<\n PickupPointListApi &\n CheckoutApi &\n StandardApi<'Checkout::PickupPoints::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately after the pickup points.\n */\n 'purchase.checkout.pickup-point-list.render-after': RenderExtension<\n PickupPointListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-point-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately after the pickup points.\n *\n * @deprecated Use `purchase.checkout.pickup-point-list.render-after` instead.\n * @private\n */\n 'Checkout::PickupPoints::RenderAfter': RenderExtension<\n PickupPointListApi &\n CheckoutApi &\n StandardApi<'Checkout::PickupPoints::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the pickup location\n * details within the local pickup option list, for each option.\n */\n 'purchase.checkout.pickup-location-option-item.render-after': RenderExtension<\n PickupLocationItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-location-option-item.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered below the header.\n */\n 'purchase.checkout.header.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.header.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered below the footer.\n */\n 'purchase.checkout.footer.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.footer.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered on top of the checkout page as an overlay.\n * It is positioned in the bottom right corner of the screen.\n */\n 'purchase.checkout.chat.render': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.chat.render'>,\n AllowedComponents<'Chat'>\n >;\n /**\n * A static extension target that is rendered below the header on the **Thank you** page.\n */\n 'purchase.thank-you.header.render-after': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.header.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered below the footer on the **Thank you** page.\n */\n 'purchase.thank-you.footer.render-after': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.footer.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered on top of the **Thank you page** as an overlay.\n * It is positioned in the bottom right corner of the screen.\n */\n 'purchase.thank-you.chat.render': RenderExtension<\n OrderConfirmationApi & StandardApi<'purchase.thank-you.chat.render'>,\n AllowedComponents<'Chat'>\n >;\n /**\n * A static extension target that is rendered on top of the **Thank you page** as a dismissable announcement.\n */\n 'purchase.thank-you.announcement.render': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.announcement.render'>,\n AnyThankYouComponent\n >;\n}" + "value": "export interface RenderExtensionTargets {\n /**\n * A static extension target that is rendered immediately before any actions within each step.\n */\n 'purchase.checkout.actions.render-before': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.actions.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately before any actions within each step.\n *\n * @deprecated Use `purchase.checkout.actions.render-before` instead.\n * @private\n */\n 'Checkout::Actions::RenderBefore': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Actions::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after all line items.\n */\n 'purchase.checkout.cart-line-list.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.cart-line-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after all line items.\n *\n * @deprecated Use `purchase.checkout.cart-line-list.render-after` instead.\n * @private\n */\n 'Checkout::CartLines::RenderAfter': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::CartLines::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every line item, inside the details\n * under the line item properties element.\n */\n 'purchase.checkout.cart-line-item.render-after': RenderExtension<\n CheckoutApi &\n CartLineItemApi &\n StandardApi<'purchase.checkout.cart-line-item.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every line item, inside the details\n * under the line item properties element.\n *\n * @deprecated Use `purchase.checkout.cart-line-item.render-after` instead.\n * @private\n */\n 'Checkout::CartLineDetails::RenderAfter': RenderExtension<\n CheckoutApi &\n CartLineItemApi &\n StandardApi<'Checkout::CartLineDetails::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every bundle line item, inside the details\n * under the line item properties element. It replaces the default bundle products rendering.\n * @private\n */\n 'purchase.cart-line-item.line-components.render': RenderExtension<\n CartLineItemApi &\n StandardApi<'purchase.cart-line-item.line-components.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every bundle line item, inside the details\n * under the line item properties element. It replaces the default bundle products rendering.\n *\n * @deprecated Use `purchase.cart-line-item.line-components.render` instead.\n * @private\n */\n 'Checkout::CartLineDetails::RenderLineComponents': RenderExtension<\n CartLineItemApi &\n StandardApi<'Checkout::CartLineDetails::RenderLineComponents'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately after the contact form element.\n */\n 'purchase.checkout.contact.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.contact.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately after the contact form element.\n *\n * @deprecated Use `purchase.checkout.contact.render-after` instead.\n * @private\n */\n 'Checkout::Contact::RenderAfter': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Contact::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after a purchase below the customer information.\n *\n * @deprecated Use `purchase.thank-you.customer-information.render-after` or\n * `customer-account.order-status.customer-information.render-after` from `@shopify/ui-extension/customer-account` instead.\n * @private\n */\n 'Checkout::CustomerInformation::RenderAfter': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::CustomerInformation::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered between the shipping address header\n * and shipping address form elements.\n */\n 'purchase.checkout.delivery-address.render-before': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.delivery-address.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered between the shipping address header\n * and shipping address form elements.\n *\n * @deprecated Use `purchase.checkout.delivery-address.render-before` instead.\n * @private\n */\n 'Checkout::DeliveryAddress::RenderBefore': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::DeliveryAddress::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping address form elements.\n */\n 'purchase.checkout.delivery-address.render-after': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.delivery-address.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature.\n * Unlike static extension targets, block extension targets render where the merchant\n * sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n *\n * The [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development\n * by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).\n */\n 'purchase.checkout.block.render': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.block.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that isn't tied to a specific checkout section or feature.\n * Unlike static extension targets, block extension targets render where the merchant\n * sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n *\n * The [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development\n * by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).\n *\n * @deprecated Use `purchase.checkout.block.render` instead.\n * @private\n */\n 'Checkout::Dynamic::Render': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Dynamic::Render'>,\n AnyCheckoutComponent\n >;\n /**\n * A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page.\n * Unlike static extension targets, block extension targets render where the merchant\n * sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n *\n * The [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development\n * by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).\n *\n */\n 'purchase.thank-you.block.render': RenderExtension<\n OrderConfirmationApi & StandardApi<'purchase.thank-you.block.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A [block extension target](/docs/api/checkout-ui-extensions/extension-targets-overview#block-extension-targets) that renders exclusively on the **Thank you** page.\n * Unlike static extension targets, block extension targets render where the merchant\n * sets them using the [checkout editor](/apps/checkout/test-ui-extensions#test-the-extension-in-the-checkout-editor).\n *\n * The [supported locations](/docs/api/checkout-ui-extensions/extension-targets-overview#supported-locations) for block extension targets can be previewed during development\n * by [using a URL parameter](/docs/apps/checkout/best-practices/testing-ui-extensions#block-extension-targets).\n *\n * @deprecated Use `purchase.thank-you.block.render` instead.\n * @private\n */\n 'Checkout::ThankYou::Dynamic::Render': RenderExtension<\n OrderConfirmationApi & StandardApi<'Checkout::ThankYou::Dynamic::Render'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every line item, inside the details\n * under the line item properties element on the **Thank you** page.\n */\n 'purchase.thank-you.cart-line-item.render-after': RenderExtension<\n OrderConfirmationApi &\n CartLineItemApi &\n StandardApi<'purchase.thank-you.cart-line-item.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders on every line item, inside the details\n * under the line item properties element on the **Thank you** page.\n *\n * @deprecated Use `purchase.thank-you.cart-line-item.render-after` instead.\n * @private\n */\n 'Checkout::ThankYou::CartLineDetails::RenderAfter': RenderExtension<\n OrderConfirmationApi &\n CartLineItemApi &\n StandardApi<'Checkout::ThankYou::CartLineDetails::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after all line items on the **Thank you** page.\n */\n 'purchase.thank-you.cart-line-list.render-after': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.cart-line-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after all line items on the **Thank you** page.\n *\n * @deprecated Use `purchase.thank-you.cart-line-list.render-after` instead.\n * @private\n */\n 'Checkout::ThankYou::CartLines::RenderAfter': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'Checkout::ThankYou::CartLines::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after a purchase below the customer information on the **Thank you** page.\n */\n 'purchase.thank-you.customer-information.render-after': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.customer-information.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after a purchase below the customer information on the **Thank you** page.\n *\n * @deprecated Use `purchase.thank-you.customer-information.render-after` instead.\n * @private\n */\n 'Checkout::ThankYou::CustomerInformation::RenderAfter': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'Checkout::ThankYou::CustomerInformation::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders the gift card entry form fields after\n * the buyer ticks a box to use a gift card. This does not replace the\n * native gift card entry form which is rendered in a separate part of checkout.\n *\n * @private\n */\n 'purchase.checkout.gift-card.render': RenderExtension<\n RedeemableApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.gift-card.render'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders the gift card entry form fields after\n * the buyer ticks a box to use a gift card. This does not replace the\n * native gift card entry form which is rendered in a separate part of checkout.\n *\n * @private\n * @deprecated Use `purchase.checkout.gift-card.render` instead.\n */\n 'Checkout::GiftCard::Render': RenderExtension<\n RedeemableApi & CheckoutApi & StandardApi<'Checkout::GiftCard::Render'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders the form fields for a payment method when selected by the buyer.\n *\n * @private\n */\n 'purchase.checkout.payment-option-item.details.render': RenderExtension<\n PaymentOptionItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-option-item.details.render'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders the form fields for a payment method when selected by the buyer.\n *\n * @private\n * @deprecated Use `purchase.checkout.payment-option-item.details.render` instead.\n */\n 'Checkout::PaymentMethod::Render': RenderExtension<\n PaymentOptionItemApi &\n CheckoutApi &\n StandardApi<'Checkout::PaymentMethod::Render'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders after the hosted fields of a credit card payment method.\n *\n * @private\n */\n 'purchase.checkout.payment-option-item.hosted-fields.render-after': RenderExtension<\n PaymentOptionItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-option-item.hosted-fields.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders after the hosted fields of a credit card payment method.\n * for a credit card payment method when selected by the buyer.\n *\n * @private\n * @deprecated Use `purchase.checkout.payment-option-item.hosted-fields.render-after` instead.\n */\n 'Checkout::PaymentMethod::HostedFields::RenderAfter': RenderExtension<\n PaymentOptionItemApi &\n CheckoutApi &\n StandardApi<'Checkout::PaymentMethod::HostedFields::RenderAfter'>,\n AnyCheckoutComponentExcept<'Image' | 'Banner'>\n >;\n /**\n * A static extension target that renders a form modal when a buyer selects the custom onsite payment method.\n *\n * @private\n */\n 'purchase.checkout.payment-option-item.action-required.render': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-option-item.action-required.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders a form modal when a buyer selects the custom onsite payment method.\n *\n * @private\n * @deprecated Use `purchase.checkout.payment-option-item.action-required.render` instead.\n */\n 'Checkout::PaymentMethod::RenderRequiredAction': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::PaymentMethod::RenderRequiredAction'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders between the payment heading and payment method list.\n *\n */\n 'purchase.checkout.payment-method-list.render-before': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-method-list.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that renders below the list of payment methods.\n *\n */\n 'purchase.checkout.payment-method-list.render-after': RenderExtension<\n CheckoutApi &\n StandardApi<'purchase.checkout.payment-method-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered in the order summary, before the discount form element.\n */\n 'purchase.checkout.reductions.render-before': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.reductions.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered in the order summary, before the discount form element.\n *\n * @deprecated Use `purchase.checkout.reductions.render-before` instead.\n * @private\n */\n 'Checkout::Reductions::RenderBefore': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Reductions::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered in the order summary, after the discount form\n * and discount tag elements.\n */\n 'purchase.checkout.reductions.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.reductions.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered in the order summary, after the discount form\n * and discount tag elements.\n *\n * @deprecated Use `purchase.checkout.reductions.render-after` instead.\n * @private\n */\n 'Checkout::Reductions::RenderAfter': RenderExtension<\n CheckoutApi & StandardApi<'Checkout::Reductions::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered between the shipping method\n * header and shipping method options.\n */\n 'purchase.checkout.shipping-option-list.render-before': RenderExtension<\n ShippingOptionListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.shipping-option-list.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered between the shipping method\n * header and shipping method options.\n *\n * @deprecated Use `purchase.checkout.shipping-option-list.render-before` instead.\n * @private\n */\n 'Checkout::ShippingMethods::RenderBefore': RenderExtension<\n ShippingOptionListApi &\n CheckoutApi &\n StandardApi<'Checkout::ShippingMethods::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping method\n * options.\n */\n 'purchase.checkout.shipping-option-list.render-after': RenderExtension<\n ShippingOptionListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.shipping-option-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping method\n * options.\n *\n * @deprecated Use `purchase.checkout.shipping-option-list.render-after` instead.\n * @private\n */\n 'Checkout::ShippingMethods::RenderAfter': RenderExtension<\n ShippingOptionListApi &\n CheckoutApi &\n StandardApi<'Checkout::ShippingMethods::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered before pickup location options.\n */\n 'purchase.checkout.pickup-location-list.render-before': RenderExtension<\n PickupLocationListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-location-list.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered before pickup location options.\n *\n * @deprecated Use `purchase.checkout.pickup-location-list.render-before` instead.\n * @private\n */\n 'Checkout::PickupLocations::RenderBefore': RenderExtension<\n PickupLocationListApi &\n CheckoutApi &\n StandardApi<'Checkout::PickupLocations::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after pickup location options.\n */\n 'purchase.checkout.pickup-location-list.render-after': RenderExtension<\n PickupLocationListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-location-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after pickup location options.\n *\n * @deprecated Use `purchase.checkout.pickup-location-list.render-after` instead.\n * @private\n */\n 'Checkout::PickupLocations::RenderAfter': RenderExtension<\n PickupLocationListApi &\n CheckoutApi &\n StandardApi<'Checkout::PickupLocations::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping method\n * details within the shipping method option list, for each option.\n */\n 'purchase.checkout.shipping-option-item.render-after': RenderExtension<\n ShippingOptionItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.shipping-option-item.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the shipping method\n * details within the shipping method option list, for each option.\n *\n * @deprecated Use `purchase.checkout.shipping-option-item.render-after` instead.\n * @private\n */\n 'Checkout::ShippingMethodDetails::RenderAfter': RenderExtension<\n ShippingOptionItemApi &\n CheckoutApi &\n StandardApi<'Checkout::ShippingMethodDetails::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered under the shipping method\n * within the shipping method option list, for each option.\n */\n 'purchase.checkout.shipping-option-item.details.render': RenderExtension<\n ShippingOptionItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.shipping-option-item.details.render'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered under the shipping method\n * within the shipping method option list, for each option.\n *\n * @deprecated Use `purchase.checkout.shipping-option-item.details.render` instead.\n * @private\n */\n 'Checkout::ShippingMethodDetails::RenderExpanded': RenderExtension<\n ShippingOptionItemApi &\n CheckoutApi &\n StandardApi<'Checkout::ShippingMethodDetails::RenderExpanded'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately before the pickup points.\n */\n 'purchase.checkout.pickup-point-list.render-before': RenderExtension<\n PickupPointListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-point-list.render-before'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately before the pickup points.\n *\n * @deprecated Use `purchase.checkout.pickup-point-list.render-before` instead.\n * @private\n */\n 'Checkout::PickupPoints::RenderBefore': RenderExtension<\n PickupPointListApi &\n CheckoutApi &\n StandardApi<'Checkout::PickupPoints::RenderBefore'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately after the pickup points.\n */\n 'purchase.checkout.pickup-point-list.render-after': RenderExtension<\n PickupPointListApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-point-list.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered immediately after the pickup points.\n *\n * @deprecated Use `purchase.checkout.pickup-point-list.render-after` instead.\n * @private\n */\n 'Checkout::PickupPoints::RenderAfter': RenderExtension<\n PickupPointListApi &\n CheckoutApi &\n StandardApi<'Checkout::PickupPoints::RenderAfter'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered after the pickup location\n * details within the local pickup option list, for each option.\n */\n 'purchase.checkout.pickup-location-option-item.render-after': RenderExtension<\n PickupLocationItemApi &\n CheckoutApi &\n StandardApi<'purchase.checkout.pickup-location-option-item.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered below the header.\n */\n 'purchase.checkout.header.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.header.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered below the footer.\n */\n 'purchase.checkout.footer.render-after': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.footer.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered on top of the checkout page as an overlay.\n * It is positioned in the bottom right corner of the screen.\n */\n 'purchase.checkout.chat.render': RenderExtension<\n CheckoutApi & StandardApi<'purchase.checkout.chat.render'>,\n AllowedComponents<'Chat'>\n >;\n /**\n * A static extension target that is rendered below the header on the **Thank you** page.\n */\n 'purchase.thank-you.header.render-after': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.header.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered below the footer on the **Thank you** page.\n */\n 'purchase.thank-you.footer.render-after': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.footer.render-after'>,\n AnyCheckoutComponent\n >;\n /**\n * A static extension target that is rendered on top of the **Thank you page** as an overlay.\n * It is positioned in the bottom right corner of the screen.\n */\n 'purchase.thank-you.chat.render': RenderExtension<\n OrderConfirmationApi & StandardApi<'purchase.thank-you.chat.render'>,\n AllowedComponents<'Chat'>\n >;\n /**\n * A static extension target that is rendered on top of the **Thank you page** as a dismissable announcement.\n */\n 'purchase.thank-you.announcement.render': RenderExtension<\n OrderConfirmationApi &\n StandardApi<'purchase.thank-you.announcement.render'>,\n AnyThankYouComponent\n >;\n}" } }, "RunnableExtensionTargets": { @@ -7791,7 +7791,7 @@ "syntaxKind": "PropertySignature", "name": "billingAddress", "value": "SubscribableSignalLike", - "description": "The proposed customer billing address. The address updates when the field is committed (on change) rather than every keystroke. The property is available only if the extension has access to protected customer data. The subscribable value is `undefined` if the billing address hasn't been provided yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The proposed customer billing address. The address updates when the field is committed (on change) rather than every keystroke. The property is available only if the extension has access to protected customer data. The subscribable value is `undefined` if the billing address hasn't been provided yet.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true }, { @@ -7799,7 +7799,7 @@ "syntaxKind": "PropertySignature", "name": "shippingAddress", "value": "SubscribableSignalLike", - "description": "The proposed customer shipping address. During the information step, the address updates when the field is committed (on change) rather than every keystroke. The property is available only if the extension has access to protected customer data. When available, the subscribable value is `undefined` if delivery isn't required.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "The proposed customer shipping address. During the information step, the address updates when the field is committed (on change) rather than every keystroke. The property is available only if the extension has access to protected customer data. When available, the subscribable value is `undefined` if delivery isn't required.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true } ], @@ -7818,7 +7818,7 @@ "syntaxKind": "MethodSignature", "name": "applyShippingAddressChange", "value": "(change: ShippingAddressUpdateChange) => Promise", - "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "Updates the buyer's shipping address on the checkout. The provided fields are merged into the existing address without prompting the buyer. On success, the `shippingAddress` property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `delivery.canSelectCustomAddress` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true } ], @@ -7855,7 +7855,7 @@ "syntaxKind": "MethodSignature", "name": "applyAttributeChange", "value": "(change: AttributeChange) => Promise", - "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#standardapi-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Updates or removes an attribute on the cart and checkout. On success, the [`attributes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/attributes#properties-propertydetail-attributes) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `attributes.canUpdateAttributes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_AttributesApi\n extends Pick {}" @@ -7873,7 +7873,7 @@ "syntaxKind": "PropertySignature", "name": "buyerIdentity", "value": "BuyerIdentity", - "description": "Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data).", + "description": "Information about the buyer that's interacting with the checkout. The property is available only if the extension has access to protected customer data.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).", "isOptional": true } ], @@ -7892,7 +7892,7 @@ "syntaxKind": "PropertySignature", "name": "buyerJourney", "value": "BuyerJourney", - "description": "Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n\nRefer to [buyer journey](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples) examples for more information." + "description": "Provides details on the buyer's progression through the checkout and lets you intercept navigation to validate data before the buyer continues.\n\nRefer to [buyer journey](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/buyer-journey#examples) examples for more information." } ], "value": "export interface Docs_Standard_BuyerJourneyApi\n extends Pick {}" @@ -7910,7 +7910,7 @@ "syntaxKind": "PropertySignature", "name": "instructions", "value": "SubscribableSignalLike", - "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: As of version `2024-07`, UI extension code must check for instructions before calling select APIs in case those APIs aren't available. See the [update guide](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) for more information." + "description": "The cart instructions used to create the checkout and possibly limit extension capabilities.\n\nThese instructions should be checked before performing any actions that might be affected by them.\n\nFor example, if you intend to add a discount code via the `applyDiscountCodeChange` method, check `discounts.canUpdateDiscountCodes` to ensure it's supported in this checkout.\n\n> Caution: Check cart instructions before calling select APIs, as > some may not be available. See the > [Cart Instructions API](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#examples) > for more information." } ], "value": "export interface Docs_Standard_CartInstructionsApi\n extends Pick {}" @@ -7946,7 +7946,7 @@ "syntaxKind": "MethodSignature", "name": "applyCartLinesChange", "value": "(change: CartLineChange) => Promise", - "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#standardapi-propertydetail-lines) property updates with the new state.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds, removes, or updates line items in the cart. The returned promise resolves when the change has been applied by the server, and the [`lines`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-lines#properties-propertydetail-lines) property updates with the new state.\n\nAccepts a single change per call. To make multiple changes, call this method separately for each one.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `lines.canAddCartLine` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_CartLinesApi\n extends Pick {}" @@ -7964,7 +7964,7 @@ "syntaxKind": "PropertySignature", "name": "target", "value": "SubscribableSignalLike", - "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." + "description": "The cart line that this extension is attached to. Use this to read the line item's merchandise, quantity, cost, and attributes.\n\nAvailable only on the corresponding item target. Shipping option item targets expose shipping option properties; pickup location item targets expose pickup location properties.\n\n> Note: Until version `2023-04`, this property was a `ReadonlySignalLike`." } ], "value": "export interface Docs_CartLineItem_CartLinesApi\n extends Pick {}" @@ -8000,14 +8000,14 @@ "syntaxKind": "PropertySignature", "name": "i18n", "value": "I18n", - "description": "Utilities for translating content and formatting values according to the current [`localization`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) of the checkout.\n\nRefer to [`localization` examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#examples) for more information." + "description": "Utilities for translating strings, formatting currencies, numbers, and dates according to the buyer's locale. Use alongside [`localization`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization) to build fully localized extensions." }, { "filePath": "src/surfaces/checkout/api/docs.ts", "syntaxKind": "PropertySignature", "name": "localization", "value": "Localization", - "description": "The details about the location, language, and currency of the customer. For utilities to easily format and translate content based on these details, you can use the [`i18n`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#standardapi-propertydetail-i18n) object instead." + "description": "The buyer's language, country, currency, and timezone context. For formatting and translation helpers, use the [`i18n`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/localization#properties-propertydetail-i18n) object instead." } ], "value": "export interface Docs_Standard_LocalizationApi\n extends Pick {}" @@ -8044,14 +8044,14 @@ "syntaxKind": "PropertySignature", "name": "appMetafields", "value": "SubscribableSignalLike", - "description": "The metafields requested in the [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file. These metafields are updated when there's a change in the merchandise items being purchased by the customer.\n\nApp owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](https://shopify.dev/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "The metafields requested in the [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file. These metafields are updated when there's a change in the merchandise items being purchased by the customer.\n\nApp owned metafields are supported and are returned using the `$app` format. The fully qualified reserved namespace format such as `app--{your-app-id}[--{optional-namespace}]` isn't supported. See [app owned metafields](/docs/apps/build/custom-data/ownership#reserved-prefixes) for more information.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/docs.ts", "syntaxKind": "PropertySignature", "name": "metafields", "value": "SubscribableSignalLike", - "description": "The metafields that apply to the current checkout.\n\nMetafields are stored locally on the client and are applied to the order object after the checkout completes.\n\nThese metafields are shared by all extensions running on checkout, and persist for as long as the customer is working on this checkout.\n\nOnce the order is created, you can query these metafields using the [GraphQL Admin API](https://shopify.dev/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n\n> Tip: > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later." + "description": "The metafields that apply to the current checkout.\n\nMetafields are stored locally on the client and are applied to the order object after the checkout completes.\n\nThese metafields are shared by all extensions running on checkout, and persist for as long as the customer is working on this checkout.\n\nOnce the order is created, you can query these metafields using the [GraphQL Admin API](/docs/admin-api/graphql/reference/orders/order#metafield-2021-01)\n\n> Tip: > Cart metafields are only available on carts created via the Storefront API version `2023-04` or later." } ], "value": "export interface Docs_Standard_MetafieldsApi\n extends Pick {}" @@ -8069,7 +8069,7 @@ "syntaxKind": "MethodSignature", "name": "applyMetafieldChange", "value": "(change: MetafieldChange) => Promise", - "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#standardapi-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Creates, updates, or removes a metafield on the checkout. On success, the [`metafields`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/metafields#properties-propertydetail-metafields) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `metafields.canSetCartMetafields` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_MetafieldsApi\n extends Pick {}" @@ -8087,7 +8087,7 @@ "syntaxKind": "PropertySignature", "name": "deliveryGroups", "value": "SubscribableSignalLike", - "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items." + "description": "The delivery groups for this checkout. Each group contains one or more cart lines and the available delivery options (shipping, pickup point, or pickup location) for those items.\n\nEmpty until the buyer enters enough address information for Shopify to calculate shipping rates." } ], "value": "export interface Docs_Standard_DeliveryApi\n extends Pick {}" @@ -8105,7 +8105,7 @@ "syntaxKind": "PropertySignature", "name": "checkoutToken", "value": "SubscribableSignalLike", - "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](https://shopify.dev/docs/api/admin-rest/unstable/resources/order#resource-object)." + "description": "A stable ID that represents the current checkout.\n\nThe value is `undefined` when the checkout hasn't been created on the server yet.\n\nUse this to correlate checkout sessions across your extension, web pixels, and backend systems.\n\nThis matches the `data.checkout.token` field in a [checkout-related WebPixel event](/docs/api/web-pixels-api/standard-events/checkout_started#properties-propertydetail-data) and the `checkout_token` field in the [REST Admin API `Order` resource](/docs/api/admin-rest/unstable/resources/order#resource-object).\n\nCan be `undefined`. Handle the `undefined` state before using the value." } ], "value": "export interface Docs_Standard_CheckoutTokenApi\n extends Pick {}" @@ -8123,7 +8123,7 @@ "syntaxKind": "PropertySignature", "name": "extension", "value": "Extension", - "description": "The meta information about the extension." + "description": "Metadata about the running extension, including the current target, API version, capabilities, and editor context. Use this to conditionally render content based on where the extension is running." } ], "value": "export interface Docs_Standard_ExtensionMetaApi\n extends Pick {}" @@ -8159,7 +8159,7 @@ "syntaxKind": "PropertySignature", "name": "shop", "value": "Shop", - "description": "The shop where the checkout is taking place." + "description": "The store where the checkout is taking place, including the shop name, storefront URL, `.myshopify.com` subdomain, and a globally-unique ID." } ], "value": "export interface Docs_Standard_ShopApi extends Pick {}" @@ -8195,7 +8195,7 @@ "syntaxKind": "MethodSignature", "name": "applyNoteChange", "value": "(change: NoteChange) => Promise", - "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#standardapi-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Sets or removes the buyer's note on the checkout. On success, the [`note`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/note#properties-propertydetail-note) property updates to reflect the change.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `notes.canUpdateNote` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_NoteApi\n extends Pick {}" @@ -8213,14 +8213,14 @@ "syntaxKind": "PropertySignature", "name": "availablePaymentOptions", "value": "SubscribableSignalLike", - "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region." + "description": "All payment options available to the buyer for this checkout, such as credit cards, wallets, and local payment methods. The list depends on the shop's payment configuration and the buyer's region.\n\nThe set of payment options can change when the buyer updates their address or cart, so subscribe to changes rather than reading once during initialization. Each option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." }, { "filePath": "src/surfaces/checkout/api/docs.ts", "syntaxKind": "PropertySignature", "name": "selectedPaymentOptions", "value": "SubscribableSignalLike", - "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card)." + "description": "The payment options the buyer has currently selected. This updates as the buyer changes their payment method. The array can contain multiple entries when the buyer splits payment across methods (for example, a gift card and a credit card).\n\nEach option exposes `handle` and `type` only. Provider names, logos, fees, and installment terms aren't available." } ], "value": "export interface Docs_Standard_PaymentOptionsApi\n extends Pick<\n StandardApi,\n 'availablePaymentOptions' | 'selectedPaymentOptions'\n > {}" @@ -8256,7 +8256,7 @@ "syntaxKind": "MethodSignature", "name": "applyGiftCardChange", "value": "(change: GiftCardChange) => Promise", - "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#standardapi-propertydetail-appliedgiftcards) property updates with the new state.\n\n> Caution: > See [security considerations](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a gift card from the checkout. The returned promise resolves when the change has been applied by the server, and the [`appliedGiftCards`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/gift-cards#properties-propertydetail-appliedgiftcards) property updates with the new state.\n\nUnlike other write operations, gift card changes aren't gated by a cart instruction flag.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves gift card codes through a network call.\n\n> Note: This method returns an error if the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_GiftCardsApi\n extends Pick {}" @@ -8274,7 +8274,7 @@ "syntaxKind": "PropertySignature", "name": "discountAllocations", "value": "SubscribableSignalLike", - "description": "The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered." + "description": "The discount allocations applied to the entire cart, including automatic discounts, code-based discounts, and custom discounts from [Shopify Functions](/docs/apps/build/functions). Each allocation indicates how much was discounted and how the discount was triggered." }, { "filePath": "src/surfaces/checkout/api/docs.ts", @@ -8299,7 +8299,7 @@ "syntaxKind": "MethodSignature", "name": "applyDiscountCodeChange", "value": "(change: DiscountCodeChange) => Promise", - "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#standardapi-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#standardapi-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." + "description": "Adds or removes a discount code on the checkout. The returned promise resolves when the change has been applied by the server, and the [`discountCodes`](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/discounts#properties-propertydetail-discountcodes) property updates with the new state.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#network-access) if your extension retrieves discount codes through a network call.\n\n> Note: This method returns an error if the [cart instruction](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/cart-instructions#properties-propertydetail-instructions) `discounts.canUpdateDiscountCodes` is false, or the buyer is using an accelerated checkout method, such as Apple Pay or Google Pay." } ], "value": "export interface Docs_Checkout_DiscountsApi\n extends Pick {}" @@ -8317,7 +8317,7 @@ "syntaxKind": "PropertySignature", "name": "sessionToken", "value": "SessionToken", - "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nRefer to [session token examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/session-token) for more information." + "description": "The session token providing a set of claims as a signed JSON Web Token (JWT).\n\nThe token has a TTL of five minutes.\n\nIf the previous token expires, this value reflects a new session token with a new signature and expiry.\n\nLearn more about [session tokens](/docs/apps/build/authentication-authorization/session-tokens)." } ], "value": "export interface Docs_Standard_SessionTokenApi\n extends Pick {}" @@ -8335,7 +8335,7 @@ "syntaxKind": "PropertySignature", "name": "settings", "value": "SubscribableSignalLike", - "description": "The settings matching the settings definition written in the [`shopify.extension.toml`](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n Refer to [settings examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n\n> Note: When an extension is being installed in the editor, the settings are empty until a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings." + "description": "The settings matching the settings definition written in the [`shopify.extension.toml`](/docs/api/checkout-ui-extensions/{API_VERSION}/configuration) file.\n\n Refer to [settings examples](/docs/api/checkout-ui-extensions/{API_VERSION}/apis/settings#examples) for more information.\n\n> Note: When an extension is being installed in the editor, the settings are empty until a merchant sets a value. In that case, this object updates in real time as a merchant fills in the settings." } ], "value": "export interface Docs_Standard_SettingsApi\n extends Pick {}" @@ -8353,7 +8353,7 @@ "syntaxKind": "PropertySignature", "name": "storage", "value": "Storage", - "description": "The key-value storage for the extension.\n\nIt uses `localStorage` and should persist across the customer's current checkout session.\n\n> Caution: Data persistence isn't guaranteed and storage is reset when the customer starts a new checkout.\n\nData is shared across all activated extension targets of this extension. In versions 2023-07 and earlier, each activated extension target had its own storage." + "description": "Key-value storage that persists across page loads within the current checkout session. Data is shared across all activated targets associated with this extension.\n\n> Caution: Data persistence isn't guaranteed and storage is cleared when the buyer starts a new checkout." } ], "value": "export interface Docs_Standard_StorageApi\n extends Pick {}" @@ -8371,7 +8371,7 @@ "syntaxKind": "PropertySignature", "name": "query", "value": ">(query: string, options?: { variables?: Variables; version?: StorefrontApiVersion; }) => Promise<{ data?: Data; errors?: GraphQLError[]; }>", - "description": "The method used to query the Storefront GraphQL API with a prefetched token.\n\nRefer to [Storefront API access examples](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/apis/storefront-api) for more information." + "description": "The method used to query the Storefront GraphQL API with a prefetched token." } ], "value": "export interface Docs_Standard_QueryApi extends Pick {}" @@ -8389,7 +8389,7 @@ "syntaxKind": "PropertySignature", "name": "analytics", "value": "Analytics", - "description": "The methods for interacting with [Web Pixels](https://shopify.dev/docs/apps/marketing), such as emitting an event." + "description": "Tracks custom events and sends visitor information to [Web Pixels](/docs/apps/marketing). Use `publish()` to emit events and `visitor()` to submit buyer contact details." } ], "value": "export interface Docs_Standard_AnalyticsApi\n extends Pick {}" @@ -8407,7 +8407,7 @@ "syntaxKind": "PropertySignature", "name": "applyTrackingConsentChange", "value": "ApplyTrackingConsentChangeType", - "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`customer_privacy` capability](https://shopify.dev/docs/api/checkout-ui-extensions/{API_VERSION}/configuration#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](https://shopify.dev/docs/apps/store/data-protection/protected-customer-data)." + "description": "Enables setting and updating customer privacy consent settings and tracking consent metafields.\n\n> Note: Requires the [`collect_buyer_consent` capability](/docs/apps/build/customer-accounts/capabilities#collect-buyer-consent) to be set to `true`.\n\n{% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data)." }, { "filePath": "src/surfaces/checkout/api/docs.ts", @@ -8424,7 +8424,7 @@ "src/surfaces/checkout/components/Abbreviation.ts": { "filePath": "src/surfaces/checkout/components/Abbreviation.ts", "name": "BaseElementProps", - "description": "Used when an element does not have children.", + "description": "", "isPublicDocs": true, "members": [ { @@ -8512,7 +8512,7 @@ "src/surfaces/checkout/components/Abbreviation.ts": { "filePath": "src/surfaces/checkout/components/Abbreviation.ts", "name": "AbbreviationProps", - "description": "Displays abbreviated text or acronyms, revealing their full meaning or additional context through a tooltip on hover or focus. Use to clarify shortened terms, initialisms, or technical language without interrupting the reading flow.", + "description": "", "isPublicDocs": true, "members": [ { @@ -8520,7 +8520,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -8528,7 +8528,7 @@ "syntaxKind": "PropertySignature", "name": "title", "value": "string", - "description": "Defines the full expansion of the abbreviation or acronym.\n\nHelps user agents and users understand the meaning of the abbreviated text.", + "description": "Defines the full expansion of the abbreviation or acronym, helping user agents and users understand the meaning of the abbreviated text. Learn more about the [abbreviation element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr).", "isOptional": true, "defaultValue": "''" } @@ -9459,7 +9459,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -10781,7 +10781,7 @@ "syntaxKind": "PropertySignature", "name": "title", "value": "string", - "description": "Defines the full expansion of the abbreviation or acronym.\n\nHelps user agents and users understand the meaning of the abbreviated text.", + "description": "Defines the full expansion of the abbreviation or acronym, helping user agents and users understand the meaning of the abbreviated text. Learn more about the [abbreviation element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr).", "isOptional": true, "defaultValue": "''" }, @@ -10851,23 +10851,21 @@ "syntaxKind": "TypeAliasDeclaration", "name": "ToggleState", "value": "'open' | 'closed'", - "description": "", - "isPublicDocs": true + "description": "The visibility state of a toggleable element.\n\n- `open`: The element is visible and showing its content.\n- `closed`: The element is hidden and its content is not visible." } }, "ToggleArgumentsEvent": { "src/surfaces/checkout/components/Announcement.ts": { "filePath": "src/surfaces/checkout/components/Announcement.ts", "name": "ToggleArgumentsEvent", - "description": "", - "isPublicDocs": true, + "description": "The event data provided to toggle-related callbacks. Contains the previous and next visibility states of the element.", "members": [ { "filePath": "src/surfaces/checkout/components/Announcement.ts", "syntaxKind": "PropertySignature", "name": "newState", "value": "ToggleState", - "description": "", + "description": "The visibility state of the element after the toggle occurred.", "isOptional": true }, { @@ -10875,11 +10873,11 @@ "syntaxKind": "PropertySignature", "name": "oldState", "value": "ToggleState", - "description": "", + "description": "The visibility state of the element before the toggle occurred.", "isOptional": true } ], - "value": "export interface ToggleArgumentsEvent {\n oldState?: ToggleState;\n newState?: ToggleState;\n}" + "value": "export interface ToggleArgumentsEvent {\n /**\n * The visibility state of the element before the toggle occurred.\n */\n oldState?: ToggleState;\n /**\n * The visibility state of the element after the toggle occurred.\n */\n newState?: ToggleState;\n}" } }, "AnnouncementEvents": { @@ -10894,7 +10892,7 @@ "syntaxKind": "PropertySignature", "name": "onAfterToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true }, { @@ -10910,7 +10908,7 @@ "syntaxKind": "PropertySignature", "name": "onToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [toggle event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), and the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true } ], @@ -10921,7 +10919,7 @@ "src/surfaces/checkout/components/Announcement.ts": { "filePath": "src/surfaces/checkout/components/Announcement.ts", "name": "AnnouncementElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -10929,7 +10927,7 @@ "syntaxKind": "PropertySignature", "name": "aftertoggle", "value": "CallbackEventListener", - "description": "Callback fired when the element state changes **after** any animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.", + "description": "A callback that fires when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", "isOptional": true }, { @@ -10937,7 +10935,7 @@ "syntaxKind": "PropertySignature", "name": "dismiss", "value": "CallbackEventListener", - "description": "Callback fired when the announcement is dismissed by the user (either via the built-in dismiss button or programmatically).", + "description": "A callback that fires when the announcement is dismissed by the user clicking the close button or by calling the `dismiss()` method programmatically.", "isOptional": true }, { @@ -10945,11 +10943,11 @@ "syntaxKind": "PropertySignature", "name": "toggle", "value": "CallbackEventListener", - "description": "Callback straight after the element state changes.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the `newState` will be `closed`.", + "description": "A callback that fires immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", "isOptional": true } ], - "value": "export interface AnnouncementElementEvents {\n /**\n * Callback fired when the element state changes **after** any animations have finished.\n *\n * - If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState\n */\n aftertoggle?: CallbackEventListener;\n /**\n * Callback fired when the announcement is dismissed by the user\n * (either via the built-in dismiss button or programmatically).\n */\n dismiss?: CallbackEventListener;\n /**\n * Callback straight after the element state changes.\n *\n * - If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState\n */\n toggle?: CallbackEventListener;\n}" + "value": "export interface AnnouncementElementEvents {\n /**\n * A callback that fires when the element state changes, after any toggle animations have finished.\n *\n * - If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * Learn more about [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).\n */\n aftertoggle?: CallbackEventListener;\n /**\n * A callback that fires when the announcement is dismissed by the user clicking the close button or by calling the `dismiss()` method programmatically.\n */\n dismiss?: CallbackEventListener;\n /**\n * A callback that fires immediately when the element state changes, before any animations.\n *\n * - If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * Learn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).\n */\n toggle?: CallbackEventListener;\n}" } }, "AnnouncementElement": { @@ -11608,7 +11606,7 @@ "syntaxKind": "PropertySignature", "name": "dismiss", "value": "() => void", - "description": "" + "description": "Programmatically dismisses the announcement. This triggers the `dismiss` event callback." }, { "filePath": "src/surfaces/checkout/components/Announcement.ts", @@ -13267,7 +13265,7 @@ "syntaxKind": "PropertySignature", "name": "onAfterToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true }, { @@ -13283,7 +13281,7 @@ "syntaxKind": "PropertySignature", "name": "onToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [toggle event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), and the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true } ], @@ -13302,17 +13300,17 @@ "syntaxKind": "PropertySignature", "name": "dismiss", "value": "() => void", - "description": "" + "description": "Programmatically dismisses the announcement. This triggers the `dismiss` event callback." } ], - "value": "export interface AnnouncementMethods {\n dismiss: () => void;\n}" + "value": "export interface AnnouncementMethods {\n /**\n * Programmatically dismisses the announcement. This triggers the `dismiss` event callback.\n */\n dismiss: () => void;\n}" } }, "AnnouncementElementMethods": { "src/surfaces/checkout/components/Announcement.ts": { "filePath": "src/surfaces/checkout/components/Announcement.ts", "name": "AnnouncementElementMethods", - "description": "Learn more about [component methods](/docs/api/checkout-ui-extensions/latest/using-polaris-components#methods).", + "description": "", "isPublicDocs": true, "members": [ { @@ -13320,10 +13318,10 @@ "syntaxKind": "PropertySignature", "name": "dismiss", "value": "() => void", - "description": "" + "description": "Programmatically dismisses the announcement. This triggers the `dismiss` event callback." } ], - "value": "export interface AnnouncementElementMethods {\n dismiss: AnnouncementMethods['dismiss'];\n}" + "value": "export interface AnnouncementElementMethods {\n /**\n * Programmatically dismisses the announcement. This triggers the `dismiss` event callback.\n */\n dismiss: AnnouncementMethods['dismiss'];\n}" } }, "ReducedIconTypes": { @@ -13332,7 +13330,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "ReducedIconTypes", "value": "'cart' | 'note' | 'settings' | 'reset' | 'map' | 'menu' | 'search' | 'circle' | 'filter' | 'image' | 'alert-circle' | 'alert-triangle-filled' | 'alert-triangle' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up-right' | 'arrow-up' | 'bag' | 'bullet' | 'calendar' | 'camera' | 'caret-down' | 'cash-dollar' | 'categories' | 'check-circle' | 'check' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'clipboard' | 'clock' | 'credit-card' | 'delete' | 'delivered' | 'delivery' | 'disabled' | 'discount' | 'edit' | 'email' | 'empty' | 'external' | 'geolocation' | 'gift-card' | 'globe' | 'grid' | 'info-filled' | 'info' | 'list-bulleted' | 'location' | 'lock' | 'menu-horizontal' | 'menu-vertical' | 'minus' | 'mobile' | 'order' | 'organization' | 'plus' | 'profile' | 'question-circle-filled' | 'question-circle' | 'reorder' | 'return' | 'savings' | 'star-filled' | 'star-half' | 'star' | 'store' | 'truck' | 'upload' | 'x-circle-filled' | 'x-circle' | 'x'", - "description": "", + "description": "The subset of icon types available in checkout and customer account surfaces. This is a narrowed set from the full Shopify icon library, containing only the icons supported in these contexts.", "isPublicDocs": true } }, @@ -13340,7 +13338,7 @@ "src/surfaces/checkout/components/Badge.ts": { "filePath": "src/surfaces/checkout/components/Badge.ts", "name": "BadgeProps", - "description": "The badge component displays status information or indicates completed actions through compact visual indicators. Use badge to communicate object states, order statuses, or system-generated classifications that help users quickly understand item conditions.\n\nBadges support multiple tones and sizes, with optional icons to reinforce status meaning and improve scannability in lists and tables. For user-created labels, categories, or tags, use [chip](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/typography-and-content/chip) instead.", + "description": "", "isPublicDocs": true, "members": [ { @@ -13348,7 +13346,7 @@ "syntaxKind": "PropertySignature", "name": "color", "value": "'base' | 'subdued'", - "description": "Modify the color to be more or less intense.", + "description": "Controls the visual weight and emphasis of the badge.\n\n- `base`: Standard weight with moderate emphasis, suitable for most use cases.\n- `subdued`: Reduced visual weight for less prominent or secondary badges.", "isOptional": true, "defaultValue": "'base'" }, @@ -13357,7 +13355,7 @@ "syntaxKind": "PropertySignature", "name": "icon", "value": "'' | ReducedIconTypes", - "description": "The type of icon to be displayed in the badge.", + "description": "An icon displayed inside the badge to provide additional visual context or reinforce the badge's meaning. Set to an empty string to display no icon.", "isOptional": true, "defaultValue": "''" }, @@ -13366,7 +13364,7 @@ "syntaxKind": "PropertySignature", "name": "iconPosition", "value": "'start' | 'end'", - "description": "The position of the icon in relation to the text.", + "description": "The position of the icon relative to the badge text.\n\n- `start`: Places the icon before the text.\n- `end`: Places the icon after the text.", "isOptional": true }, { @@ -13374,7 +13372,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -13382,7 +13380,7 @@ "syntaxKind": "PropertySignature", "name": "size", "value": "'small' | 'base' | 'small-100'", - "description": "Adjusts the size.", + "description": "The size of the badge.\n\n- `base`: The default size, suitable for most use cases.\n- `small`: A smaller badge for compact layouts.\n- `small-100`: The smallest badge for tight spaces or dense lists.", "isOptional": true, "defaultValue": "'base'" }, @@ -13391,12 +13389,12 @@ "syntaxKind": "PropertySignature", "name": "tone", "value": "'auto' | 'neutral' | 'critical'", - "description": "Sets the tone of the Badge, based on the intention of the information being conveyed.", + "description": "The semantic meaning and color treatment of the badge.\n\n- `auto`: Automatically determined based on context.\n- `neutral`: General information without specific intent.\n- `critical`: Urgent problems or destructive actions.", "isOptional": true, "defaultValue": "'auto'" } ], - "value": "export interface BadgeProps extends Pick {\n size?: Extract;\n tone?: Extract;\n color?: Extract;\n icon?: '' | ReducedIconTypes;\n}" + "value": "export interface BadgeProps extends Pick {\n /**\n * The size of the badge.\n *\n * - `base`: The default size, suitable for most use cases.\n * - `small`: A smaller badge for compact layouts.\n * - `small-100`: The smallest badge for tight spaces or dense lists.\n *\n * @default 'base'\n */\n size?: Extract;\n /**\n * The semantic meaning and color treatment of the badge.\n *\n * - `auto`: Automatically determined based on context.\n * - `neutral`: General information without specific intent.\n * - `critical`: Urgent problems or destructive actions.\n *\n * @default 'auto'\n */\n tone?: Extract;\n /**\n * Controls the visual weight and emphasis of the badge.\n *\n * - `base`: Standard weight with moderate emphasis, suitable for most use cases.\n * - `subdued`: Reduced visual weight for less prominent or secondary badges.\n *\n * @default 'base'\n */\n color?: Extract;\n /**\n * An icon displayed inside the badge to provide additional visual context or reinforce the badge's meaning. Set to an empty string to display no icon.\n *\n * @default ''\n */\n icon?: '' | ReducedIconTypes;\n /**\n * The position of the icon relative to the badge text.\n *\n * - `start`: Places the icon before the text.\n * - `end`: Places the icon after the text.\n */\n iconPosition?: BadgeProps$1['iconPosition'];\n}" } }, "BadgeElement": { @@ -13999,7 +13997,7 @@ "syntaxKind": "PropertySignature", "name": "color", "value": "'base' | 'subdued'", - "description": "Modify the color to be more or less intense.", + "description": "Controls the visual weight and emphasis of the badge.\n\n- `base`: Standard weight with moderate emphasis, suitable for most use cases.\n- `subdued`: Reduced visual weight for less prominent or secondary badges.", "isOptional": true, "defaultValue": "'base'" }, @@ -14331,15 +14329,16 @@ "syntaxKind": "PropertySignature", "name": "icon", "value": "'' | ReducedIconTypes", - "description": "The type of icon to be displayed in the badge.", - "isOptional": true + "description": "An icon displayed inside the badge to provide additional visual context or reinforce the badge's meaning. Set to an empty string to display no icon.", + "isOptional": true, + "defaultValue": "''" }, { "filePath": "src/surfaces/checkout/components/Badge.ts", "syntaxKind": "PropertySignature", "name": "iconPosition", "value": "'start' | 'end'", - "description": "The position of the icon in relation to the text.", + "description": "The position of the icon relative to the badge text.\n\n- `start`: Places the icon before the text.\n- `end`: Places the icon after the text.", "isOptional": true }, { @@ -14347,7 +14346,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -15620,7 +15619,7 @@ "syntaxKind": "PropertySignature", "name": "size", "value": "'small' | 'base' | 'small-100'", - "description": "Adjusts the size.", + "description": "The size of the badge.\n\n- `base`: The default size, suitable for most use cases.\n- `small`: A smaller badge for compact layouts.\n- `small-100`: The smallest badge for tight spaces or dense lists.", "isOptional": true, "defaultValue": "'base'" }, @@ -15699,7 +15698,7 @@ "syntaxKind": "PropertySignature", "name": "tone", "value": "'auto' | 'neutral' | 'critical'", - "description": "Sets the tone of the Badge, based on the intention of the information being conveyed.", + "description": "The semantic meaning and color treatment of the badge.\n\n- `auto`: Automatically determined based on context.\n- `neutral`: General information without specific intent.\n- `critical`: Urgent problems or destructive actions.", "isOptional": true, "defaultValue": "'auto'" }, @@ -15733,7 +15732,7 @@ "src/surfaces/checkout/components/Banner.ts": { "filePath": "src/surfaces/checkout/components/Banner.ts", "name": "BannerElementProps", - "description": "The banner component highlights important information or required actions prominently within the interface. Use banner to communicate statuses, provide feedback, draw attention to critical updates, or guide users toward necessary actions.\n\nBanners support multiple tones to convey urgency levels, optional actions for next steps, and can be positioned contextually within sections or page-wide at the top. For inline status indicators on individual items, use [badge](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/feedback-and-status-indicators/badge).", + "description": "", "isPublicDocs": true, "members": [ { @@ -15741,7 +15740,7 @@ "syntaxKind": "PropertySignature", "name": "collapsible", "value": "boolean", - "description": "Makes the content collapsible. A collapsible banner will conceal child elements initially, but allow the user to expand the banner to see them.", + "description": "Whether the banner content can be collapsed and expanded by the user. A collapsible banner conceals child elements initially, allowing the user to expand the banner to reveal them.", "isOptional": true, "defaultValue": "false" }, @@ -15750,7 +15749,7 @@ "syntaxKind": "PropertySignature", "name": "dismissible", "value": "boolean", - "description": "Determines whether the close button of the banner is present.\n\nWhen the close button is pressed, the `dismiss` event will fire, then `hidden` will be true, any animation will complete, and the `afterhide` event will fire.", + "description": "Whether the banner displays a close button that allows users to dismiss it.\n\nWhen the close button is pressed, the `dismiss` event will fire, then `hidden` will be set to `true`, any animation will complete, and the `afterhide` event will fire.", "isOptional": true, "defaultValue": "false" }, @@ -15759,7 +15758,7 @@ "syntaxKind": "PropertySignature", "name": "heading", "value": "string", - "description": "The title of the banner.", + "description": "The heading text displayed at the top of the banner to summarize the message or alert.", "isOptional": true, "defaultValue": "''" }, @@ -15768,7 +15767,7 @@ "syntaxKind": "PropertySignature", "name": "hidden", "value": "boolean", - "description": "Determines whether the banner is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the banner is `dismissible`, ensure you update app state for this property when the `dismiss` event fires.\n\nIf the banner is not `dismissible`, it can still be hidden by setting this property.", + "description": "Controls whether the banner is visible or hidden.\n\nWhen using a controlled component pattern and the banner is `dismissible`, update this property to `true` when the `dismiss` event fires.\n\nYou can hide the banner programmatically by setting this to `true` even if it's not `dismissible`.", "isOptional": true, "defaultValue": "false" }, @@ -15777,7 +15776,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -15785,12 +15784,12 @@ "syntaxKind": "PropertySignature", "name": "tone", "value": "'success' | 'info' | 'auto' | 'warning' | 'critical'", - "description": "Sets the tone of the Banner, based on the intention of the information being conveyed.\n\nThe banner is a live region and the type of status will be dictated by the Tone selected.\n\n- `critical` creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately.\n- `neutral`, `info`, `success`, `warning` and `caution` creates an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.", + "description": "The semantic meaning and color treatment of the component. The banner is a live region and the type of status is dictated by the tone selected.\n\n- `info`: Informational content or helpful tips.\n- `auto`: Automatically determined based on context.\n- `success`: Positive outcomes or successful states.\n- `warning`: Important warnings about potential issues.\n- `critical`: Urgent problems or destructive actions.\n\nThe `critical` tone creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately. The `info`, `success`, and `warning` tones create an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.", "isOptional": true, "defaultValue": "'auto'" } ], - "value": "export interface BannerElementProps extends Pick {\n tone?: Extract;\n}" + "value": "export interface BannerElementProps extends Pick {\n /**\n * Whether the banner content can be collapsed and expanded by the user. A collapsible banner conceals child elements initially, allowing the user to expand the banner to reveal them.\n *\n * @default false\n */\n collapsible?: BannerProps$1['collapsible'];\n /**\n * Whether the banner displays a close button that allows users to dismiss it.\n *\n * When the close button is pressed, the `dismiss` event will fire,\n * then `hidden` will be set to `true`,\n * any animation will complete,\n * and the `afterhide` event will fire.\n *\n * @default false\n */\n dismissible?: BannerProps$1['dismissible'];\n /**\n * The heading text displayed at the top of the banner to summarize the message or alert.\n *\n * @default ''\n */\n heading?: BannerProps$1['heading'];\n /**\n * Controls whether the banner is visible or hidden.\n *\n * When using a controlled component pattern and the banner is `dismissible`,\n * update this property to `true` when the `dismiss` event fires.\n *\n * You can hide the banner programmatically by setting this to `true` even if it's not `dismissible`.\n *\n * @default false\n */\n hidden?: BannerProps$1['hidden'];\n /**\n * The semantic meaning and color treatment of the component. The banner is a live region and the type of status is dictated by the tone selected.\n *\n * - `info`: Informational content or helpful tips.\n * - `auto`: Automatically determined based on context.\n * - `success`: Positive outcomes or successful states.\n * - `warning`: Important warnings about potential issues.\n * - `critical`: Urgent problems or destructive actions.\n *\n * The `critical` tone creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately. The `info`, `success`, and `warning` tones create an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.\n *\n * @default 'auto'\n */\n tone?: Extract;\n}" } }, "BannerEvents": { @@ -15824,7 +15823,7 @@ "src/surfaces/checkout/components/Banner.ts": { "filePath": "src/surfaces/checkout/components/Banner.ts", "name": "BannerElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -15832,7 +15831,7 @@ "syntaxKind": "PropertySignature", "name": "afterhide", "value": "CallbackEventListener", - "description": "Event handler when the banner has fully hidden.\n\nThe `hidden` property will be `true` when this event fires.", + "description": "A callback that fires when the banner has fully hidden, including after any hide animations have completed.\n\nThe `hidden` property is `true` when this event fires.", "isOptional": true }, { @@ -15840,11 +15839,11 @@ "syntaxKind": "PropertySignature", "name": "dismiss", "value": "CallbackEventListener", - "description": "Event handler when the banner is dismissed by the user.\n\nThis does not fire when setting `hidden` manually.\n\nThe `hidden` property will be `false` when this event fires.", + "description": "A callback that fires when the banner is dismissed by the user clicking the close button.\n\nThis doesn't fire when setting `hidden` manually.\n\nThe `hidden` property is `false` when this event fires.", "isOptional": true } ], - "value": "export interface BannerElementEvents {\n /**\n * Event handler when the banner has fully hidden.\n *\n * The `hidden` property will be `true` when this event fires.\n *\n * @implementation If implementations animate the hiding of the banner,\n * this event must fire after the banner has fully hidden.\n * We can add an `onHide` event in future if we want to provide a hook for the start of the animation.\n */\n afterhide?: CallbackEventListener;\n /**\n * Event handler when the banner is dismissed by the user.\n *\n * This does not fire when setting `hidden` manually.\n *\n * The `hidden` property will be `false` when this event fires.\n */\n dismiss?: CallbackEventListener;\n}" + "value": "export interface BannerElementEvents {\n /**\n * A callback that fires when the banner has fully hidden, including after any hide animations have completed.\n *\n * The `hidden` property is `true` when this event fires.\n */\n afterhide?: CallbackEventListener;\n /**\n * A callback that fires when the banner is dismissed by the user clicking the close button.\n *\n * This doesn't fire when setting `hidden` manually.\n *\n * The `hidden` property is `false` when this event fires.\n */\n dismiss?: CallbackEventListener;\n}" } }, "BannerElement": { @@ -16447,7 +16446,7 @@ "syntaxKind": "PropertySignature", "name": "collapsible", "value": "boolean", - "description": "Makes the content collapsible. A collapsible banner will conceal child elements initially, but allow the user to expand the banner to see them.", + "description": "Whether the banner content can be collapsed and expanded by the user. A collapsible banner conceals child elements initially, allowing the user to expand the banner to reveal them.", "isOptional": true, "defaultValue": "false" }, @@ -16512,7 +16511,7 @@ "syntaxKind": "PropertySignature", "name": "dismissible", "value": "boolean", - "description": "Determines whether the close button of the banner is present.\n\nWhen the close button is pressed, the `dismiss` event will fire, then `hidden` will be true, any animation will complete, and the `afterhide` event will fire.", + "description": "Whether the banner displays a close button that allows users to dismiss it.\n\nWhen the close button is pressed, the `dismiss` event will fire, then `hidden` will be set to `true`, any animation will complete, and the `afterhide` event will fire.", "isOptional": true, "defaultValue": "false" }, @@ -16774,7 +16773,7 @@ "syntaxKind": "PropertySignature", "name": "heading", "value": "string", - "description": "The title of the banner.", + "description": "The heading text displayed at the top of the banner to summarize the message or alert.", "isOptional": true, "defaultValue": "''" }, @@ -16783,7 +16782,7 @@ "syntaxKind": "PropertySignature", "name": "hidden", "value": "boolean", - "description": "Determines whether the banner is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the banner is `dismissible`, ensure you update app state for this property when the `dismiss` event fires.\n\nIf the banner is not `dismissible`, it can still be hidden by setting this property.", + "description": "Controls whether the banner is visible or hidden.\n\nWhen using a controlled component pattern and the banner is `dismissible`, update this property to `true` when the `dismiss` event fires.\n\nYou can hide the banner programmatically by setting this to `true` even if it's not `dismissible`.", "isOptional": true, "defaultValue": "false" }, @@ -16799,7 +16798,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -18149,7 +18148,7 @@ "syntaxKind": "PropertySignature", "name": "tone", "value": "'success' | 'info' | 'auto' | 'warning' | 'critical'", - "description": "Sets the tone of the Banner, based on the intention of the information being conveyed.\n\nThe banner is a live region and the type of status will be dictated by the Tone selected.\n\n- `critical` creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately.\n- `neutral`, `info`, `success`, `warning` and `caution` creates an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.", + "description": "The semantic meaning and color treatment of the component. The banner is a live region and the type of status is dictated by the tone selected.\n\n- `info`: Informational content or helpful tips.\n- `auto`: Automatically determined based on context.\n- `success`: Positive outcomes or successful states.\n- `warning`: Important warnings about potential issues.\n- `critical`: Urgent problems or destructive actions.\n\nThe `critical` tone creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately. The `info`, `success`, and `warning` tones create an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.", "isOptional": true, "defaultValue": "'auto'" }, @@ -18191,7 +18190,7 @@ "syntaxKind": "PropertySignature", "name": "collapsible", "value": "boolean", - "description": "Makes the content collapsible. A collapsible banner will conceal child elements initially, but allow the user to expand the banner to see them.", + "description": "Whether the banner content can be collapsed and expanded by the user. A collapsible banner conceals child elements initially, allowing the user to expand the banner to reveal them.", "isOptional": true, "defaultValue": "false" }, @@ -18200,7 +18199,7 @@ "syntaxKind": "PropertySignature", "name": "dismissible", "value": "boolean", - "description": "Determines whether the close button of the banner is present.\n\nWhen the close button is pressed, the `dismiss` event will fire, then `hidden` will be true, any animation will complete, and the `afterhide` event will fire.", + "description": "Whether the banner displays a close button that allows users to dismiss it.\n\nWhen the close button is pressed, the `dismiss` event will fire, then `hidden` will be set to `true`, any animation will complete, and the `afterhide` event will fire.", "isOptional": true, "defaultValue": "false" }, @@ -18209,7 +18208,7 @@ "syntaxKind": "PropertySignature", "name": "heading", "value": "string", - "description": "The title of the banner.", + "description": "The heading text displayed at the top of the banner to summarize the message or alert.", "isOptional": true, "defaultValue": "''" }, @@ -18218,7 +18217,7 @@ "syntaxKind": "PropertySignature", "name": "hidden", "value": "boolean", - "description": "Determines whether the banner is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the banner is `dismissible`, ensure you update app state for this property when the `dismiss` event fires.\n\nIf the banner is not `dismissible`, it can still be hidden by setting this property.", + "description": "Controls whether the banner is visible or hidden.\n\nWhen using a controlled component pattern and the banner is `dismissible`, update this property to `true` when the `dismiss` event fires.\n\nYou can hide the banner programmatically by setting this to `true` even if it's not `dismissible`.", "isOptional": true, "defaultValue": "false" }, @@ -18227,7 +18226,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -18251,7 +18250,7 @@ "syntaxKind": "PropertySignature", "name": "tone", "value": "'success' | 'info' | 'auto' | 'warning' | 'critical'", - "description": "Sets the tone of the Banner, based on the intention of the information being conveyed.\n\nThe banner is a live region and the type of status will be dictated by the Tone selected.\n\n- `critical` creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately.\n- `neutral`, `info`, `success`, `warning` and `caution` creates an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.", + "description": "The semantic meaning and color treatment of the component. The banner is a live region and the type of status is dictated by the tone selected.\n\n- `info`: Informational content or helpful tips.\n- `auto`: Automatically determined based on context.\n- `success`: Positive outcomes or successful states.\n- `warning`: Important warnings about potential issues.\n- `critical`: Urgent problems or destructive actions.\n\nThe `critical` tone creates an [assertive live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role) that is announced by screen readers immediately. The `info`, `success`, and `warning` tones create an [informative live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/status_role) that is announced by screen readers after the current message.", "isOptional": true, "defaultValue": "'auto'" } @@ -18285,7 +18284,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "BorderShorthand", "value": "ReducedBorderSizeKeyword | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword}` | `${ReducedBorderSizeKeyword} ${ReducedColorKeyword} ${BorderStyleKeyword}`", - "description": "", + "description": "A shorthand string for specifying border properties. Accepts a size alone (`'base'`), size with color (`'base base'`), or size with color and style (`'base base dashed'`). Omitted values use their defaults.", "isPublicDocs": true } }, @@ -18303,7 +18302,7 @@ "src/surfaces/checkout/components/Box.ts": { "filePath": "src/surfaces/checkout/components/Box.ts", "name": "BoxProps", - "description": "The box component provides a generic, flexible container for custom designs and layouts. Use box to apply styling like backgrounds, padding, borders, or border radius when existing components don't meet your needs, or to nest and group other components.\n\nBox contents maintain their natural size, making it especially useful within layout components that would otherwise stretch their children. For structured layouts, use [stack](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/layout-and-structure/stack) or [grid](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/layout-and-structure/grid).", + "description": "", "isPublicDocs": true, "members": [ { @@ -18328,7 +18327,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -18337,7 +18336,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the box.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -18355,9 +18354,9 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.", "isOptional": true, - "defaultValue": "'none' - equivalent to `none base auto`.", + "defaultValue": "'none'", "examples": [ { "title": "Example", @@ -18376,7 +18375,7 @@ "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the box's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -18394,7 +18393,7 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -18403,7 +18402,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -18412,7 +18411,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -18533,7 +18532,7 @@ "defaultValue": "'' - meaning no override" } ], - "value": "export interface BoxProps extends Pick {\n background?: Extract;\n border?: BorderShorthand;\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n borderRadius?: MaybeAllValuesShorthandProperty>;\n}" + "value": "export interface BoxProps extends Pick {\n /**\n * The background color of the box.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The roundedness of the box's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n}" } }, "AccessibilityRole": { @@ -18542,7 +18541,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "AccessibilityRole", "value": "\"main\" | \"header\" | \"footer\" | \"section\" | \"aside\" | \"navigation\" | \"ordered-list\" | \"list-item\" | \"list-item-separator\" | \"unordered-list\" | \"separator\" | \"status\" | \"alert\" | \"generic\" | \"presentation\" | \"none\"", - "description": "", + "description": "The semantic role of a component, used by assistive technologies to convey the element’s purpose to users. Each role maps to a specific HTML element or ARIA role.\n\n- `main`: The primary content of the page.\n- `header`: A page or section header.\n- `footer`: Information such as copyright, navigation links, and privacy statements.\n- `section`: A generic section that should have a heading or `accessibilityLabel`.\n- `aside`: Supporting content related to the main content.\n- `navigation`: A major group of navigation links.\n- `ordered-list`: A list of ordered items.\n- `list-item`: An item inside a list.\n- `list-item-separator`: A divider between list items.\n- `unordered-list`: A list of unordered items.\n- `separator`: A divider that separates sections of content.\n- `status`: A live region with advisory information that is not urgent.\n- `alert`: Important, usually time-sensitive information.\n- `generic`: A nameless container with no semantic meaning (renders a `
`).\n- `presentation`: Strips semantic meaning while keeping visual styling. Synonym for `none`.\n- `none`: Strips semantic meaning while keeping visual styling. Synonym for `presentation`.", "isPublicDocs": true } }, @@ -18655,7 +18654,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -19133,7 +19132,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the box.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -19172,15 +19171,16 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", - "isOptional": true + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'" }, { "filePath": "src/surfaces/checkout/components/Box.ts", "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the box's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -19198,8 +19198,9 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", - "isOptional": true + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/Box.ts", @@ -19367,7 +19368,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -19636,7 +19637,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -21121,7 +21122,7 @@ "src/surfaces/checkout/components/Button.ts": { "filePath": "src/surfaces/checkout/components/Button.ts", "name": "ButtonElementProps", - "description": "The button component triggers actions or events, such as submitting forms, opening dialogs, or navigating to other pages. Use buttons to let users perform specific tasks or initiate interactions throughout the interface.\n\nButtons support various visual styles, tones, and interaction patterns to communicate intent and hierarchy. They can also function as links, guiding users to internal or external destinations. For navigation-focused interactions within text, use [link](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/actions/link). For grouping multiple related buttons, use [button group](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/actions/button-group).", + "description": "", "isPublicDocs": true, "members": [ { @@ -21137,7 +21138,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -21146,7 +21147,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -21171,7 +21172,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -21223,7 +21224,7 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'submit' | 'button'", - "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the closest form when the component acts as a submit button.\n- `button`: Performs no default action when the component acts as a generic button.\n- `reset`: Resets the closest form (returning fields to their default values) when the component acts as a reset button.\n\nThis property is ignored if the component supports `href` or `commandFor`/`command` and one of them is set.", + "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", "isOptional": true, "defaultValue": "'button'" }, @@ -21237,7 +21238,7 @@ "defaultValue": "'auto'" } ], - "value": "export interface ButtonElementProps extends Pick {\n target?: Extract;\n tone?: Extract;\n type?: Extract;\n variant?: Extract;\n}" + "value": "export interface ButtonElementProps extends Pick {\n target?: Extract;\n tone?: Extract;\n /**\n * The behavioral type of the button component, which determines what action it performs when activated.\n *\n * - `submit`: Submits the nearest containing form.\n * - `button`: Performs no default action, relying on the `click` event handler for behavior.\n *\n * This property is ignored if `href` or `commandFor`/`command` is set.\n *\n * @default 'button'\n */\n type?: Extract;\n variant?: Extract;\n}" } }, "ButtonEvents": { @@ -21263,7 +21264,7 @@ "src/surfaces/checkout/components/Button.ts": { "filePath": "src/surfaces/checkout/components/Button.ts", "name": "ButtonElementEvents", - "description": "The button component provides event callbacks for handling user interactions. Learn more about [handling events](/docs/api/polaris/using-polaris-web-components#handling-events).", + "description": "", "isPublicDocs": true, "members": [ { @@ -21886,7 +21887,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -21895,7 +21896,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -22243,7 +22244,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -23637,7 +23638,7 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'submit' | 'button'", - "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the closest form when the component acts as a submit button.\n- `button`: Performs no default action when the component acts as a generic button.\n- `reset`: Resets the closest form (returning fields to their default values) when the component acts as a reset button.\n\nThis property is ignored if the component supports `href` or `commandFor`/`command` and one of them is set.", + "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", "isOptional": true, "defaultValue": "'button'" }, @@ -23689,7 +23690,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -23698,7 +23699,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -23723,7 +23724,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -23783,7 +23784,7 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'submit' | 'button'", - "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the closest form when the component acts as a submit button.\n- `button`: Performs no default action when the component acts as a generic button.\n- `reset`: Resets the closest form (returning fields to their default values) when the component acts as a reset button.\n\nThis property is ignored if the component supports `href` or `commandFor`/`command` and one of them is set.", + "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", "isOptional": true, "defaultValue": "'button'" }, @@ -23804,7 +23805,7 @@ "src/surfaces/checkout/components/Checkbox.ts": { "filePath": "src/surfaces/checkout/components/Checkbox.ts", "name": "CheckboxElementProps", - "description": "The checkbox component provides a clear way for users to make selections, such as agreeing to terms, enabling settings, or choosing multiple items from a list. Use checkbox to create binary on/off controls or multi-select interfaces where users can select any combination of options.\n\nCheckboxes support labels, help text, error states, and an indeterminate state for \"select all\" functionality when working with grouped selections. For settings that take effect immediately, use [switch](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/switch) instead.", + "description": "", "isPublicDocs": true, "members": [ { @@ -23820,7 +23821,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -23829,7 +23830,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -23838,7 +23839,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -23846,7 +23847,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -23855,7 +23856,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -23864,7 +23865,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -23872,7 +23873,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -23880,7 +23881,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The visual content to use as the control label. Use a string to provide a simple text label displayed to the user.\n\nIf a `label` slot is also provided, the slot content takes precedence. [Learn more about slots](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/checkbox#slots-propertydetail-label).", "isOptional": true }, { @@ -23888,7 +23889,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -23896,7 +23897,7 @@ "syntaxKind": "PropertySignature", "name": "required", "value": "boolean", - "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.\n\nAdds semantic meaning for accessibility. Doesn't trigger automatic validation or display an error. Implement validation logic yourself and use the `error` prop to show results.", "isOptional": true, "defaultValue": "false" }, @@ -23909,7 +23910,7 @@ "isOptional": true } ], - "value": "export interface CheckboxElementProps extends Pick {\n command?: Extract;\n}" + "value": "export interface CheckboxElementProps extends Pick {\n command?: Extract;\n /**\n * The visual content to use as the control label. Use a string to provide a simple text label displayed to the user.\n *\n * If a `label` slot is also provided, the slot content takes precedence. [Learn more about slots](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/checkbox#slots-propertydetail-label).\n */\n label?: string;\n}" } }, "CheckboxEvents": { @@ -23935,7 +23936,7 @@ "src/surfaces/checkout/components/Checkbox.ts": { "filePath": "src/surfaces/checkout/components/Checkbox.ts", "name": "CheckboxElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -23943,11 +23944,11 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "A callback that is run whenever the control is changed.", + "description": "A callback fired when the checkbox value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true } ], - "value": "export interface CheckboxElementEvents {\n /**\n * A callback that is run whenever the control is changed.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n}" + "value": "export interface CheckboxElementEvents {\n /**\n * A callback fired when the checkbox value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" } }, "CheckboxElement": { @@ -24467,7 +24468,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -24567,7 +24568,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -24576,7 +24577,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -24633,7 +24634,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -24649,7 +24650,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -24763,7 +24764,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -24933,7 +24934,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -25032,7 +25033,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The visual content to use as the control label. Use a string to provide a simple text label displayed to the user.\n\nIf a `label` slot is also provided, the slot content takes precedence. [Learn more about slots](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/checkbox#slots-propertydetail-label).", "isOptional": true }, { @@ -25089,7 +25090,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -26103,7 +26104,7 @@ "syntaxKind": "PropertySignature", "name": "required", "value": "boolean", - "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.\n\nAdds semantic meaning for accessibility. Doesn't trigger automatic validation or display an error. Implement validation logic yourself and use the `error` prop to show results.", "isOptional": true, "defaultValue": "false" }, @@ -26330,6 +26331,25 @@ "value": "export interface CheckboxElement extends CheckboxElementProps, Omit {\n onchange: CheckboxEvents['onChange'];\n}" } }, + "CheckboxElementSlots": { + "src/surfaces/checkout/components/Checkbox.ts": { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "name": "CheckboxElementSlots", + "description": "", + "isPublicDocs": true, + "members": [ + { + "filePath": "src/surfaces/checkout/components/Checkbox.ts", + "syntaxKind": "PropertySignature", + "name": "label", + "value": "HTMLElement", + "description": "The visual content to use as the control label.\n\nUse an `HTMLElement` as a rich control label composed of elements. Only an `s-text` element is supported with plain text and `s-link` as its only allowed children. Any other elements are stripped while preserving their text content.", + "isOptional": true + } + ], + "value": "export interface CheckboxElementSlots {\n /**\n * The visual content to use as the control label.\n *\n * Use an `HTMLElement` as a rich control label composed of elements. Only an `s-text` element is supported with plain text and `s-link` as its only allowed children. Any other elements are stripped while preserving their text content.\n */\n label?: HTMLElement;\n}" + } + }, "CheckboxProps": { "src/surfaces/checkout/components/Checkbox.ts": { "filePath": "src/surfaces/checkout/components/Checkbox.ts", @@ -26350,7 +26370,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -26359,7 +26379,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -26368,7 +26388,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -26376,7 +26396,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -26385,7 +26405,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -26394,7 +26414,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -26402,7 +26422,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -26410,7 +26430,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The visual content to use as the control label. Use a string to provide a simple text label displayed to the user.\n\nIf a `label` slot is also provided, the slot content takes precedence. [Learn more about slots](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/checkbox#slots-propertydetail-label).", "isOptional": true }, { @@ -26418,7 +26438,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -26434,7 +26454,7 @@ "syntaxKind": "PropertySignature", "name": "required", "value": "boolean", - "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.", + "description": "Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` property.\n\nAdds semantic meaning for accessibility. Doesn't trigger automatic validation or display an error. Implement validation logic yourself and use the `error` prop to show results.", "isOptional": true, "defaultValue": "false" }, @@ -26462,7 +26482,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose or contents of the chip. It will be read to users using assistive technologies such as screen readers.", + "description": "A label that describes the purpose or content of the component for assistive technologies like screen readers. Use this to provide additional context when the visible content alone doesn’t clearly convey the component’s purpose.", "isOptional": true }, { @@ -26470,7 +26490,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -26481,7 +26501,7 @@ "src/surfaces/checkout/components/Chip.ts": { "filePath": "src/surfaces/checkout/components/Chip.ts", "name": "ChipElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -26500,7 +26520,7 @@ "src/surfaces/checkout/components/Chip.ts": { "filePath": "src/surfaces/checkout/components/Chip.ts", "name": "ChipProps", - "description": "The chip component displays static labels, categories, or attributes that help classify and organize content. Use chip to show product tags, categories, or metadata near the items they describe, helping users identify items with similar properties.\n\nChips support multiple visual variants for different levels of emphasis and can include icons to provide additional visual context. For system-generated status indicators, use [badge](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/feedback-and-status-indicators/badge). For interactive or removable chips, use [clickable chip](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/actions/clickable-chip).", + "description": "", "isPublicDocs": true, "members": [ { @@ -26508,7 +26528,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose or contents of the chip. It will be read to users using assistive technologies such as screen readers.", + "description": "A label that describes the purpose or content of the component for assistive technologies like screen readers. Use this to provide additional context when the visible content alone doesn’t clearly convey the component’s purpose.", "isOptional": true }, { @@ -26516,7 +26536,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -26535,7 +26555,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose or contents of the chip. It will be read to users using assistive technologies such as screen readers.", + "description": "A label that describes the purpose or content of the component for assistive technologies like screen readers. Use this to provide additional context when the visible content alone doesn’t clearly convey the component’s purpose.", "isOptional": true }, { @@ -27454,7 +27474,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -28822,7 +28842,7 @@ "src/surfaces/checkout/components/Choice.ts": { "filePath": "src/surfaces/checkout/components/Choice.ts", "name": "ChoiceProps", - "description": "The choice component creates individual selectable options within a choice list. Use choice to define each option that merchants can select, supporting both single selection (radio buttons) and multiple selection (checkboxes) modes.\n\nChoice components support labels, help text, and custom content through slots, providing flexible option presentation within choice lists.", + "description": "", "isPublicDocs": true, "members": [ { @@ -28838,7 +28858,7 @@ "syntaxKind": "PropertySignature", "name": "defaultSelected", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is selected by default.", "isOptional": true, "defaultValue": "false" }, @@ -28847,7 +28867,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -28856,7 +28876,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "boolean", - "description": "Set to `true` to associate a choice with the error passed to `ChoiceList`", + "description": "Whether this choice is associated with the error state of the parent choice list. When `true`, the choice is visually marked as having an error.", "isOptional": true, "defaultValue": "false" }, @@ -28865,7 +28885,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -28873,7 +28893,7 @@ "syntaxKind": "PropertySignature", "name": "selected", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently selected.", "isOptional": true, "defaultValue": "false" }, @@ -28893,7 +28913,7 @@ "src/surfaces/checkout/components/Choice.ts": { "filePath": "src/surfaces/checkout/components/Choice.ts", "name": "ChoiceElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -29581,7 +29601,7 @@ "syntaxKind": "PropertySignature", "name": "defaultSelected", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is selected by default.", "isOptional": true, "defaultValue": "false" }, @@ -29597,7 +29617,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -29711,7 +29731,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "boolean", - "description": "Set to `true` to associate a choice with the error passed to `ChoiceList`", + "description": "Whether this choice is associated with the error state of the parent choice list. When `true`, the choice is visually marked as having an error.", "isOptional": true, "defaultValue": "false" }, @@ -29882,7 +29902,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -31099,7 +31119,7 @@ "syntaxKind": "PropertySignature", "name": "selected", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently selected.", "isOptional": true, "defaultValue": "false" }, @@ -31267,7 +31287,7 @@ "src/surfaces/checkout/components/ChoiceList.ts": { "filePath": "src/surfaces/checkout/components/ChoiceList.ts", "name": "ChoiceListElementProps", - "description": "The choice list component presents multiple options for single or multiple selections. Use it when merchants need to choose from a defined set of options, such as filtering results or collecting preferences.\n\nThe component supports both single selection (radio button behavior) and multiple selection (checkbox behavior) modes. It includes configurable labels, help text, and validation. For compact dropdown selection with four or more options, use [select](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/select).", + "description": "", "isPublicDocs": true, "members": [ { @@ -31275,7 +31295,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.\n\n`disabled` on any child choices is ignored when this is true.", + "description": "Whether the field is disabled, preventing any user interaction.\n\n`disabled` on any child choices is ignored when this is true.", "isOptional": true, "defaultValue": "false" }, @@ -31284,7 +31304,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -31292,7 +31312,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -31300,7 +31320,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -31308,7 +31328,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -31326,7 +31346,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -31334,7 +31354,7 @@ "syntaxKind": "PropertySignature", "name": "values", "value": "string[]", - "description": "An array of the `value`s of the selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.", + "description": "An array of `value` attributes for the currently selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.\n\nForm data captures the selected value strings only. Complex nested content inside choices is for display purposes and isn't included in form submissions.", "isOptional": true }, { @@ -31342,7 +31362,7 @@ "syntaxKind": "PropertySignature", "name": "variant", "value": "'auto' | 'list' | 'inline' | 'block' | 'grid'", - "description": "The variant of the choice grid.\n\n- `auto`: The variant is determined by the context.\n- `list`: The choices are displayed in a list.\n- `inline`: The choices are displayed on the inline axis.\n- `block`: The choices are displayed on the block axis.\n- `grid`: The choices are displayed in a grid.", + "description": "The variant of the choice grid.\n\n- `auto`: The variant is determined by the context.\n- `list`: The choices are displayed in a list.\n- `inline`: The choices are displayed on the inline axis.\n- `block`: The choices are displayed on the block axis.\n- `grid`: The choices are displayed in a grid.\n\nThe selected content slot is supported only in the default (stacked) variant. `inline` and `grid` ignore it.", "isOptional": true, "defaultValue": "'auto'" } @@ -31362,7 +31382,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has selected option(s).", + "description": "A callback fired when the user has selected one or more options.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true } ], @@ -31373,7 +31393,7 @@ "src/surfaces/checkout/components/ChoiceList.ts": { "filePath": "src/surfaces/checkout/components/ChoiceList.ts", "name": "ChoiceListElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -31381,11 +31401,11 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "A callback that is run whenever the control is changed.", + "description": "A callback fired when the choice list selection changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true } ], - "value": "export interface ChoiceListElementEvents {\n /**\n * A callback that is run whenever the control is changed.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n}" + "value": "export interface ChoiceListElementEvents {\n /**\n * A callback fired when the choice list selection changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" } }, "ChoiceListElement": { @@ -32044,7 +32064,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.\n\n`disabled` on any child choices is ignored when this is true.", + "description": "Whether the field is disabled, preventing any user interaction.\n\n`disabled` on any child choices is ignored when this is true.", "isOptional": true, "defaultValue": "false" }, @@ -32158,7 +32178,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -32328,7 +32348,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -32427,7 +32447,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -32435,7 +32455,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -32502,7 +32522,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -33712,7 +33732,7 @@ "syntaxKind": "PropertySignature", "name": "values", "value": "string[]", - "description": "An array of the `value`s of the selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.", + "description": "An array of `value` attributes for the currently selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.\n\nForm data captures the selected value strings only. Complex nested content inside choices is for display purposes and isn't included in form submissions.", "isOptional": true }, { @@ -33720,7 +33740,7 @@ "syntaxKind": "PropertySignature", "name": "variant", "value": "'auto' | 'list' | 'inline' | 'block' | 'grid'", - "description": "The variant of the choice grid.\n\n- `auto`: The variant is determined by the context.\n- `list`: The choices are displayed in a list.\n- `inline`: The choices are displayed on the inline axis.\n- `block`: The choices are displayed on the block axis.\n- `grid`: The choices are displayed in a grid.", + "description": "The variant of the choice grid.\n\n- `auto`: The variant is determined by the context.\n- `list`: The choices are displayed in a list.\n- `inline`: The choices are displayed on the inline axis.\n- `block`: The choices are displayed on the block axis.\n- `grid`: The choices are displayed in a grid.\n\nThe selected content slot is supported only in the default (stacked) variant. `inline` and `grid` ignore it.", "isOptional": true, "defaultValue": "'auto'" }, @@ -33755,7 +33775,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.\n\n`disabled` on any child choices is ignored when this is true.", + "description": "Whether the field is disabled, preventing any user interaction.\n\n`disabled` on any child choices is ignored when this is true.", "isOptional": true, "defaultValue": "false" }, @@ -33764,7 +33784,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -33772,7 +33792,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -33780,7 +33800,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -33788,7 +33808,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -33806,7 +33826,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -33814,7 +33834,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has selected option(s).", + "description": "A callback fired when the user has selected one or more options.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -33822,7 +33842,7 @@ "syntaxKind": "PropertySignature", "name": "values", "value": "string[]", - "description": "An array of the `value`s of the selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.", + "description": "An array of `value` attributes for the currently selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.\n\nForm data captures the selected value strings only. Complex nested content inside choices is for display purposes and isn't included in form submissions.", "isOptional": true }, { @@ -33830,7 +33850,7 @@ "syntaxKind": "PropertySignature", "name": "variant", "value": "'auto' | 'list' | 'inline' | 'block' | 'grid'", - "description": "The variant of the choice grid.\n\n- `auto`: The variant is determined by the context.\n- `list`: The choices are displayed in a list.\n- `inline`: The choices are displayed on the inline axis.\n- `block`: The choices are displayed on the block axis.\n- `grid`: The choices are displayed in a grid.", + "description": "The variant of the choice grid.\n\n- `auto`: The variant is determined by the context.\n- `list`: The choices are displayed in a list.\n- `inline`: The choices are displayed on the inline axis.\n- `block`: The choices are displayed on the block axis.\n- `grid`: The choices are displayed in a grid.\n\nThe selected content slot is supported only in the default (stacked) variant. `inline` and `grid` ignore it.", "isOptional": true, "defaultValue": "'auto'" } @@ -33842,7 +33862,7 @@ "src/surfaces/checkout/components/Clickable.ts": { "filePath": "src/surfaces/checkout/components/Clickable.ts", "name": "ClickableElementProps", - "description": "The clickable component wraps content to make it interactive and clickable. Use it when you need more styling control than [button](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/actions/button) or [link](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/actions/link) provide, such as custom backgrounds, padding, or borders around your clickable content.\n\nClickable supports button, link, and submit modes with built-in accessibility properties for keyboard navigation and screen reader support.", + "description": "", "isPublicDocs": true, "members": [ { @@ -33858,7 +33878,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -33933,7 +33953,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -33942,7 +33962,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -33959,7 +33979,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -33976,7 +33996,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -34136,12 +34156,12 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'submit' | 'button'", - "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the closest form when the component acts as a submit button.\n- `button`: Performs no default action when the component acts as a generic button.\n- `reset`: Resets the closest form (returning fields to their default values) when the component acts as a reset button.\n\nThis property is ignored if the component supports `href` or `commandFor`/`command` and one of them is set.", + "description": "The behavioral type of the clickable component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", "isOptional": true, "defaultValue": "'button'" } ], - "value": "export interface ClickableElementProps extends Pick {\n background?: Extract;\n border?: BorderShorthand;\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n borderRadius?: MaybeAllValuesShorthandProperty>;\n target?: Extract;\n type?: Extract;\n}" + "value": "export interface ClickableElementProps extends Pick {\n background?: Extract;\n border?: BorderShorthand;\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n borderRadius?: MaybeAllValuesShorthandProperty>;\n target?: Extract;\n /**\n * The behavioral type of the clickable component, which determines what action it performs when activated.\n *\n * - `submit`: Submits the nearest containing form.\n * - `button`: Performs no default action, relying on the `click` event handler for behavior.\n *\n * This property is ignored if `href` or `commandFor`/`command` is set.\n *\n * @default 'button'\n */\n type?: Extract;\n}" } }, "ClickableProps": { @@ -34164,7 +34184,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -34225,7 +34245,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -34234,7 +34254,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -34251,7 +34271,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -34268,7 +34288,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -34452,7 +34472,7 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'submit' | 'button'", - "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the closest form when the component acts as a submit button.\n- `button`: Performs no default action when the component acts as a generic button.\n- `reset`: Resets the closest form (returning fields to their default values) when the component acts as a reset button.\n\nThis property is ignored if the component supports `href` or `commandFor`/`command` and one of them is set.", + "description": "The behavioral type of the clickable component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", "isOptional": true, "defaultValue": "'button'" } @@ -34499,7 +34519,7 @@ "src/surfaces/checkout/components/Clickable.ts": { "filePath": "src/surfaces/checkout/components/Clickable.ts", "name": "ClickableElementEvents", - "description": "The clickable component provides event callbacks for handling user interactions. Learn more about [handling events](/docs/api/polaris/using-polaris-web-components#handling-events).", + "description": "", "isPublicDocs": true, "members": [ { @@ -34550,7 +34570,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -35199,7 +35219,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -35208,7 +35228,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -35288,7 +35308,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -35565,7 +35585,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -37060,7 +37080,7 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'submit' | 'button'", - "description": "The behavioral type of the button component, which determines what action it performs when activated.\n\n- `submit`: Submits the closest form when the component acts as a submit button.\n- `button`: Performs no default action when the component acts as a generic button.\n- `reset`: Resets the closest form (returning fields to their default values) when the component acts as a reset button.\n\nThis property is ignored if the component supports `href` or `commandFor`/`command` and one of them is set.", + "description": "The behavioral type of the clickable component, which determines what action it performs when activated.\n\n- `submit`: Submits the nearest containing form.\n- `button`: Performs no default action, relying on the `click` event handler for behavior.\n\nThis property is ignored if `href` or `commandFor`/`command` is set.", "isOptional": true, "defaultValue": "'button'" }, @@ -37087,7 +37107,7 @@ "src/surfaces/checkout/components/ClickableChip.ts": { "filePath": "src/surfaces/checkout/components/ClickableChip.ts", "name": "ClickableChipElementProps", - "description": "The clickable chip component displays interactive labels or categories that users can click or remove. Use clickable chip to show filter tags, selected options, or merchant-created labels that users need to interact with or dismiss.\n\nClickable chips support multiple visual variants, optional icons, and can function as both clickable buttons and removable tags for flexible interaction patterns. For non-interactive labels, use [chip](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/typography-and-content/chip).", + "description": "", "isPublicDocs": true, "members": [ { @@ -37095,7 +37115,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose or contents of the chip. It will be read to users using assistive technologies such as screen readers.", + "description": "A label that describes the purpose or content of the component for assistive technologies like screen readers. Use this to provide additional context when the visible content alone doesn’t clearly convey the component’s purpose.", "isOptional": true }, { @@ -37103,7 +37123,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the chip, disallowing any interaction.", + "description": "Disables the chip, preventing all user interaction including clicks and removal. Disabled chips are visually dimmed to indicate they are not interactive.", "isOptional": true, "defaultValue": "false" }, @@ -37112,7 +37132,7 @@ "syntaxKind": "PropertySignature", "name": "hidden", "value": "boolean", - "description": "Determines whether the chip is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the chip is `removable`, ensure you update app state for this property when the `remove` event fires.\n\nIf the chip is not `removable`, it can still be hidden by setting this property.", + "description": "Determines whether the chip is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the chip is `removable`, ensure you update app state for this property when the `remove` event fires.\n\nIf the chip is not `removable`, it can still be hidden by setting this property.\n\nWhen using the `removable` variant, keep `hidden` synced with your app state. If `hidden` isn't updated after the chip is removed, the chip can become permanently hidden.", "isOptional": true, "defaultValue": "false" }, @@ -37129,7 +37149,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -37137,7 +37157,7 @@ "syntaxKind": "PropertySignature", "name": "removable", "value": "boolean", - "description": "Whether the chip is removable.", + "description": "Whether the chip displays a remove button, allowing users to dismiss it. When `true`, clicking the remove button fires the `remove` event.", "isOptional": true, "defaultValue": "false" } @@ -37157,7 +37177,7 @@ "syntaxKind": "PropertySignature", "name": "onAfterHide", "value": "(event: Event) => void", - "description": "Event handler when the chip has fully hidden.\n\nThe `hidden` property will be `true` when this event fires.", + "description": "A callback fired when the chip has fully hidden after a removal animation.\n\nThe `hidden` property will be `true` when this event fires.", "isOptional": true }, { @@ -37165,7 +37185,7 @@ "syntaxKind": "PropertySignature", "name": "onClick", "value": "(event: Event) => void", - "description": "Callback when the chip is clicked.", + "description": "A callback fired when the chip is clicked. Learn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).", "isOptional": true }, { @@ -37173,7 +37193,7 @@ "syntaxKind": "PropertySignature", "name": "onRemove", "value": "(event: Event) => void", - "description": "Callback when the chip is removed.", + "description": "A callback fired when the chip is removed by the user clicking the remove button.", "isOptional": true } ], @@ -37184,7 +37204,7 @@ "src/surfaces/checkout/components/ClickableChip.ts": { "filePath": "src/surfaces/checkout/components/ClickableChip.ts", "name": "ClickableChipElementEvents", - "description": "The clickable chip component provides event callbacks for handling user interactions. Learn more about [handling events](/docs/api/polaris/using-polaris-web-components#handling-events).", + "description": "", "isPublicDocs": true, "members": [ { @@ -37219,7 +37239,7 @@ "src/surfaces/checkout/components/ClickableChip.ts": { "filePath": "src/surfaces/checkout/components/ClickableChip.ts", "name": "ClickableChipElementSlots", - "description": "The clickable chip component supports slots for additional content placement. Learn more about [using slots](/docs/api/polaris/using-polaris-web-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -37246,7 +37266,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose or contents of the chip. It will be read to users using assistive technologies such as screen readers.", + "description": "A label that describes the purpose or content of the component for assistive technologies like screen readers. Use this to provide additional context when the visible content alone doesn’t clearly convey the component’s purpose.", "isOptional": true }, { @@ -37898,7 +37918,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the chip, disallowing any interaction.", + "description": "Disables the chip, preventing all user interaction including clicks and removal. Disabled chips are visually dimmed to indicate they are not interactive.", "isOptional": true, "defaultValue": "false" }, @@ -38160,7 +38180,7 @@ "syntaxKind": "PropertySignature", "name": "hidden", "value": "boolean", - "description": "Determines whether the chip is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the chip is `removable`, ensure you update app state for this property when the `remove` event fires.\n\nIf the chip is not `removable`, it can still be hidden by setting this property.", + "description": "Determines whether the chip is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the chip is `removable`, ensure you update app state for this property when the `remove` event fires.\n\nIf the chip is not `removable`, it can still be hidden by setting this property.\n\nWhen using the `removable` variant, keep `hidden` synced with your app state. If `hidden` isn't updated after the chip is removed, the chip can become permanently hidden.", "isOptional": true, "defaultValue": "false" }, @@ -38184,7 +38204,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -39275,7 +39295,7 @@ "syntaxKind": "PropertySignature", "name": "removable", "value": "boolean", - "description": "Whether the chip is removable.", + "description": "Whether the chip displays a remove button, allowing users to dismiss it. When `true`, clicking the remove button fires the `remove` event.", "isOptional": true, "defaultValue": "false" }, @@ -39583,7 +39603,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose or contents of the chip. It will be read to users using assistive technologies such as screen readers.", + "description": "A label that describes the purpose or content of the component for assistive technologies like screen readers. Use this to provide additional context when the visible content alone doesn’t clearly convey the component’s purpose.", "isOptional": true }, { @@ -39591,7 +39611,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the chip, disallowing any interaction.", + "description": "Disables the chip, preventing all user interaction including clicks and removal. Disabled chips are visually dimmed to indicate they are not interactive.", "isOptional": true, "defaultValue": "false" }, @@ -39600,7 +39620,7 @@ "syntaxKind": "PropertySignature", "name": "hidden", "value": "boolean", - "description": "Determines whether the chip is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the chip is `removable`, ensure you update app state for this property when the `remove` event fires.\n\nIf the chip is not `removable`, it can still be hidden by setting this property.", + "description": "Determines whether the chip is hidden.\n\nIf this property is being set on each framework render (as in 'controlled' usage), and the chip is `removable`, ensure you update app state for this property when the `remove` event fires.\n\nIf the chip is not `removable`, it can still be hidden by setting this property.\n\nWhen using the `removable` variant, keep `hidden` synced with your app state. If `hidden` isn't updated after the chip is removed, the chip can become permanently hidden.", "isOptional": true, "defaultValue": "false" }, @@ -39617,7 +39637,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -39625,7 +39645,7 @@ "syntaxKind": "PropertySignature", "name": "onAfterHide", "value": "(event: Event) => void", - "description": "Event handler when the chip has fully hidden.\n\nThe `hidden` property will be `true` when this event fires.", + "description": "A callback fired when the chip has fully hidden after a removal animation.\n\nThe `hidden` property will be `true` when this event fires.", "isOptional": true }, { @@ -39633,7 +39653,7 @@ "syntaxKind": "PropertySignature", "name": "onClick", "value": "(event: Event) => void", - "description": "Callback when the chip is clicked.", + "description": "A callback fired when the chip is clicked. Learn more about the [click event](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event).", "isOptional": true }, { @@ -39641,7 +39661,7 @@ "syntaxKind": "PropertySignature", "name": "onRemove", "value": "(event: Event) => void", - "description": "Callback when the chip is removed.", + "description": "A callback fired when the chip is removed by the user clicking the remove button.", "isOptional": true }, { @@ -39649,7 +39669,7 @@ "syntaxKind": "PropertySignature", "name": "removable", "value": "boolean", - "description": "Whether the chip is removable.", + "description": "Whether the chip displays a remove button, allowing users to dismiss it. When `true`, clicking the remove button fires the `remove` event.", "isOptional": true, "defaultValue": "false" } @@ -39661,7 +39681,7 @@ "src/surfaces/checkout/components/ClipboardItem.ts": { "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", "name": "ClipboardItemElementProps", - "description": "Enables copying text to the user’s clipboard. Use alongside Button or Link components to let users easily copy content. `` doesn’t render visually.", + "description": "", "isPublicDocs": true, "members": [ { @@ -39669,7 +39689,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -39716,7 +39736,7 @@ "src/surfaces/checkout/components/ClipboardItem.ts": { "filePath": "src/surfaces/checkout/components/ClipboardItem.ts", "name": "ClipboardItemElementEvents", - "description": "The clipboard item component provides event callbacks for handling copy interactions. Learn more about [handling events](/docs/api/polaris/using-polaris-web-components#handling-events).", + "description": "", "isPublicDocs": true, "members": [ { @@ -40662,7 +40682,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -42054,7 +42074,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -42090,7 +42110,7 @@ "src/surfaces/checkout/components/ConsentCheckbox.ts": { "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", "name": "ConsentCheckboxElementProps", - "description": "Use buyer consent checkboxes for collecting the buyer’s approval for a given policy.", + "description": "", "isPublicDocs": true, "members": [ { @@ -42106,7 +42126,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -42115,7 +42135,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -42124,7 +42144,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -42132,7 +42152,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -42141,7 +42161,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -42150,7 +42170,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -42158,7 +42178,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -42166,7 +42186,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.", "isOptional": true }, { @@ -42174,15 +42194,15 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", "syntaxKind": "PropertySignature", "name": "policy", - "value": "ConsentPolicy", - "description": "The policy for which user consent is being collected for.\n\n`sms-marketing`: Represents the policy for SMS marketing consent.", + "value": "'sms-marketing'", + "description": "The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n\n- `sms-marketing`: Represents the policy for SMS marketing consent.", "isOptional": true }, { @@ -42194,17 +42214,7 @@ "isOptional": true } ], - "value": "export interface ConsentCheckboxElementProps extends Pick {\n command?: Extract;\n}" - } - }, - "ConsentPolicy": { - "src/surfaces/checkout/components/components.ts": { - "filePath": "src/surfaces/checkout/components/components.ts", - "syntaxKind": "TypeAliasDeclaration", - "name": "ConsentPolicy", - "value": "\"sms-marketing\"", - "description": "", - "isPublicDocs": true + "value": "export interface ConsentCheckboxElementProps extends Pick {\n command?: Extract;\n /**\n * The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n *\n * - `sms-marketing`: Represents the policy for SMS marketing consent.\n */\n policy?: ConsentCheckboxProps$1['policy'];\n}" } }, "ConsentCheckboxEvents": { @@ -42230,7 +42240,7 @@ "src/surfaces/checkout/components/ConsentCheckbox.ts": { "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", "name": "ConsentCheckboxElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -42238,11 +42248,11 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "A callback that is run whenever the control is changed.", + "description": "A callback fired when the consent checkbox value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true } ], - "value": "export interface ConsentCheckboxElementEvents {\n /**\n * A callback that is run whenever the control is changed.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n}" + "value": "export interface ConsentCheckboxElementEvents {\n /**\n * A callback fired when the consent checkbox value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" } }, "ConsentCheckboxElement": { @@ -42762,7 +42772,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -42862,7 +42872,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -42871,7 +42881,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -42928,7 +42938,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -42944,7 +42954,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -43058,7 +43068,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -43228,7 +43238,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -43327,7 +43337,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.", "isOptional": true }, { @@ -43384,7 +43394,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -44255,8 +44265,8 @@ "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", "syntaxKind": "PropertySignature", "name": "policy", - "value": "ConsentPolicy", - "description": "The policy for which user consent is being collected for.\n\n`sms-marketing`: Represents the policy for SMS marketing consent.", + "value": "'sms-marketing'", + "description": "The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n\n- `sms-marketing`: Represents the policy for SMS marketing consent.", "isOptional": true }, { @@ -44644,7 +44654,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -44653,7 +44663,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -44662,7 +44672,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -44670,7 +44680,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -44679,7 +44689,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -44688,7 +44698,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -44696,7 +44706,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -44704,7 +44714,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.", "isOptional": true }, { @@ -44712,7 +44722,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -44727,8 +44737,8 @@ "filePath": "src/surfaces/checkout/components/ConsentCheckbox.ts", "syntaxKind": "PropertySignature", "name": "policy", - "value": "ConsentPolicy", - "description": "The policy for which user consent is being collected for.\n\n`sms-marketing`: Represents the policy for SMS marketing consent.", + "value": "'sms-marketing'", + "description": "The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n\n- `sms-marketing`: Represents the policy for SMS marketing consent.", "isOptional": true }, { @@ -44755,7 +44765,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -44764,7 +44774,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -44772,7 +44782,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -44781,7 +44791,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -44789,7 +44799,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -44797,7 +44807,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -44805,7 +44815,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -44814,7 +44824,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -44832,7 +44842,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -44850,9 +44860,9 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'mobile' | ''", - "description": "The type of number to collect.\n\nSpecific style may be applied to each type to provide extra guidance to users. Note that no extra validation is performed based on the type.", + "description": "The type of phone number to collect. Specific styling may be applied to each type to provide extra guidance to users. No additional validation is performed based on the type.\n\nStyling hint for the input keyboard. Doesn't validate the phone number format. Implement validation in your extension and use the `error` prop to show results.", "isOptional": true, - "defaultValue": "'' meaning no specific kind of phone number" + "defaultValue": "''" }, { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", @@ -44906,7 +44916,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -44922,7 +44932,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -45396,7 +45406,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -45587,7 +45597,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -45602,7 +45612,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -45716,7 +45726,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -45886,7 +45896,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -45985,7 +45995,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -45993,7 +46003,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -46051,7 +46061,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -46984,7 +46994,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -47282,9 +47292,9 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'mobile' | ''", - "description": "The type of number to collect.\n\nSpecific style may be applied to each type to provide extra guidance to users. Note that no extra validation is performed based on the type.", + "description": "The type of phone number to collect. Specific styling may be applied to each type to provide extra guidance to users. No additional validation is performed based on the type.\n\nStyling hint for the input keyboard. Doesn't validate the phone number format. Implement validation in your extension and use the `error` prop to show results.", "isOptional": true, - "defaultValue": "'' meaning no specific kind of phone number" + "defaultValue": "''" }, { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", @@ -47325,7 +47335,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -47334,7 +47344,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -47342,7 +47352,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -47351,7 +47361,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -47359,7 +47369,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -47367,7 +47377,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -47375,7 +47385,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -47384,7 +47394,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -47400,7 +47410,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -47416,7 +47426,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -47434,7 +47444,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -47452,9 +47462,9 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'mobile' | ''", - "description": "The type of number to collect.\n\nSpecific style may be applied to each type to provide extra guidance to users. Note that no extra validation is performed based on the type.", + "description": "The type of phone number to collect. Specific styling may be applied to each type to provide extra guidance to users. No additional validation is performed based on the type.\n\nStyling hint for the input keyboard. Doesn't validate the phone number format. Implement validation in your extension and use the `error` prop to show results.", "isOptional": true, - "defaultValue": "'' meaning no specific kind of phone number" + "defaultValue": "''" }, { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", @@ -47472,7 +47482,7 @@ "src/surfaces/checkout/components/ConsentPhoneField.ts": { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", "name": "ConsentPhoneFieldElementProps", - "description": "Display a phone field for customers to sign up for text message marketing, noting that the phone field value will be automatically saved during checkout.", + "description": "", "isPublicDocs": true, "members": [ { @@ -47480,7 +47490,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -47489,7 +47499,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -47497,7 +47507,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -47506,7 +47516,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -47514,7 +47524,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -47522,7 +47532,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -47530,7 +47540,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -47539,7 +47549,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -47556,8 +47566,8 @@ "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", "syntaxKind": "PropertySignature", "name": "policy", - "value": "ConsentPolicy", - "description": "The policy for which user consent is being collected for.\n\n`sms-marketing`: Represents the policy for SMS marketing consent.", + "value": "'sms-marketing'", + "description": "The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n\n- `sms-marketing`: Represents the policy for SMS marketing consent.", "isOptional": true }, { @@ -47565,7 +47575,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -47583,9 +47593,9 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'mobile' | ''", - "description": "The type of number to collect.\n\nSpecific style may be applied to each type to provide extra guidance to users. Note that no extra validation is performed based on the type.", + "description": "The type of phone number to collect. Specific styling may be applied to each type to provide extra guidance to users. No additional validation is performed based on the type.\n\nStyling hint for the input keyboard. Doesn't validate the phone number format. Implement validation in your extension and use the `error` prop to show results.", "isOptional": true, - "defaultValue": "'' meaning no specific kind of phone number" + "defaultValue": "''" }, { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", @@ -47596,7 +47606,7 @@ "isOptional": true } ], - "value": "export interface ConsentPhoneFieldElementProps extends Pick {\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n}" + "value": "export interface ConsentPhoneFieldElementProps extends Pick {\n /**\n * @deprecated Use `label` instead.\n * @private\n */\n placeholder?: string;\n /**\n * The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n *\n * - `sms-marketing`: Represents the policy for SMS marketing consent.\n */\n policy?: ConsentPhoneFieldProps$1['policy'];\n}" } }, "ConsentPhoneFieldEvents": { @@ -47619,7 +47629,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -47635,7 +47645,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -47646,7 +47656,7 @@ "src/surfaces/checkout/components/ConsentPhoneField.ts": { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", "name": "ConsentPhoneFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -47654,7 +47664,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "A callback fired when the consent phone field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -47662,7 +47672,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the consent phone field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -47670,7 +47680,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the consent phone field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -47678,11 +47688,11 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the consent phone field.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface ConsentPhoneFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface ConsentPhoneFieldElementEvents {\n /**\n * A callback fired when the consent phone field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the consent phone field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the consent phone field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the consent phone field.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n}" } }, "ConsentPhoneFieldElement": { @@ -47697,7 +47707,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -47706,7 +47716,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -47714,7 +47724,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -47723,7 +47733,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -47731,7 +47741,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -47739,7 +47749,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -47747,7 +47757,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -47756,7 +47766,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -47801,8 +47811,8 @@ "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", "syntaxKind": "PropertySignature", "name": "policy", - "value": "ConsentPolicy", - "description": "The policy for which user consent is being collected for.\n\n`sms-marketing`: Represents the policy for SMS marketing consent.", + "value": "'sms-marketing'", + "description": "The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n\n- `sms-marketing`: Represents the policy for SMS marketing consent.", "isOptional": true }, { @@ -47810,7 +47820,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -47828,9 +47838,9 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'mobile' | ''", - "description": "The type of number to collect.\n\nSpecific style may be applied to each type to provide extra guidance to users. Note that no extra validation is performed based on the type.", + "description": "The type of phone number to collect. Specific styling may be applied to each type to provide extra guidance to users. No additional validation is performed based on the type.\n\nStyling hint for the input keyboard. Doesn't validate the phone number format. Implement validation in your extension and use the `error` prop to show results.", "isOptional": true, - "defaultValue": "'' meaning no specific kind of phone number" + "defaultValue": "''" }, { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", @@ -47848,7 +47858,7 @@ "src/surfaces/checkout/components/ConsentPhoneField.ts": { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", "name": "ConsentPhoneFieldElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -47856,11 +47866,11 @@ "syntaxKind": "PropertySignature", "name": "accessory", "value": "HTMLElement", - "description": "Additional content to be displayed in the field. Commonly used to display an icon that activates a tooltip providing more information.", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", "isOptional": true } ], - "value": "export interface ConsentPhoneFieldElementSlots {\n /**\n * Additional content to be displayed in the field.\n * Commonly used to display an icon that activates a tooltip providing more information.\n */\n accessory?: HTMLElement;\n}" + "value": "export interface ConsentPhoneFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" } }, "ConsentPhoneFieldProps": { @@ -47875,7 +47885,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -47884,7 +47894,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -47892,7 +47902,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -47901,7 +47911,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -47909,7 +47919,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -47917,7 +47927,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -47925,7 +47935,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -47934,7 +47944,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -47950,7 +47960,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -47966,7 +47976,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -47983,8 +47993,8 @@ "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", "syntaxKind": "PropertySignature", "name": "policy", - "value": "ConsentPolicy", - "description": "The policy for which user consent is being collected for.\n\n`sms-marketing`: Represents the policy for SMS marketing consent.", + "value": "'sms-marketing'", + "description": "The policy for which buyer consent is being collected. Used by the [consent checkbox](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-checkbox) and [consent phone field](/docs/api/{API_NAME}/{API_VERSION}/web-components/forms/consent-phone-field) components to identify the type of marketing permission requested.\n\n- `sms-marketing`: Represents the policy for SMS marketing consent.", "isOptional": true }, { @@ -47992,7 +48002,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -48010,9 +48020,9 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'mobile' | ''", - "description": "The type of number to collect.\n\nSpecific style may be applied to each type to provide extra guidance to users. Note that no extra validation is performed based on the type.", + "description": "The type of phone number to collect. Specific styling may be applied to each type to provide extra guidance to users. No additional validation is performed based on the type.\n\nStyling hint for the input keyboard. Doesn't validate the phone number format. Implement validation in your extension and use the `error` prop to show results.", "isOptional": true, - "defaultValue": "'' meaning no specific kind of phone number" + "defaultValue": "''" }, { "filePath": "src/surfaces/checkout/components/ConsentPhoneField.ts", @@ -48030,7 +48040,7 @@ "src/surfaces/checkout/components/DateField.ts": { "filePath": "src/surfaces/checkout/components/DateField.ts", "name": "DateFieldElementProps", - "description": "The date field component captures date input with a consistent interface for date selection and proper validation. Use it to collect date information in forms, scheduling interfaces, or data entry workflows.\n\nThe component supports manual text entry. For visual calendar-based selection, consider using [date picker](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/date-picker).", + "description": "", "isPublicDocs": true, "members": [ { @@ -48038,7 +48048,7 @@ "syntaxKind": "PropertySignature", "name": "allow", "value": "string", - "description": "Dates that can be selected.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of allowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -48059,7 +48069,7 @@ "syntaxKind": "PropertySignature", "name": "allowDays", "value": "string", - "description": "Days of the week that can be selected. These intersect with the result of `allow` and `disallow`.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "description": "Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the `allow`/`disallow` filters are selectable. For example, setting `allowedDays` to `'mon, wed, fri'` with `allow` set to `'2024-06'` restricts selection to Mondays, Wednesdays, and Fridays in June 2024.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -48080,7 +48090,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -48089,7 +48099,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -48105,7 +48115,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -48114,7 +48124,7 @@ "syntaxKind": "PropertySignature", "name": "disallow", "value": "string", - "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of disallowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -48156,7 +48166,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -48164,7 +48174,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -48172,7 +48182,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -48180,7 +48190,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -48198,7 +48208,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -48251,7 +48261,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -48267,7 +48277,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -48275,7 +48285,7 @@ "syntaxKind": "PropertySignature", "name": "onInvalid", "value": "(event: Event) => void", - "description": "Callback when the field has an invalid date. This callback will be called, if the date typed is invalid or disabled.\n\nDates that don’t exist or have formatting errors are considered invalid. Some examples of invalid dates are:\n- 2021-02-31: February doesn’t have 31 days\n- 2021-02-00: The day can’t be 00\n\nDisallowed dates are considered invalid.\n\nIt’s important to note that this callback will be called only when the user **finishes editing** the date, and it’s called right after the `onChange` callback. The field is **not** validated on every change to the input. Once the buyer has signalled that they have finished editing the field (typically, by blurring the field), the field gets validated and the callback is run if the value is invalid.", + "description": "Callback when the field has an invalid date. This callback will be called, if the date typed is invalid or disabled.\n\nDates that don’t exist or have formatting errors are considered invalid. Some examples of invalid dates are:\n- 2021-02-31: February doesn’t have 31 days\n- 2021-02-00: The day can’t be 00\n\nDisallowed dates are considered invalid.\n\nThis callback fires only when the user finishes editing the date, right after the `change` callback. The field isn’t validated on every change to the input. Once the user has signalled that they have finished editing the field (typically, by blurring the field), the field gets validated and the callback is run if the value is invalid.", "isOptional": true }, { @@ -48294,7 +48304,7 @@ "src/surfaces/checkout/components/DateField.ts": { "filePath": "src/surfaces/checkout/components/DateField.ts", "name": "DateFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -48302,7 +48312,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "A callback fired when the date field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -48310,7 +48320,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the date field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -48318,7 +48328,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the date field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -48326,7 +48336,7 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the date field.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true }, { @@ -48334,7 +48344,7 @@ "syntaxKind": "PropertySignature", "name": "invalid", "value": "CallbackEventListener", - "description": "Callback when the user enters an invalid date.", + "description": "A callback fired when the date field value is invalid.\n\nLearn more about the [invalid event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/invalid_event).", "isOptional": true }, { @@ -48342,11 +48352,11 @@ "syntaxKind": "PropertySignature", "name": "viewChange", "value": "CallbackEventListener", - "description": "Callback when the view changes.", + "description": "A callback fired when the calendar view changes (such as when navigating between months).", "isOptional": true } ], - "value": "export interface DateFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n */\n input?: CallbackEventListener;\n /**\n * Callback when the user enters an invalid date.\n */\n invalid?: CallbackEventListener;\n /**\n * Callback when the view changes.\n */\n viewChange?: CallbackEventListener;\n}" + "value": "export interface DateFieldElementEvents {\n /**\n * A callback fired when the date field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the date field.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the date field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the date field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n /**\n * A callback fired when the calendar view changes (such as when navigating between months).\n */\n viewChange?: CallbackEventListener;\n /**\n * A callback fired when the date field value is invalid.\n *\n * Learn more about the [invalid event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/invalid_event).\n */\n invalid?: CallbackEventListener;\n}" } }, "DateFieldElement": { @@ -48389,7 +48399,7 @@ "syntaxKind": "PropertySignature", "name": "allow", "value": "string", - "description": "Dates that can be selected.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of allowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -48410,7 +48420,7 @@ "syntaxKind": "PropertySignature", "name": "allowDays", "value": "string", - "description": "Days of the week that can be selected. These intersect with the result of `allow` and `disallow`.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "description": "Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the `allow`/`disallow` filters are selectable. For example, setting `allowedDays` to `'mon, wed, fri'` with `allow` set to `'2024-06'` restricts selection to Mondays, Wednesdays, and Fridays in June 2024.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -48858,7 +48868,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -49049,7 +49059,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -49072,7 +49082,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -49081,7 +49091,7 @@ "syntaxKind": "PropertySignature", "name": "disallow", "value": "string", - "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of disallowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -49228,7 +49238,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -49398,7 +49408,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -49490,7 +49500,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -49547,7 +49557,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -50487,7 +50497,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -50827,7 +50837,7 @@ "syntaxKind": "PropertySignature", "name": "allow", "value": "string", - "description": "Dates that can be selected.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of allowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -50848,7 +50858,7 @@ "syntaxKind": "PropertySignature", "name": "allowDays", "value": "string", - "description": "Days of the week that can be selected. These intersect with the result of `allow` and `disallow`.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "description": "Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the `allow`/`disallow` filters are selectable. For example, setting `allowedDays` to `'mon, wed, fri'` with `allow` set to `'2024-06'` restricts selection to Mondays, Wednesdays, and Fridays in June 2024.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -50869,7 +50879,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -50878,7 +50888,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -50894,7 +50904,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -50903,7 +50913,7 @@ "syntaxKind": "PropertySignature", "name": "disallow", "value": "string", - "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of disallowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -50945,7 +50955,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -50953,7 +50963,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -50961,7 +50971,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -50969,7 +50979,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -50985,7 +50995,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -51001,7 +51011,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -51009,7 +51019,7 @@ "syntaxKind": "PropertySignature", "name": "onInvalid", "value": "(event: Event) => void", - "description": "Callback when the field has an invalid date. This callback will be called, if the date typed is invalid or disabled.\n\nDates that don’t exist or have formatting errors are considered invalid. Some examples of invalid dates are:\n- 2021-02-31: February doesn’t have 31 days\n- 2021-02-00: The day can’t be 00\n\nDisallowed dates are considered invalid.\n\nIt’s important to note that this callback will be called only when the user **finishes editing** the date, and it’s called right after the `onChange` callback. The field is **not** validated on every change to the input. Once the buyer has signalled that they have finished editing the field (typically, by blurring the field), the field gets validated and the callback is run if the value is invalid.", + "description": "Callback when the field has an invalid date. This callback will be called, if the date typed is invalid or disabled.\n\nDates that don’t exist or have formatting errors are considered invalid. Some examples of invalid dates are:\n- 2021-02-31: February doesn’t have 31 days\n- 2021-02-00: The day can’t be 00\n\nDisallowed dates are considered invalid.\n\nThis callback fires only when the user finishes editing the date, right after the `change` callback. The field isn’t validated on every change to the input. Once the user has signalled that they have finished editing the field (typically, by blurring the field), the field gets validated and the callback is run if the value is invalid.", "isOptional": true }, { @@ -51035,7 +51045,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -51072,7 +51082,7 @@ "src/surfaces/checkout/components/DatePicker.ts": { "filePath": "src/surfaces/checkout/components/DatePicker.ts", "name": "DatePickerElementProps", - "description": "The date picker component allows merchants to select dates using a calendar interface. Use it when merchants benefit from seeing dates in context of the full month, such as selecting dates relative to today or needing weekday context.\n\nThe component supports single dates, multiple dates, and date ranges. For text date entry, use [date field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/date-field).", + "description": "", "isPublicDocs": true, "members": [ { @@ -51080,7 +51090,7 @@ "syntaxKind": "PropertySignature", "name": "allow", "value": "string", - "description": "Dates that can be selected.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of allowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -51101,7 +51111,7 @@ "syntaxKind": "PropertySignature", "name": "allowDays", "value": "string", - "description": "Days of the week that can be selected. These intersect with the result of `allow` and `disallow`.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "description": "Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the `allow`/`disallow` filters are selectable. For example, setting `allowedDays` to `'mon, wed, fri'` with `allow` set to `'2024-06'` restricts selection to Mondays, Wednesdays, and Fridays in June 2024.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -51139,7 +51149,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -51148,7 +51158,7 @@ "syntaxKind": "PropertySignature", "name": "disallow", "value": "string", - "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of disallowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -51190,7 +51200,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -51198,7 +51208,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -51215,7 +51225,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "Current selected value.\n\nThe default means no date is selected.\n\nIf the provided value is invalid, no date is selected.\n\nOtherwise:\n\n- If `type=\"single\"`, this is a date in `YYYY-MM-DD` format.\n- If `type=\"multiple\"`, this is a comma-separated list of dates in `YYYY-MM-DD` format.\n- If `type=\"range\"`, this is a range in `YYYY-MM-DD--YYYY-MM-DD` format. The range is inclusive.", + "description": "Current selected value.\n\nThe default means no date is selected.\n\nIf the provided value is invalid, no date is selected.\n\nOtherwise:\n\n- If `type=\"single\"`, this is a date in `YYYY-MM-DD` format.\n- If `type=\"multiple\"`, this is a comma-separated list of dates in `YYYY-MM-DD` format.\n- If `type=\"range\"`, this is a range in `YYYY-MM-DD--YYYY-MM-DD` format. The range is inclusive.\n\nSingle dates use ISO 8601 format (`YYYY-MM-DD`); ranges use `YYYY-MM-DD--YYYY-MM-DD`. Locale-specific formats aren't supported.", "isOptional": true, "defaultValue": "\"\"" }, @@ -51286,7 +51296,7 @@ "src/surfaces/checkout/components/DatePicker.ts": { "filePath": "src/surfaces/checkout/components/DatePicker.ts", "name": "DatePickerElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -51294,7 +51304,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "A callback fired when the date picker loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -51302,7 +51312,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the date picker value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -51310,7 +51320,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the date picker receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -51318,7 +51328,7 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the date picker.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true }, { @@ -51326,11 +51336,11 @@ "syntaxKind": "PropertySignature", "name": "viewChange", "value": "CallbackEventListener", - "description": "Callback when the view changes.", + "description": "A callback fired when the calendar view changes, such as when navigating between months.", "isOptional": true } ], - "value": "export interface DatePickerElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n */\n input?: CallbackEventListener;\n /**\n * Callback when the view changes.\n */\n viewChange?: CallbackEventListener;\n}" + "value": "export interface DatePickerElementEvents {\n /**\n * A callback fired when the calendar view changes, such as when navigating between months.\n */\n viewChange?: CallbackEventListener;\n /**\n * A callback fired when the date picker receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n /**\n * A callback fired when the date picker loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the date picker.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the date picker value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" } }, "DatePickerElement": { @@ -51373,7 +51383,7 @@ "syntaxKind": "PropertySignature", "name": "allow", "value": "string", - "description": "Dates that can be selected.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of allowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -51394,7 +51404,7 @@ "syntaxKind": "PropertySignature", "name": "allowDays", "value": "string", - "description": "Days of the week that can be selected. These intersect with the result of `allow` and `disallow`.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "description": "Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the `allow`/`disallow` filters are selectable. For example, setting `allowedDays` to `'mon, wed, fri'` with `allow` set to `'2024-06'` restricts selection to Mondays, Wednesdays, and Fridays in June 2024.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -52048,7 +52058,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -52057,7 +52067,7 @@ "syntaxKind": "PropertySignature", "name": "disallow", "value": "string", - "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of disallowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -52366,7 +52376,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -52514,7 +52524,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -53740,7 +53750,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "Current selected value.\n\nThe default means no date is selected.\n\nIf the provided value is invalid, no date is selected.\n\nOtherwise:\n\n- If `type=\"single\"`, this is a date in `YYYY-MM-DD` format.\n- If `type=\"multiple\"`, this is a comma-separated list of dates in `YYYY-MM-DD` format.\n- If `type=\"range\"`, this is a range in `YYYY-MM-DD--YYYY-MM-DD` format. The range is inclusive.", + "description": "Current selected value.\n\nThe default means no date is selected.\n\nIf the provided value is invalid, no date is selected.\n\nOtherwise:\n\n- If `type=\"single\"`, this is a date in `YYYY-MM-DD` format.\n- If `type=\"multiple\"`, this is a comma-separated list of dates in `YYYY-MM-DD` format.\n- If `type=\"range\"`, this is a range in `YYYY-MM-DD--YYYY-MM-DD` format. The range is inclusive.\n\nSingle dates use ISO 8601 format (`YYYY-MM-DD`); ranges use `YYYY-MM-DD--YYYY-MM-DD`. Locale-specific formats aren't supported.", "isOptional": true, "defaultValue": "\"\"" }, @@ -53783,7 +53793,7 @@ "syntaxKind": "PropertySignature", "name": "allow", "value": "string", - "description": "Dates that can be selected.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.\n\nThe default `''` allows all dates.\n\n- Dates in `YYYY-MM-DD` format allow a single date.\n- Dates in `YYYY-MM` format allow a whole month.\n- Dates in `YYYY` format allow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of allowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -53804,7 +53814,7 @@ "syntaxKind": "PropertySignature", "name": "allowDays", "value": "string", - "description": "Days of the week that can be selected. These intersect with the result of `allow` and `disallow`.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", + "description": "Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the `allow`/`disallow` filters are selectable. For example, setting `allowedDays` to `'mon, wed, fri'` with `allow` set to `'2024-06'` restricts selection to Mondays, Wednesdays, and Fridays in June 2024.\n\nA comma-separated list of days. Whitespace is allowed after commas.\n\nThe default `''` has no effect on the result of `allow` and `disallow`.\n\nDays are `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -53842,7 +53852,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -53851,7 +53861,7 @@ "syntaxKind": "PropertySignature", "name": "disallow", "value": "string", - "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.", + "description": "Dates that cannot be selected. These subtract from `allow`.\n\nA comma-separated list of dates, date ranges. Whitespace is allowed after commas.\n\nThe default `''` has no effect on `allow`.\n\n- Dates in `YYYY-MM-DD` format disallow a single date.\n- Dates in `YYYY-MM` format disallow a whole month.\n- Dates in `YYYY` format disallow a whole year.\n- Ranges are expressed as `start--end`. - Ranges are inclusive.\n - If either `start` or `end` is omitted, the range is unbounded in that direction.\n - If parts of the date are omitted for `start`, they are assumed to be the minimum possible value.\n So `2024--` is equivalent to `2024-01-01--`.\n - If parts of the date are omitted for `end`, they are assumed to be the maximum possible value.\n So `--2024` is equivalent to `--2024-12-31`.\n - Whitespace is allowed either side of `--`.\n\nComma-separated list of disallowed dates in `YYYY-MM-DD` format.", "isOptional": true, "defaultValue": "\"\"", "examples": [ @@ -53893,7 +53903,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -53901,7 +53911,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -53958,7 +53968,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "string", - "description": "Current selected value.\n\nThe default means no date is selected.\n\nIf the provided value is invalid, no date is selected.\n\nOtherwise:\n\n- If `type=\"single\"`, this is a date in `YYYY-MM-DD` format.\n- If `type=\"multiple\"`, this is a comma-separated list of dates in `YYYY-MM-DD` format.\n- If `type=\"range\"`, this is a range in `YYYY-MM-DD--YYYY-MM-DD` format. The range is inclusive.", + "description": "Current selected value.\n\nThe default means no date is selected.\n\nIf the provided value is invalid, no date is selected.\n\nOtherwise:\n\n- If `type=\"single\"`, this is a date in `YYYY-MM-DD` format.\n- If `type=\"multiple\"`, this is a comma-separated list of dates in `YYYY-MM-DD` format.\n- If `type=\"range\"`, this is a range in `YYYY-MM-DD--YYYY-MM-DD` format. The range is inclusive.\n\nSingle dates use ISO 8601 format (`YYYY-MM-DD`); ranges use `YYYY-MM-DD--YYYY-MM-DD`. Locale-specific formats aren't supported.", "isOptional": true, "defaultValue": "\"\"" }, @@ -53978,7 +53988,7 @@ "src/surfaces/checkout/components/Details.ts": { "filePath": "src/surfaces/checkout/components/Details.ts", "name": "DetailsElementProps", - "description": "Creates a collapsible content area that can be expanded or collapsed by users. Use with Summary to provide expandable sections for additional information or settings.", + "description": "", "isPublicDocs": true, "members": [ { @@ -53986,7 +53996,7 @@ "syntaxKind": "PropertySignature", "name": "defaultOpen", "value": "boolean", - "description": "Indicates whether the element should be open by default.\n\nThis reflects to the `open` attribute.", + "description": "Whether the element should be open when it first renders. This reflects to the `open` attribute and only takes effect on the initial render.", "isOptional": true, "defaultValue": "false" }, @@ -53995,7 +54005,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -54003,7 +54013,7 @@ "syntaxKind": "PropertySignature", "name": "open", "value": "boolean", - "description": "Whether the element is open.\n\nThis does not reflect to any attribute.", + "description": "Whether the element is currently open. Use this for controlled component patterns where your application manages the open state directly. This does not reflect to any attribute.", "isOptional": true, "defaultValue": "false" }, @@ -54012,7 +54022,7 @@ "syntaxKind": "PropertySignature", "name": "toggleTransition", "value": "'none' | 'auto'", - "description": "Sets the transition between the two states.", + "description": "The transition style used when toggling between open and closed states.\n\n- `none`: Switches states immediately without animation.\n- `auto`: Uses the default animated transition.", "isOptional": true, "defaultValue": "'auto'" } @@ -54032,7 +54042,7 @@ "syntaxKind": "PropertySignature", "name": "onAfterToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true }, { @@ -54040,7 +54050,7 @@ "syntaxKind": "PropertySignature", "name": "onToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [toggle event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), and the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true } ], @@ -54051,7 +54061,7 @@ "src/surfaces/checkout/components/Details.ts": { "filePath": "src/surfaces/checkout/components/Details.ts", "name": "DetailsElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -54059,7 +54069,7 @@ "syntaxKind": "PropertySignature", "name": "aftertoggle", "value": "CallbackEventListener", - "description": "Callback fired when the element state changes **after** any animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.", + "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true }, { @@ -54067,11 +54077,11 @@ "syntaxKind": "PropertySignature", "name": "toggle", "value": "CallbackEventListener", - "description": "Callback straight after the element state changes.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the `newState` will be `closed`.", + "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), and the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true } ], - "value": "export interface DetailsElementEvents {\n /**\n * Callback straight after the element state changes.\n *\n * - If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState\n */\n toggle?: CallbackEventListener;\n /**\n * Callback fired when the element state changes **after** any animations have finished.\n *\n * - If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState\n */\n aftertoggle?: CallbackEventListener;\n}" + "value": "export interface DetailsElementEvents {\n /**\n * A callback fired immediately when the element state changes, before any animations.\n *\n * - If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * Learn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), and the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.\n */\n toggle?: CallbackEventListener;\n /**\n * A callback fired when the element state changes, after any toggle animations have finished.\n *\n * - If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the\n * `newState` property will be set to `open`.\n * - If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the\n * `newState` will be `closed`.\n *\n * Learn more about the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.\n */\n aftertoggle?: CallbackEventListener;\n}" } }, "DetailsElement": { @@ -56372,7 +56382,7 @@ "syntaxKind": "PropertySignature", "name": "defaultOpen", "value": "boolean", - "description": "Indicates whether the element should be open by default.\n\nThis reflects to the `open` attribute.", + "description": "Whether the element should be open when it first renders. This reflects to the `open` attribute and only takes effect on the initial render.", "isOptional": true, "defaultValue": "false" }, @@ -56381,7 +56391,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -56389,7 +56399,7 @@ "syntaxKind": "PropertySignature", "name": "onAfterToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true }, { @@ -56397,7 +56407,7 @@ "syntaxKind": "PropertySignature", "name": "onToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [toggle event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), and the [`newState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState`](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState) properties.", "isOptional": true }, { @@ -56405,7 +56415,7 @@ "syntaxKind": "PropertySignature", "name": "open", "value": "boolean", - "description": "Whether the element is open.\n\nThis does not reflect to any attribute.", + "description": "Whether the element is currently open. Use this for controlled component patterns where your application manages the open state directly. This does not reflect to any attribute.", "isOptional": true, "defaultValue": "false" }, @@ -56414,7 +56424,7 @@ "syntaxKind": "PropertySignature", "name": "toggleTransition", "value": "'none' | 'auto'", - "description": "Sets the transition between the two states.", + "description": "The transition style used when toggling between open and closed states.\n\n- `none`: Switches states immediately without animation.\n- `auto`: Uses the default animated transition.", "isOptional": true, "defaultValue": "'auto'" } @@ -56426,7 +56436,7 @@ "src/surfaces/checkout/components/Divider.ts": { "filePath": "src/surfaces/checkout/components/Divider.ts", "name": "DividerProps", - "description": "The divider component creates clear visual separation between elements in the interface. Use divider to separate distinct content groups in forms, settings panels, lists, or page sections, helping users scan and understand content organization.\n\nDividers support both horizontal and vertical orientations, along with different visual strengths for varying levels of emphasis. For more structured content grouping with headings, use [section](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/layout-and-structure/section).", + "description": "", "isPublicDocs": true, "members": [ { @@ -56443,7 +56453,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -57382,7 +57392,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -58750,7 +58760,7 @@ "src/surfaces/checkout/components/DropZone.ts": { "filePath": "src/surfaces/checkout/components/DropZone.ts", "name": "DropZoneElementProps", - "description": "The drop zone component lets users upload files through drag-and-drop or by clicking to browse. Use for file uploads such as images, documents, or CSV imports.\n\nThe component provides visual feedback during drag operations and supports file type validation through the `accept` property. Rejected files trigger the `droprejected` event for custom error handling.", + "description": "", "isPublicDocs": true, "members": [ { @@ -58775,7 +58785,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -58784,7 +58794,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -58792,7 +58802,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -58800,7 +58810,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -58817,7 +58827,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -58854,7 +58864,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished selecting** a file or files.", + "description": "A callback fired when the user has finished selecting one or more files.", "isOptional": true }, { @@ -58870,7 +58880,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the file selection.", + "description": "A callback fired when the user makes any changes to the file selection.", "isOptional": true } ], @@ -58881,7 +58891,7 @@ "src/surfaces/checkout/components/DropZone.ts": { "filePath": "src/surfaces/checkout/components/DropZone.ts", "name": "DropZoneElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -58889,7 +58899,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has finished selecting a file or files.", + "description": "A callback fired when the drop zone value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -58897,7 +58907,7 @@ "syntaxKind": "PropertySignature", "name": "droprejected", "value": "CallbackEventListener", - "description": "Callback when rejected files are dropped. Files are rejected based on the `accept` prop.", + "description": "A callback fired when a dropped file is rejected due to file type or size restrictions.", "isOptional": true }, { @@ -58905,11 +58915,11 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the drop zone.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface DropZoneElementEvents {\n /**\n * Callback when rejected files are dropped. Files are rejected based on the `accept` prop.\n */\n droprejected?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n */\n input?: CallbackEventListener;\n /**\n * Callback when the user has finished selecting a file or files.\n */\n change?: CallbackEventListener;\n}" + "value": "export interface DropZoneElementEvents {\n /**\n * A callback fired when the drop zone value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the drop zone.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when a dropped file is rejected due to file type or size restrictions.\n */\n droprejected?: CallbackEventListener;\n}" } }, "DropZoneElement": { @@ -59585,7 +59595,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -59699,7 +59709,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -59869,7 +59879,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -59968,7 +59978,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -60034,7 +60044,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -61312,7 +61322,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -61321,7 +61331,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -61329,7 +61339,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -61337,7 +61347,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -61354,7 +61364,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -61362,7 +61372,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished selecting** a file or files.", + "description": "A callback fired when the user has finished selecting one or more files.", "isOptional": true }, { @@ -61378,7 +61388,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the file selection.", + "description": "A callback fired when the user makes any changes to the file selection.", "isOptional": true }, { @@ -61407,7 +61417,7 @@ "src/surfaces/checkout/components/EmailField.ts": { "filePath": "src/surfaces/checkout/components/EmailField.ts", "name": "EmailFieldElementProps", - "description": "The email field component captures email address input. Use it to collect email information in forms, customer profiles, or contact workflows.\n\nEmail field doesn't perform automatic email validation. Implement your own validation logic, and use the `error` property to display validation results. For general text input, use [text field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/text-field).", + "description": "", "isPublicDocs": true, "members": [ { @@ -61415,7 +61425,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -61424,7 +61434,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -61432,7 +61442,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -61441,7 +61451,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -61449,7 +61459,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -61457,7 +61467,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -61465,7 +61475,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -61483,7 +61493,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -61492,7 +61502,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -61510,7 +61520,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -61555,7 +61565,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -61571,7 +61581,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -61582,7 +61592,7 @@ "src/surfaces/checkout/components/EmailField.ts": { "filePath": "src/surfaces/checkout/components/EmailField.ts", "name": "EmailFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -61590,7 +61600,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the email field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -61598,7 +61608,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the email field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -61606,7 +61616,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the email field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -61614,18 +61624,18 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the email field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface EmailFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface EmailFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the email field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the email field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the email field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the email field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "EmailFieldElementSlots": { "src/surfaces/checkout/components/EmailField.ts": { "filePath": "src/surfaces/checkout/components/EmailField.ts", "name": "EmailFieldElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -61633,11 +61643,11 @@ "syntaxKind": "PropertySignature", "name": "accessory", "value": "HTMLElement", - "description": "Additional content to be displayed in the field. Commonly used to display an icon that activates a tooltip providing more information.", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", "isOptional": true } ], - "value": "export interface EmailFieldElementSlots {\n /**\n * Additional content to be displayed in the field.\n * Commonly used to display an icon that activates a tooltip providing more information.\n */\n accessory?: HTMLElement;\n}" + "value": "export interface EmailFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" } }, "EmailFieldElement": { @@ -62107,7 +62117,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -62298,7 +62308,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -62313,7 +62323,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -62427,7 +62437,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -62597,7 +62607,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -62696,7 +62706,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -62704,7 +62714,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -62771,7 +62781,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -62780,7 +62790,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -63713,7 +63723,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -64045,7 +64055,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -64054,7 +64064,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -64062,7 +64072,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -64071,7 +64081,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -64079,7 +64089,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -64087,7 +64097,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -64095,7 +64105,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -64113,7 +64123,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -64122,7 +64132,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -64138,7 +64148,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -64154,7 +64164,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -64172,7 +64182,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -64201,7 +64211,7 @@ "src/surfaces/checkout/components/Form.ts": { "filePath": "src/surfaces/checkout/components/Form.ts", "name": "FormElementProps", - "description": "The form component wraps form controls and enables implicit submission, allowing users to submit from any input by pressing **Enter**. Use form to group related input fields and handle form submission through JavaScript event handlers.\n\nUnlike HTML forms, form doesn't automatically submit data using HTTP—you must register a `submit` event to process form data programmatically. For Shopify Functions configuration forms, use [function settings](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/function-settings).", + "description": "", "isPublicDocs": true, "members": [ { @@ -64220,7 +64230,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -64250,7 +64260,7 @@ "src/surfaces/checkout/components/Form.ts": { "filePath": "src/surfaces/checkout/components/Form.ts", "name": "FormElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -64258,11 +64268,11 @@ "syntaxKind": "PropertySignature", "name": "submit", "value": "CallbackEventListener", - "description": "A callback that is run when the form is submitted.", + "description": "A callback fired when the form is submitted.\n\nLearn more about the [submit event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event).", "isOptional": true } ], - "value": "export interface FormElementEvents {\n /**\n * A callback that is run when the form is submitted.\n */\n submit?: CallbackEventListener;\n}" + "value": "export interface FormElementEvents {\n /**\n * A callback fired when the form is submitted.\n *\n * Learn more about the [submit event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event).\n */\n submit?: CallbackEventListener;\n}" } }, "FormElement": { @@ -65199,7 +65209,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -66586,7 +66596,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -66607,7 +66617,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "ReducedAlignContentKeyword", "value": "'center' | 'start' | 'end' | 'normal' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch'", - "description": "", + "description": "The subset of `align-content` values available for the grid component.\n\n- `center`: Packs rows toward the center of the grid.\n- `start`: Packs rows toward the start of the block axis.\n- `end`: Packs rows toward the end of the block axis.\n- `normal`: Default browser behavior.\n- `space-between`: Distributes rows evenly with no space at the edges.\n- `space-around`: Distributes rows evenly with equal space around each.\n- `space-evenly`: Distributes rows with equal space between and at the edges.\n- `stretch`: Stretches rows to fill the available space.", "isPublicDocs": true } }, @@ -66617,7 +66627,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "ReducedAlignItemsKeyword", "value": "'center' | 'start' | 'end' | 'normal' | 'baseline' | 'stretch'", - "description": "", + "description": "The subset of `align-items` values available for the grid component.\n\n- `center`: Centers items along the block axis.\n- `start`: Aligns items to the start of the block axis.\n- `end`: Aligns items to the end of the block axis.\n- `normal`: Default browser behavior.\n- `baseline`: Aligns items along their text baseline.\n- `stretch`: Stretches items to fill the cell along the block axis.", "isPublicDocs": true } }, @@ -66627,7 +66637,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "ReducedJustifyContentKeyword", "value": "'center' | 'start' | 'end' | 'normal' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch'", - "description": "", + "description": "The subset of `justify-content` values available for the grid component.\n\n- `center`: Packs columns toward the center of the grid.\n- `start`: Packs columns toward the start of the inline axis.\n- `end`: Packs columns toward the end of the inline axis.\n- `normal`: Default browser behavior.\n- `space-between`: Distributes columns evenly with no space at the edges.\n- `space-around`: Distributes columns evenly with equal space around each.\n- `space-evenly`: Distributes columns with equal space between and at the edges.\n- `stretch`: Stretches columns to fill the available space.", "isPublicDocs": true } }, @@ -66637,7 +66647,7 @@ "syntaxKind": "TypeAliasDeclaration", "name": "ReducedJustifyItemsKeyword", "value": "'center' | 'start' | 'end' | 'normal' | 'baseline' | 'stretch'", - "description": "", + "description": "The subset of `justify-items` values available for the grid component.\n\n- `center`: Centers items along the inline axis.\n- `start`: Aligns items to the start of the inline axis.\n- `end`: Aligns items to the end of the inline axis.\n- `normal`: Default browser behavior.\n- `baseline`: Aligns items along their text baseline.\n- `stretch`: Stretches items to fill the cell along the inline axis.", "isPublicDocs": true } }, @@ -66645,7 +66655,7 @@ "src/surfaces/checkout/components/Grid.ts": { "filePath": "src/surfaces/checkout/components/Grid.ts", "name": "GridProps", - "description": "The grid component organizes content in a matrix of rows and columns to create responsive page layouts. Use grid to build complex, multi-column layouts that adapt to different screen sizes and maintain consistent alignment.\n\nGrid follows the CSS grid layout pattern and supports flexible column configurations, gap spacing, and alignment properties for precise layout control. For simpler linear layouts (horizontal or vertical), use [stack](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/layout-and-structure/stack).", + "description": "", "isPublicDocs": true, "members": [ { @@ -66670,7 +66680,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -66679,7 +66689,7 @@ "syntaxKind": "PropertySignature", "name": "alignContent", "value": "MaybeResponsive", - "description": "Aligns the grid along the block (column) axis.\n\nThis overrides the block value of `placeContent`.", + "description": "Controls how the grid's rows are distributed along the block (column) axis when there is extra space. Set to an empty string to use the default.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -66688,7 +66698,7 @@ "syntaxKind": "PropertySignature", "name": "alignItems", "value": "MaybeResponsive", - "description": "Aligns the grid items along the block (column) axis.\n\nThis overrides the block value of `placeItems`.", + "description": "Aligns grid items along the block (column) axis. Set to an empty string to use the default.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -66697,7 +66707,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the grid.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -66715,9 +66725,9 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", "isOptional": true, - "defaultValue": "'none' - equivalent to `none base auto`.", + "defaultValue": "'none'", "examples": [ { "title": "Example", @@ -66736,7 +66746,7 @@ "syntaxKind": "PropertySignature", "name": "borderColor", "value": "'' | 'base'", - "description": "Controls the color of the border using the design system's color scale.\n\nWhen set, this overrides the color value specified in the `border` property. Choose from `subdued`, `base`, or `strong` to match the visual emphasis needed.", + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -66745,7 +66755,7 @@ "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the grid's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -66763,7 +66773,7 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -66781,7 +66791,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -66817,7 +66827,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -66834,7 +66844,7 @@ "syntaxKind": "PropertySignature", "name": "justifyContent", "value": "MaybeResponsive", - "description": "Aligns the grid along the inline (row) axis.\n\nThis overrides the inline value of `placeContent`.", + "description": "Controls how the grid's columns are distributed along the inline (row) axis when there is extra space. Set to an empty string to use the default.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -66843,7 +66853,7 @@ "syntaxKind": "PropertySignature", "name": "justifyItems", "value": "MaybeResponsive", - "description": "Aligns the grid items along the inline (row) axis.\n\nThis overrides the inline value of `placeItems`.", + "description": "Aligns grid items along the inline (row) axis. Set to an empty string to use the default.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -66960,7 +66970,7 @@ "syntaxKind": "PropertySignature", "name": "placeContent", "value": "MaybeResponsive<`${ReducedAlignContentKeyword} ${ReducedJustifyContentKeyword}` | ReducedAlignContentKeyword>", - "description": "A shorthand property for `justify-content` and `align-content`.", + "description": "A shorthand for `justifyContent` and `alignContent` that sets both distribution axes at once.", "isOptional": true, "defaultValue": "'normal normal'" }, @@ -66969,7 +66979,7 @@ "syntaxKind": "PropertySignature", "name": "placeItems", "value": "MaybeResponsive<`${ReducedAlignItemsKeyword} ${ReducedJustifyItemsKeyword}` | ReducedAlignItemsKeyword>", - "description": "A shorthand property for `justify-items` and `align-items`.", + "description": "A shorthand for `justifyItems` and `alignItems` that sets both alignment axes at once.", "isOptional": true, "defaultValue": "'normal normal'" }, @@ -66983,7 +66993,7 @@ "defaultValue": "'' - meaning no override" } ], - "value": "export interface GridProps extends Pick {\n alignContent?: MaybeResponsive;\n alignItems?: MaybeResponsive;\n background?: Extract;\n border?: BorderShorthand;\n borderColor?: ReducedColorKeyword | '';\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n borderRadius?: MaybeAllValuesShorthandProperty>;\n justifyContent?: MaybeResponsive;\n justifyItems?: MaybeResponsive;\n placeContent?: MaybeResponsive<`${ReducedAlignContentKeyword} ${ReducedJustifyContentKeyword}` | ReducedAlignContentKeyword>;\n placeItems?: MaybeResponsive<`${ReducedAlignItemsKeyword} ${ReducedJustifyItemsKeyword}` | ReducedAlignItemsKeyword>;\n}" + "value": "export interface GridProps extends Pick {\n /**\n * Controls how the grid's rows are distributed along the block (column) axis when there is extra space. Set to an empty string to use the default.\n *\n * @default '' - meaning no override\n */\n alignContent?: MaybeResponsive;\n /**\n * Aligns grid items along the block (column) axis. Set to an empty string to use the default.\n *\n * @default '' - meaning no override\n */\n alignItems?: MaybeResponsive;\n /**\n * The background color of the grid.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The color of the border using the design system's color scale. Overrides the color value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderColor?: ReducedColorKeyword | '';\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The roundedness of the grid's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n /**\n * Controls how the grid's columns are distributed along the inline (row) axis when there is extra space. Set to an empty string to use the default.\n *\n * @default '' - meaning no override\n */\n justifyContent?: MaybeResponsive;\n /**\n * Aligns grid items along the inline (row) axis. Set to an empty string to use the default.\n *\n * @default '' - meaning no override\n */\n justifyItems?: MaybeResponsive;\n /**\n * A shorthand for `justifyContent` and `alignContent` that sets both distribution axes at once.\n *\n * @default 'normal normal'\n */\n placeContent?: MaybeResponsive<`${ReducedAlignContentKeyword} ${ReducedJustifyContentKeyword}` | ReducedAlignContentKeyword>;\n /**\n * A shorthand for `justifyItems` and `alignItems` that sets both alignment axes at once.\n *\n * @default 'normal normal'\n */\n placeItems?: MaybeResponsive<`${ReducedAlignItemsKeyword} ${ReducedJustifyItemsKeyword}` | ReducedAlignItemsKeyword>;\n}" } }, "SpacingKeyword": { @@ -67025,7 +67035,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -67062,16 +67072,18 @@ "syntaxKind": "PropertySignature", "name": "alignContent", "value": "MaybeResponsive", - "description": "Aligns the grid along the block (column) axis.\n\nThis overrides the block value of `placeContent`.", - "isOptional": true + "description": "Controls how the grid's rows are distributed along the block (column) axis when there is extra space. Set to an empty string to use the default.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", "syntaxKind": "PropertySignature", "name": "alignItems", "value": "MaybeResponsive", - "description": "Aligns the grid items along the block (column) axis.\n\nThis overrides the block value of `placeItems`.", - "isOptional": true + "description": "Aligns grid items along the block (column) axis. Set to an empty string to use the default.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", @@ -67519,7 +67531,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the grid.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -67558,23 +67570,25 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", - "isOptional": true + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", "syntaxKind": "PropertySignature", "name": "borderColor", "value": "'' | 'base'", - "description": "Controls the color of the border using the design system's color scale.\n\nWhen set, this overrides the color value specified in the `border` property. Choose from `subdued`, `base`, or `strong` to match the visual emphasis needed.", - "isOptional": true + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the grid's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -67592,8 +67606,9 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", - "isOptional": true + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", @@ -67770,7 +67785,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -68066,7 +68081,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -68174,16 +68189,18 @@ "syntaxKind": "PropertySignature", "name": "justifyContent", "value": "MaybeResponsive", - "description": "Aligns the grid along the inline (row) axis.\n\nThis overrides the inline value of `placeContent`.", - "isOptional": true + "description": "Controls how the grid's columns are distributed along the inline (row) axis when there is extra space. Set to an empty string to use the default.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", "syntaxKind": "PropertySignature", "name": "justifyItems", "value": "MaybeResponsive", - "description": "Aligns the grid items along the inline (row) axis.\n\nThis overrides the inline value of `placeItems`.", - "isOptional": true + "description": "Aligns grid items along the inline (row) axis. Set to an empty string to use the default.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", @@ -69211,16 +69228,18 @@ "syntaxKind": "PropertySignature", "name": "placeContent", "value": "MaybeResponsive<`${ReducedAlignContentKeyword} ${ReducedJustifyContentKeyword}` | ReducedAlignContentKeyword>", - "description": "A shorthand property for `justify-content` and `align-content`.", - "isOptional": true + "description": "A shorthand for `justifyContent` and `alignContent` that sets both distribution axes at once.", + "isOptional": true, + "defaultValue": "'normal normal'" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", "syntaxKind": "PropertySignature", "name": "placeItems", "value": "MaybeResponsive<`${ReducedAlignItemsKeyword} ${ReducedJustifyItemsKeyword}` | ReducedAlignItemsKeyword>", - "description": "A shorthand property for `justify-items` and `align-items`.", - "isOptional": true + "description": "A shorthand for `justifyItems` and `alignItems` that sets both alignment axes at once.", + "isOptional": true, + "defaultValue": "'normal normal'" }, { "filePath": "src/surfaces/checkout/components/Grid.ts", @@ -69592,7 +69611,7 @@ "src/surfaces/checkout/components/GridItem.ts": { "filePath": "src/surfaces/checkout/components/GridItem.ts", "name": "GridItemProps", - "description": "The grid item component represents a single cell within a grid layout, allowing you to control how content is positioned and sized within the grid. Use grid item as a child of grid to specify column span, row span, and positioning for individual content areas.\n\nGrid item supports precise placement control through column and row properties, enabling you to create complex layouts where different items occupy varying amounts of space or appear in specific grid positions.", + "description": "", "isPublicDocs": true, "members": [ { @@ -69617,7 +69636,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -69626,7 +69645,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the grid item.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -69644,9 +69663,9 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", "isOptional": true, - "defaultValue": "'none' - equivalent to `none base auto`.", + "defaultValue": "'none'", "examples": [ { "title": "Example", @@ -69665,7 +69684,7 @@ "syntaxKind": "PropertySignature", "name": "borderColor", "value": "'' | 'base'", - "description": "Controls the color of the border using the design system's color scale.\n\nWhen set, this overrides the color value specified in the `border` property. Choose from `subdued`, `base`, or `strong` to match the visual emphasis needed.", + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -69674,7 +69693,7 @@ "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the grid item's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -69692,7 +69711,7 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -69701,7 +69720,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -69728,7 +69747,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -69849,7 +69868,7 @@ "defaultValue": "'' - meaning no override" } ], - "value": "export interface GridItemProps extends Pick {\n background?: Extract;\n border?: BorderShorthand;\n borderColor?: ReducedColorKeyword | '';\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n borderRadius?: MaybeAllValuesShorthandProperty>;\n}" + "value": "export interface GridItemProps extends Pick {\n /**\n * The background color of the grid item.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The color of the border using the design system's color scale. Overrides the color value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderColor?: ReducedColorKeyword | '';\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The roundedness of the grid item's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n}" } }, "GridItemElement": { @@ -69881,7 +69900,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -70359,7 +70378,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the grid item.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -70398,23 +70417,25 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", - "isOptional": true + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'" }, { "filePath": "src/surfaces/checkout/components/GridItem.ts", "syntaxKind": "PropertySignature", "name": "borderColor", "value": "'' | 'base'", - "description": "Controls the color of the border using the design system's color scale.\n\nWhen set, this overrides the color value specified in the `border` property. Choose from `subdued`, `base`, or `strong` to match the visual emphasis needed.", - "isOptional": true + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/GridItem.ts", "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the grid item's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -70432,8 +70453,9 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", - "isOptional": true + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/GridItem.ts", @@ -70601,7 +70623,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -70888,7 +70910,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -72373,7 +72395,7 @@ "src/surfaces/checkout/components/Heading.ts": { "filePath": "src/surfaces/checkout/components/Heading.ts", "name": "HeadingProps", - "description": "The heading component renders hierarchical titles to communicate the structure and organization of page content. Use heading to create section titles and content headers that help users understand information hierarchy and navigate content.\n\nHeading levels adjust automatically based on nesting within parent [section](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/layout-and-structure/section) components, ensuring meaningful and accessible page outlines without manual level management.", + "description": "", "isPublicDocs": true, "members": [ { @@ -72390,7 +72412,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -73329,7 +73351,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -74697,7 +74719,7 @@ "src/surfaces/checkout/components/Icon.ts": { "filePath": "src/surfaces/checkout/components/Icon.ts", "name": "IconProps", - "description": "The icon component renders graphic symbols to visually communicate actions, status, and navigation throughout the interface. Use icon to reinforce button actions, indicate status states, or provide wayfinding cues that help users understand available functionality.\n\nIcons support multiple sizes, tones for semantic meaning, and can be integrated with other components like [button](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/actions/button), [badge](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/feedback-and-status-indicators/badge), and [chip](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/typography-and-content/chip) to enhance visual communication.", + "description": "", "isPublicDocs": true, "members": [ { @@ -74705,7 +74727,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -75661,7 +75683,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -77055,7 +77077,7 @@ "src/surfaces/checkout/components/Image.ts": { "filePath": "src/surfaces/checkout/components/Image.ts", "name": "ImageProps", - "description": "The image component embeds images within the interface with control over presentation and loading behavior. Use image to visually illustrate concepts, showcase products, display user content, or support tasks and interactions with visual context.\n\nImages support responsive sizing, alt text for accessibility, aspect ratio control, and loading states for progressive enhancement. For small preview images in lists or tables, use [thumbnail](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/media-and-visuals/thumbnail). For profile images, use [avatar](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/media-and-visuals/avatar).", + "description": "", "isPublicDocs": true, "members": [ { @@ -77138,7 +77160,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -78180,7 +78202,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -79599,7 +79621,7 @@ "src/surfaces/checkout/components/Link.ts": { "filePath": "src/surfaces/checkout/components/Link.ts", "name": "LinkElementProps", - "description": "The link component makes text interactive, allowing users to navigate to other pages or perform specific actions. Use link for navigation, external references, or triggering actions while maintaining standard link semantics and accessibility.\n\nLinks support standard URLs, custom protocols, navigation within Shopify admin pages, and can open in new windows for external destinations. For prominent actions or form submissions, use [button](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/actions/button) instead.", + "description": "", "isPublicDocs": true, "members": [ { @@ -79615,7 +79637,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -79624,7 +79646,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -79640,7 +79662,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -79704,7 +79726,7 @@ "src/surfaces/checkout/components/Link.ts": { "filePath": "src/surfaces/checkout/components/Link.ts", "name": "LinkElementEvents", - "description": "The link component provides event callbacks for handling user interactions. Learn more about [handling events](/docs/api/polaris/using-polaris-web-components#handling-events).", + "description": "", "isPublicDocs": true, "members": [ { @@ -80327,7 +80349,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -80336,7 +80358,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -80675,7 +80697,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -82086,7 +82108,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -82095,7 +82117,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -82111,7 +82133,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -82164,7 +82186,7 @@ "src/surfaces/checkout/components/ListItem.ts": { "filePath": "src/surfaces/checkout/components/ListItem.ts", "name": "ListItemProps", - "description": "The list item component represents a single entry within an ordered list or unordered list. Use list item to structure individual points, steps, or items within a list, with each item automatically receiving appropriate list markers (bullets or numbers) from its parent list.\n\nList item must be used as a direct child of ordered list or unordered list components. Each list item can contain text, inline formatting, or other components to create rich list content.", + "description": "", "isPublicDocs": true, "members": [ { @@ -82172,7 +82194,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -83102,7 +83124,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -84470,7 +84492,7 @@ "src/surfaces/checkout/components/Map.ts": { "filePath": "src/surfaces/checkout/components/Map.ts", "name": "MapElementProps", - "description": "Use Map to display a map on a page. This component is useful for displaying a map of a location, such as a store or a customer’s address.", + "description": "", "isPublicDocs": true, "members": [ { @@ -84503,7 +84525,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -84604,7 +84626,7 @@ "src/surfaces/checkout/components/Map.ts": { "filePath": "src/surfaces/checkout/components/Map.ts", "name": "MapEvents", - "description": "The event handlers for the map component.", + "description": "", "isPublicDocs": true, "members": [ { @@ -85297,7 +85319,7 @@ "src/surfaces/checkout/components/Map.ts": { "filePath": "src/surfaces/checkout/components/Map.ts", "name": "MapElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -86284,7 +86306,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -87756,7 +87778,7 @@ "src/surfaces/checkout/components/Map.ts": { "filePath": "src/surfaces/checkout/components/Map.ts", "name": "MapProps", - "description": "The properties for the map component when it's used in JSX.", + "description": "", "isPublicDocs": true, "members": [ { @@ -87789,7 +87811,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -87956,7 +87978,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` target should take when this marker is activated. See the documentation of particular components for the actions they support. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.", "isOptional": true, "defaultValue": "'--auto'" }, @@ -87965,7 +87987,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "The ID of a component that should respond to activations (for example, clicks) on this component. Refer to the `command` property for how to control the behavior of the target. Learn more about the [`commandfor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", "isOptional": true }, { @@ -87996,14 +88018,14 @@ "defaultValue": "0" } ], - "value": "export interface MapMarkerElementProps extends Pick {\n /**\n * Sets the action the `commandFor` target should take when this marker is activated. See the documentation of particular components for the actions they support. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n *\n * - `--auto`: a default action for the target component.\n * - `--show`: shows the target component.\n * - `--hide`: hides the target component.\n * - `--toggle`: toggles the target component.\n *\n * @default '--auto'\n */\n command?: Extract;\n /**\n * The ID of a component that should respond to activations (for example, clicks) on this component. Refer to the `command` property for how to control the behavior of the target. Learn more about the [`commandfor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n */\n commandFor?: MapMarkerProps$1['commandFor'];\n}" + "value": "export interface MapMarkerElementProps extends Pick {\n /**\n * Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n *\n * - `--auto`: a default action for the target component.\n * - `--show`: shows the target component.\n * - `--hide`: hides the target component.\n * - `--toggle`: toggles the target component.\n *\n * @default '--auto'\n */\n command?: Extract;\n /**\n * The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n */\n commandFor?: MapMarkerProps$1['commandFor'];\n}" } }, "MapMarkerEvents": { "src/surfaces/checkout/components/MapMarker.ts": { "filePath": "src/surfaces/checkout/components/MapMarker.ts", "name": "MapMarkerEvents", - "description": "The event handlers for the map marker component.", + "description": "", "isPublicDocs": true, "members": [ { @@ -88041,7 +88063,7 @@ "src/surfaces/checkout/components/MapMarker.ts": { "filePath": "src/surfaces/checkout/components/MapMarker.ts", "name": "MapMarkerElementSlots", - "description": "The named slots for the map marker component. Slots allow you to insert custom content into specific areas of the marker.", + "description": "", "isPublicDocs": true, "members": [ { @@ -88682,7 +88704,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` target should take when this marker is activated. See the documentation of particular components for the actions they support. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.", "isOptional": true, "defaultValue": "'--auto'" }, @@ -88691,7 +88713,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "The ID of a component that should respond to activations (for example, clicks) on this component. Refer to the `command` property for how to control the behavior of the target. Learn more about the [`commandfor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", "isOptional": true }, { @@ -90409,7 +90431,7 @@ "src/surfaces/checkout/components/MapMarker.ts": { "filePath": "src/surfaces/checkout/components/MapMarker.ts", "name": "MapMarkerProps", - "description": "The properties for the map marker component when it's used in JSX.", + "description": "", "isPublicDocs": true, "members": [ { @@ -90443,7 +90465,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` target should take when this marker is activated. See the documentation of particular components for the actions they support. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.", "isOptional": true, "defaultValue": "'--auto'" }, @@ -90452,7 +90474,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "The ID of a component that should respond to activations (for example, clicks) on this component. Refer to the `command` property for how to control the behavior of the target. Learn more about the [`commandfor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", "isOptional": true }, { @@ -90498,7 +90520,7 @@ "src/surfaces/checkout/components/Modal.ts": { "filePath": "src/surfaces/checkout/components/Modal.ts", "name": "ModalElementProps", - "description": "Displays content in an overlay. Use to create a distraction-free experience such as a confirmation dialog or a settings panel.", + "description": "", "isPublicDocs": true, "members": [ { @@ -90522,7 +90544,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -90551,7 +90573,7 @@ "src/surfaces/checkout/components/Modal.ts": { "filePath": "src/surfaces/checkout/components/Modal.ts", "name": "ModalElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -90578,7 +90600,7 @@ "src/surfaces/checkout/components/Modal.ts": { "filePath": "src/surfaces/checkout/components/Modal.ts", "name": "ModalEvents", - "description": "The event callbacks for monitoring modal visibility changes.", + "description": "", "isPublicDocs": true, "members": [ { @@ -90621,7 +90643,7 @@ "src/surfaces/checkout/components/Modal.ts": { "filePath": "src/surfaces/checkout/components/Modal.ts", "name": "ModalElementMethods", - "description": "Learn more about [component methods](/docs/api/checkout-ui-extensions/latest/using-polaris-components#methods).", + "description": "", "isPublicDocs": true, "members": [ { @@ -90639,7 +90661,7 @@ "src/surfaces/checkout/components/Modal.ts": { "filePath": "src/surfaces/checkout/components/Modal.ts", "name": "ModalElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -91624,7 +91646,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -93038,7 +93060,7 @@ "src/surfaces/checkout/components/Modal.ts": { "filePath": "src/surfaces/checkout/components/Modal.ts", "name": "ModalProps", - "description": "The properties for the modal component when it's used in JSX.", + "description": "", "isPublicDocs": true, "members": [ { @@ -93062,7 +93084,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -93123,7 +93145,7 @@ "src/surfaces/checkout/components/MoneyField.ts": { "filePath": "src/surfaces/checkout/components/MoneyField.ts", "name": "MoneyFieldElementProps", - "description": "The money field component collects monetary values from users with built-in currency formatting and validation. Use money field for prices, costs, or financial amounts to provide proper currency symbols, decimal handling, and numeric validation.\n\nMoney fields support currency codes, automatic formatting, and min/max constraints to ensure users enter valid monetary values. For non-currency numeric input, use [number field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/number-field).", + "description": "", "isPublicDocs": true, "members": [ { @@ -93131,7 +93153,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -93140,7 +93162,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -93148,7 +93170,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -93157,7 +93179,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -93165,7 +93187,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -93173,7 +93195,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -93181,7 +93203,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -93208,7 +93230,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -93216,7 +93238,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -93270,7 +93292,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -93286,7 +93308,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -93297,7 +93319,7 @@ "src/surfaces/checkout/components/MoneyField.ts": { "filePath": "src/surfaces/checkout/components/MoneyField.ts", "name": "MoneyFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -93305,7 +93327,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the money field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -93313,7 +93335,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the money field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -93321,7 +93343,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the money field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -93329,11 +93351,11 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the money field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface MoneyFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface MoneyFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the money field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the money field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the money field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the money field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "MoneyFieldElement": { @@ -93348,7 +93370,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -93357,7 +93379,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -93365,7 +93387,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -93374,7 +93396,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -93382,7 +93404,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -93390,7 +93412,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -93398,7 +93420,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -93425,7 +93447,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -93461,7 +93483,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -93507,7 +93529,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -93516,7 +93538,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -93524,7 +93546,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -93533,7 +93555,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -93541,7 +93563,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -93549,7 +93571,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -93557,7 +93579,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -93584,7 +93606,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -93600,7 +93622,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -93616,7 +93638,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -93624,7 +93646,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -93662,7 +93684,7 @@ "src/surfaces/checkout/components/NumberField.ts": { "filePath": "src/surfaces/checkout/components/NumberField.ts", "name": "NumberFieldElementProps", - "description": "The number field component captures numeric input with built-in number validation. Use it to collect quantities, prices, or other numeric information.\n\nThe component supports min/max constraints and step increments for guided numeric entry. For monetary values with currency formatting, use [money field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/money-field).", + "description": "", "isPublicDocs": true, "members": [ { @@ -93670,7 +93692,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -93688,7 +93710,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -93696,7 +93718,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -93705,7 +93727,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -93722,7 +93744,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -93739,7 +93761,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -93747,7 +93769,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -93774,7 +93796,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -93792,7 +93814,7 @@ "syntaxKind": "PropertySignature", "name": "prefix", "value": "string", - "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", + "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -93801,7 +93823,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -93828,7 +93850,7 @@ "syntaxKind": "PropertySignature", "name": "suffix", "value": "string", - "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", + "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -93864,7 +93886,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -93880,7 +93902,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -93891,7 +93913,7 @@ "src/surfaces/checkout/components/NumberField.ts": { "filePath": "src/surfaces/checkout/components/NumberField.ts", "name": "NumberFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -93899,7 +93921,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the number field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -93907,7 +93929,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the number field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -93915,7 +93937,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the number field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -93923,18 +93945,18 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the number field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface NumberFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface NumberFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the number field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the number field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the number field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the number field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "NumberFieldElementSlots": { "src/surfaces/checkout/components/NumberField.ts": { "filePath": "src/surfaces/checkout/components/NumberField.ts", "name": "NumberFieldElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -93942,11 +93964,11 @@ "syntaxKind": "PropertySignature", "name": "accessory", "value": "HTMLElement", - "description": "Additional content to be displayed in the field. Commonly used to display an icon that activates a tooltip providing more information.", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", "isOptional": true } ], - "value": "export interface NumberFieldElementSlots {\n /**\n * Additional content to be displayed in the field.\n * Commonly used to display an icon that activates a tooltip providing more information.\n */\n accessory?: HTMLElement;\n}" + "value": "export interface NumberFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" } }, "NumberFieldElement": { @@ -94416,7 +94438,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -94616,7 +94638,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -94631,7 +94653,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -94745,7 +94767,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -94923,7 +94945,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -95024,7 +95046,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -95032,7 +95054,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -95108,7 +95130,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -95997,7 +96019,7 @@ "syntaxKind": "PropertySignature", "name": "prefix", "value": "string", - "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", + "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -96050,7 +96072,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -96301,7 +96323,7 @@ "syntaxKind": "PropertySignature", "name": "suffix", "value": "string", - "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", + "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -96400,7 +96422,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -96418,7 +96440,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -96426,7 +96448,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -96435,7 +96457,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -96451,7 +96473,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -96468,7 +96490,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -96476,7 +96498,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -96503,7 +96525,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -96519,7 +96541,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -96535,7 +96557,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -96553,7 +96575,7 @@ "syntaxKind": "PropertySignature", "name": "prefix", "value": "string", - "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", + "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -96562,7 +96584,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -96589,7 +96611,7 @@ "syntaxKind": "PropertySignature", "name": "suffix", "value": "string", - "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", + "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -96609,7 +96631,7 @@ "src/surfaces/checkout/components/Option.ts": { "filePath": "src/surfaces/checkout/components/Option.ts", "name": "OptionProps", - "description": "Represents a single option within a select component. Use only as a child of `s-select` components.", + "description": "", "isPublicDocs": true, "members": [ { @@ -96625,7 +96647,7 @@ "syntaxKind": "PropertySignature", "name": "defaultSelected", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is selected by default.", "isOptional": true, "defaultValue": "false" }, @@ -96634,7 +96656,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -96643,7 +96665,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -96651,7 +96673,7 @@ "syntaxKind": "PropertySignature", "name": "selected", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently selected.", "isOptional": true, "defaultValue": "false" }, @@ -97324,7 +97346,7 @@ "syntaxKind": "PropertySignature", "name": "defaultSelected", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is selected by default.", "isOptional": true, "defaultValue": "false" }, @@ -97340,7 +97362,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -97616,7 +97638,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -98833,7 +98855,7 @@ "syntaxKind": "PropertySignature", "name": "selected", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently selected.", "isOptional": true, "defaultValue": "false" }, @@ -99001,7 +99023,7 @@ "src/surfaces/checkout/components/OrderedList.ts": { "filePath": "src/surfaces/checkout/components/OrderedList.ts", "name": "OrderedListProps", - "description": "The ordered list component displays a numbered list of related items in a specific sequence. Use ordered list to present step-by-step instructions, ranked items, procedures, or any content where order and sequence matter to understanding.\n\nOrdered lists automatically number items and support nested lists for hierarchical content organization. For items where order doesn't matter, use [unordered list](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/layout-and-structure/unordered-list).", + "description": "", "isPublicDocs": true, "members": [ { @@ -99009,7 +99031,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -99939,7 +99961,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -101307,7 +101329,7 @@ "src/surfaces/checkout/components/Paragraph.ts": { "filePath": "src/surfaces/checkout/components/Paragraph.ts", "name": "ParagraphProps", - "description": "The paragraph component displays blocks of text content and can contain inline elements like buttons, links, or emphasized text. Use paragraph to present standalone blocks of readable content, descriptions, or explanatory text.\n\nParagraphs support alignment options and can wrap inline components to create rich, formatted content blocks. For inline text styling, use [text](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/typography-and-content/text).", + "description": "", "isPublicDocs": true, "members": [ { @@ -101315,7 +101337,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -101324,7 +101346,7 @@ "syntaxKind": "PropertySignature", "name": "color", "value": "'base' | 'subdued'", - "description": "Modify the color to be more or less intense.", + "description": "The color emphasis level that controls visual intensity.\n\n- `subdued`: Deemphasized color for secondary text, supporting labels, and less critical interface elements.\n- `base`: Primary color for body text, standard UI elements, and general content with good readability.\n- `strong`: Emphasized color for headings, key labels, and interactive elements that need prominence.", "isOptional": true, "defaultValue": "'base'" }, @@ -101333,7 +101355,7 @@ "syntaxKind": "PropertySignature", "name": "dir", "value": "'ltr' | 'rtl' | 'auto' | ''", - "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: languages written from left to right (such as English)\n- `rtl`: languages written from right to left (such as Arabic)\n- `auto`: the user agent determines the direction based on the content\n- `''`: direction is inherited from parent elements (equivalent to not setting the attribute)", + "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: The languages written from left to right (such as English).\n- `rtl`: The languages written from right to left (such as Arabic).\n- `auto`: The user agent determines the direction based on the content.\n- `\"\"`: The direction is inherited from parent elements (equivalent to not setting the attribute).\n\nLearn more about the [dir attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir).", "isOptional": true, "defaultValue": "''" }, @@ -101342,7 +101364,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -101367,23 +101389,13 @@ "filePath": "src/surfaces/checkout/components/Paragraph.ts", "syntaxKind": "PropertySignature", "name": "type", - "value": "ParagraphType", - "description": "Provide semantic meaning and default styling to the paragraph.\n\nOther presentation properties on `s-paragraph` override the default styling.", + "value": "'small' | 'paragraph'", + "description": "The semantic type and styling treatment for the paragraph content.\n\nOther presentation properties on `s-paragraph` override the default styling.\n\n- `paragraph`: A semantic type that indicates a structural grouping of related content.\n- `small`: A semantic type that indicates less important text.", "isOptional": true, "defaultValue": "'paragraph'" } ], - "value": "export interface ParagraphProps extends Pick {\n color?: Extract;\n tone?: Extract;\n}" - } - }, - "ParagraphType": { - "src/surfaces/checkout/components/components.ts": { - "filePath": "src/surfaces/checkout/components/components.ts", - "syntaxKind": "TypeAliasDeclaration", - "name": "ParagraphType", - "value": "\"paragraph\" | \"small\"", - "description": "", - "isPublicDocs": true + "value": "export interface ParagraphProps extends Pick {\n color?: Extract;\n tone?: Extract;\n /**\n * The semantic type and styling treatment for the paragraph content.\n *\n * Other presentation properties on `s-paragraph` override the default styling.\n *\n * - `paragraph`: A semantic type that indicates a structural grouping of related content.\n * - `small`: A semantic type that indicates less important text.\n *\n * @default 'paragraph'\n */\n type?: Extract;\n}" } }, "ParagraphElement": { @@ -101398,7 +101410,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -101995,7 +102007,7 @@ "syntaxKind": "PropertySignature", "name": "color", "value": "'base' | 'subdued'", - "description": "Modify the color to be more or less intense.", + "description": "The color emphasis level that controls visual intensity.\n\n- `subdued`: Deemphasized color for secondary text, supporting labels, and less critical interface elements.\n- `base`: Primary color for body text, standard UI elements, and general content with good readability.\n- `strong`: Emphasized color for headings, key labels, and interactive elements that need prominence.", "isOptional": true, "defaultValue": "'base'" }, @@ -102053,7 +102065,7 @@ "syntaxKind": "PropertySignature", "name": "dir", "value": "'ltr' | 'rtl' | 'auto' | ''", - "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: languages written from left to right (such as English)\n- `rtl`: languages written from right to left (such as Arabic)\n- `auto`: the user agent determines the direction based on the content\n- `''`: direction is inherited from parent elements (equivalent to not setting the attribute)", + "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: The languages written from left to right (such as English).\n- `rtl`: The languages written from right to left (such as Arabic).\n- `auto`: The user agent determines the direction based on the content.\n- `\"\"`: The direction is inherited from parent elements (equivalent to not setting the attribute).\n\nLearn more about the [dir attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir).", "isOptional": true, "defaultValue": "''" }, @@ -102329,7 +102341,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -103689,8 +103701,8 @@ "filePath": "src/surfaces/checkout/components/Paragraph.ts", "syntaxKind": "PropertySignature", "name": "type", - "value": "ParagraphType", - "description": "Provide semantic meaning and default styling to the paragraph.\n\nOther presentation properties on `s-paragraph` override the default styling.", + "value": "'small' | 'paragraph'", + "description": "The semantic type and styling treatment for the paragraph content.\n\nOther presentation properties on `s-paragraph` override the default styling.\n\n- `paragraph`: A semantic type that indicates a structural grouping of related content.\n- `small`: A semantic type that indicates less important text.", "isOptional": true, "defaultValue": "'paragraph'" }, @@ -103717,7 +103729,7 @@ "src/surfaces/checkout/components/PasswordField.ts": { "filePath": "src/surfaces/checkout/components/PasswordField.ts", "name": "PasswordFieldElementProps", - "description": "The password field component securely collects sensitive information from users. Use password field for password entry, where input characters are automatically masked for privacy.\n\nPassword fields support validation, help text, and accessibility features to create secure and user-friendly authentication experiences. For general text input, use [text field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/text-field).", + "description": "", "isPublicDocs": true, "members": [ { @@ -103725,7 +103737,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -103734,7 +103746,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -103742,7 +103754,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -103751,7 +103763,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -103759,7 +103771,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -103767,7 +103779,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -103775,7 +103787,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -103793,7 +103805,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -103802,7 +103814,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -103810,7 +103822,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -103855,7 +103867,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -103871,7 +103883,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -103882,7 +103894,7 @@ "src/surfaces/checkout/components/PasswordField.ts": { "filePath": "src/surfaces/checkout/components/PasswordField.ts", "name": "PasswordFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -103890,7 +103902,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the password field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -103898,7 +103910,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the password field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -103906,7 +103918,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the password field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -103914,18 +103926,18 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the password field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface PasswordFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface PasswordFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the password field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the password field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the password field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the password field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "PasswordFieldElementSlots": { "src/surfaces/checkout/components/PasswordField.ts": { "filePath": "src/surfaces/checkout/components/PasswordField.ts", "name": "PasswordFieldElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -103933,11 +103945,11 @@ "syntaxKind": "PropertySignature", "name": "accessory", "value": "HTMLElement", - "description": "Additional content to be displayed in the field. Commonly used to display an icon that activates a tooltip providing more information.", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", "isOptional": true } ], - "value": "export interface PasswordFieldElementSlots {\n /**\n * Additional content to be displayed in the field.\n * Commonly used to display an icon that activates a tooltip providing more information.\n */\n accessory?: HTMLElement;\n}" + "value": "export interface PasswordFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" } }, "PasswordFieldElement": { @@ -104407,7 +104419,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -104598,7 +104610,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -104613,7 +104625,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -104727,7 +104739,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -104897,7 +104909,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -104989,7 +105001,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -104997,7 +105009,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -105064,7 +105076,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -105073,7 +105085,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -105286,7 +105298,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -105484,7 +105496,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -106028,7 +106040,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -106360,7 +106372,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -106369,7 +106381,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -106377,7 +106389,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -106386,7 +106398,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -106394,7 +106406,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -106402,7 +106414,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -106410,7 +106422,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -106428,7 +106440,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -106437,7 +106449,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -106453,7 +106465,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -106469,7 +106481,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -106477,7 +106489,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -106506,7 +106518,7 @@ "src/surfaces/checkout/components/PaymentIcon.ts": { "filePath": "src/surfaces/checkout/components/PaymentIcon.ts", "name": "PaymentIconProps", - "description": "Displays icons representing payment methods. Use to visually communicate available or saved payment options clearly", + "description": "", "isPublicDocs": true, "members": [ { @@ -106522,7 +106534,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -107489,7 +107501,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -108866,7 +108878,7 @@ "src/surfaces/checkout/components/PhoneField.ts": { "filePath": "src/surfaces/checkout/components/PhoneField.ts", "name": "PhoneFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -108874,7 +108886,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the phone field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -108882,7 +108894,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the phone field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -108890,7 +108902,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the phone field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -108898,18 +108910,18 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the phone field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface PhoneFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface PhoneFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the phone field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the phone field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the phone field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the phone field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "PhoneFieldElementSlots": { "src/surfaces/checkout/components/PhoneField.ts": { "filePath": "src/surfaces/checkout/components/PhoneField.ts", "name": "PhoneFieldElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -108917,18 +108929,18 @@ "syntaxKind": "PropertySignature", "name": "accessory", "value": "HTMLElement", - "description": "Additional content to be displayed in the field. Commonly used to display an icon that activates a tooltip providing more information.", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", "isOptional": true } ], - "value": "export interface PhoneFieldElementSlots {\n /**\n * Additional content to be displayed in the field.\n * Commonly used to display an icon that activates a tooltip providing more information.\n */\n accessory?: HTMLElement;\n}" + "value": "export interface PhoneFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" } }, "PopoverElementProps": { "src/surfaces/checkout/components/Popover.ts": { "filePath": "src/surfaces/checkout/components/Popover.ts", "name": "PopoverElementProps", - "description": "Popovers are used to display content in an overlay that can be triggered by a button.", + "description": "", "isPublicDocs": true, "members": [ { @@ -108945,7 +108957,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -109001,7 +109013,7 @@ "src/surfaces/checkout/components/Popover.ts": { "filePath": "src/surfaces/checkout/components/Popover.ts", "name": "PopoverEvents", - "description": "The event callbacks for monitoring popover visibility changes.", + "description": "", "isPublicDocs": true, "members": [ { @@ -109028,7 +109040,7 @@ "src/surfaces/checkout/components/Popover.ts": { "filePath": "src/surfaces/checkout/components/Popover.ts", "name": "PopoverElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -109983,7 +109995,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -111410,7 +111422,7 @@ "src/surfaces/checkout/components/Popover.ts": { "filePath": "src/surfaces/checkout/components/Popover.ts", "name": "PopoverProps", - "description": "The properties for the popover component when it's used in JSX.", + "description": "", "isPublicDocs": true, "members": [ { @@ -111427,7 +111439,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -111499,7 +111511,7 @@ "src/surfaces/checkout/components/PressButton.ts": { "filePath": "src/surfaces/checkout/components/PressButton.ts", "name": "PressButtonElementProps", - "description": "Allows users to toggle between active/inactive states. Use to represent a persistent on/off or selected/unselected status.", + "description": "", "isPublicDocs": true, "members": [ { @@ -111533,7 +111545,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -111614,7 +111626,7 @@ "src/surfaces/checkout/components/PressButton.ts": { "filePath": "src/surfaces/checkout/components/PressButton.ts", "name": "PressButtonElementEvents", - "description": "The press button component provides event callbacks for handling user interactions. Learn more about [handling events](/docs/api/polaris/using-polaris-web-components#handling-events).", + "description": "", "isPublicDocs": true, "members": [ { @@ -112587,7 +112599,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -114017,7 +114029,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -114087,7 +114099,7 @@ "src/surfaces/checkout/components/ProductThumbnail.ts": { "filePath": "src/surfaces/checkout/components/ProductThumbnail.ts", "name": "ProductThumbnailProps", - "description": "Use ProductThumbnail to display a product thumbnail", + "description": "", "isPublicDocs": true, "members": [ { @@ -116477,7 +116489,7 @@ "src/surfaces/checkout/components/Progress.ts": { "filePath": "src/surfaces/checkout/components/Progress.ts", "name": "ProgressProps", - "description": "Displays an indicator showing the completion status of a task. Use to visually communicate progress in either determinate (known percentage) or indeterminate (unknown duration) states.", + "description": "", "isPublicDocs": true, "members": [ { @@ -116485,7 +116497,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose of the progress. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nUse it to provide context of what is progressing.", + "description": "A label announced by assistive technologies that describes what is progressing. Use this to provide context about the ongoing task, such as \"Loading order details\" or \"Uploading file\".", "isOptional": true }, { @@ -116493,7 +116505,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -116501,7 +116513,7 @@ "syntaxKind": "PropertySignature", "name": "max", "value": "number", - "description": "This attribute describes how much work the task indicated by the progress element requires.\n\nThe `max` attribute, if present, must have a value greater than 0 and be a valid floating point number.", + "description": "The total amount of work the task requires. Must be a value greater than `0` and a valid floating point number.\n\nLearn more about the [max attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#max).", "isOptional": true, "defaultValue": "1" }, @@ -116510,7 +116522,7 @@ "syntaxKind": "PropertySignature", "name": "tone", "value": "'auto' | 'critical'", - "description": "Sets the tone of the progress, based on the intention of the information being conveyed.", + "description": "The semantic meaning and color treatment of the progress indicator.\n\n- `auto`: Automatically determined based on context.\n- `critical`: Indicates an urgent or error state requiring immediate attention.", "isOptional": true, "defaultValue": "'auto'" }, @@ -116519,11 +116531,11 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "number", - "description": "Specifies how much of the task has been completed.\n\nIt must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no value attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take.", + "description": "How much of the task has been completed. Must be a valid floating point number between `0` and `max`, or between `0` and `1` if `max` is omitted. When no value is set, the progress bar is indeterminate, indicating an ongoing activity with no estimated completion time.\n\nLearn more about the [value attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#value).", "isOptional": true } ], - "value": "export interface ProgressProps extends Pick {\n tone?: Extract;\n}" + "value": "export interface ProgressProps extends Pick {\n /**\n * A label announced by assistive technologies that describes what is progressing. Use this to provide context about the ongoing task, such as \"Loading order details\" or \"Uploading file\".\n */\n accessibilityLabel?: ProgressProps$1['accessibilityLabel'];\n /**\n * The total amount of work the task requires. Must be a value greater than `0` and a valid floating point number.\n *\n * Learn more about the [max attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#max).\n *\n * @default 1\n */\n max?: ProgressProps$1['max'];\n /**\n * The semantic meaning and color treatment of the progress indicator.\n *\n * - `auto`: Automatically determined based on context.\n * - `critical`: Indicates an urgent or error state requiring immediate attention.\n *\n * @default 'auto'\n */\n tone?: Extract;\n /**\n * How much of the task has been completed. Must be a valid floating point number between `0` and `max`, or between `0` and `1` if `max` is omitted. When no value is set, the progress bar is indeterminate, indicating an ongoing activity with no estimated completion time.\n *\n * Learn more about the [value attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#value).\n */\n value?: ProgressProps$1['value'];\n}" } }, "ProgressElement": { @@ -116538,7 +116550,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose of the progress. When set, it will be announced to users using assistive technologies and will provide them with more context.\n\nUse it to provide context of what is progressing.", + "description": "A label announced by assistive technologies that describes what is progressing. Use this to provide context about the ongoing task, such as \"Loading order details\" or \"Uploading file\".", "isOptional": true }, { @@ -117457,7 +117469,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -117605,7 +117617,7 @@ "syntaxKind": "PropertySignature", "name": "max", "value": "number", - "description": "This attribute describes how much work the task indicated by the progress element requires.\n\nThe `max` attribute, if present, must have a value greater than 0 and be a valid floating point number.", + "description": "The total amount of work the task requires. Must be a value greater than `0` and a valid floating point number.\n\nLearn more about the [max attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#max).", "isOptional": true, "defaultValue": "1" }, @@ -118809,7 +118821,7 @@ "syntaxKind": "PropertySignature", "name": "tone", "value": "'auto' | 'critical'", - "description": "Sets the tone of the progress, based on the intention of the information being conveyed.", + "description": "The semantic meaning and color treatment of the progress indicator.\n\n- `auto`: Automatically determined based on context.\n- `critical`: Indicates an urgent or error state requiring immediate attention.", "isOptional": true, "defaultValue": "'auto'" }, @@ -118825,7 +118837,7 @@ "syntaxKind": "PropertySignature", "name": "value", "value": "number", - "description": "Specifies how much of the task has been completed.\n\nIt must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no value attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take.", + "description": "How much of the task has been completed. Must be a valid floating point number between `0` and `max`, or between `0` and `1` if `max` is omitted. When no value is set, the progress bar is indeterminate, indicating an ongoing activity with no estimated completion time.\n\nLearn more about the [value attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#value).", "isOptional": true }, { @@ -118851,7 +118863,7 @@ "src/surfaces/checkout/components/QRCode.ts": { "filePath": "src/surfaces/checkout/components/QRCode.ts", "name": "QRCodeElementProps", - "description": "Displays a scannable QR code representing data such as URLs or text. Use to let users quickly access information by scanning with a smartphone or other device.", + "description": "", "isPublicDocs": true, "members": [ { @@ -118885,7 +118897,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -118921,7 +118933,7 @@ "src/surfaces/checkout/components/QRCode.ts": { "filePath": "src/surfaces/checkout/components/QRCode.ts", "name": "QRCodeEvents", - "description": "The event handlers for the QR code component.", + "description": "", "isPublicDocs": true, "members": [ { @@ -118940,7 +118952,7 @@ "src/surfaces/checkout/components/QRCode.ts": { "filePath": "src/surfaces/checkout/components/QRCode.ts", "name": "QRCodeElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -119904,7 +119916,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -121297,7 +121309,7 @@ "src/surfaces/checkout/components/QRCode.ts": { "filePath": "src/surfaces/checkout/components/QRCode.ts", "name": "QRCodeProps", - "description": "The properties for the QR code component when it's used in JSX.", + "description": "", "isPublicDocs": true, "members": [ { @@ -121331,7 +121343,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -121384,7 +121396,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -122323,7 +122335,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -123691,7 +123703,7 @@ "src/surfaces/checkout/components/QueryContainer.ts": { "filePath": "src/surfaces/checkout/components/QueryContainer.ts", "name": "QueryContainerProps", - "description": "The query container component establishes a container query context for responsive design. Use query container to define an element as a containment context, enabling child components or styles to adapt based on the container's size rather than viewport width.\n\nQuery containers support modern responsive patterns where components respond to their container dimensions, creating more flexible and reusable layouts.", + "description": "", "isPublicDocs": true, "members": [ { @@ -123708,7 +123720,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -123719,7 +123731,7 @@ "src/surfaces/checkout/components/ScrollBox.ts": { "filePath": "src/surfaces/checkout/components/ScrollBox.ts", "name": "ScrollBoxProps", - "description": "Provides a scrollable container for long content that exceeds the available space. Use to display lists, order summaries, or other lengthy content while maintaining a constrained layout.", + "description": "", "isPublicDocs": true, "members": [ { @@ -123744,7 +123756,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -123753,7 +123765,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the scroll box.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -123771,9 +123783,9 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", "isOptional": true, - "defaultValue": "'none' - equivalent to `none base auto`.", + "defaultValue": "'none'", "examples": [ { "title": "Example", @@ -123792,7 +123804,7 @@ "syntaxKind": "PropertySignature", "name": "borderColor", "value": "'' | 'base'", - "description": "Controls the color of the border using the design system's color scale.\n\nWhen set, this overrides the color value specified in the `border` property. Choose from `subdued`, `base`, or `strong` to match the visual emphasis needed.", + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -123801,7 +123813,7 @@ "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the scroll box's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -123819,7 +123831,7 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -123828,7 +123840,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -123837,7 +123849,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -123958,7 +123970,7 @@ "defaultValue": "'' - meaning no override" } ], - "value": "export interface ScrollBoxProps extends Pick {\n background?: Extract;\n border?: BorderShorthand;\n borderColor?: ReducedColorKeyword | '';\n borderRadius?: MaybeAllValuesShorthandProperty>;\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n}" + "value": "export interface ScrollBoxProps extends Pick {\n /**\n * The background color of the scroll box.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The color of the border using the design system's color scale. Overrides the color value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderColor?: ReducedColorKeyword | '';\n /**\n * The roundedness of the scroll box's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n}" } }, "OverflowKeyword": { @@ -124000,7 +124012,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -124478,7 +124490,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the scroll box.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -124517,23 +124529,25 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", - "isOptional": true + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'" }, { "filePath": "src/surfaces/checkout/components/ScrollBox.ts", "syntaxKind": "PropertySignature", "name": "borderColor", "value": "'' | 'base'", - "description": "Controls the color of the border using the design system's color scale.\n\nWhen set, this overrides the color value specified in the `border` property. Choose from `subdued`, `base`, or `strong` to match the visual emphasis needed.", - "isOptional": true + "description": "The color of the border using the design system's color scale. Overrides the color value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/ScrollBox.ts", "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the scroll box's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -124551,8 +124565,9 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", - "isOptional": true + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/ScrollBox.ts", @@ -124720,7 +124735,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -124989,7 +125004,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -126498,7 +126513,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -127444,7 +127459,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -128812,7 +128827,7 @@ "src/surfaces/checkout/components/Select.ts": { "filePath": "src/surfaces/checkout/components/Select.ts", "name": "SelectElementProps", - "description": "The select component allows users to choose one option from a dropdown menu. Use select when presenting four or more choices to keep interfaces uncluttered and scannable, or when space is limited.\n\nSelect components support option grouping, placeholder text, help text, and validation states to create clear selection interfaces. For more visual selection layouts with radio buttons or checkboxes, use [choice list](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/choice-list).", + "description": "", "isPublicDocs": true, "members": [ { @@ -128820,7 +128835,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -128829,7 +128844,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -128838,7 +128853,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -128846,7 +128861,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -128854,7 +128869,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -128862,7 +128877,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -128870,7 +128885,7 @@ "syntaxKind": "PropertySignature", "name": "placeholder", "value": "string", - "description": "A short hint that describes the expected value of the field.", + "description": "The placeholder text displayed in the field when it's empty, providing a hint about the expected input format or value.", "isOptional": true }, { @@ -128914,7 +128929,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -128933,7 +128948,7 @@ "src/surfaces/checkout/components/Select.ts": { "filePath": "src/surfaces/checkout/components/Select.ts", "name": "SelectElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -128941,7 +128956,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the select loses focus. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -128949,7 +128964,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the select value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -128957,11 +128972,11 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the select receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true } ], - "value": "export interface SelectElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n}" + "value": "export interface SelectElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the select value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the select loses focus.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the select receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "SelectElement": { @@ -129431,7 +129446,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -129629,7 +129644,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -129743,7 +129758,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -129913,7 +129928,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -130012,7 +130027,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -130069,7 +130084,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -130941,7 +130956,7 @@ "syntaxKind": "PropertySignature", "name": "placeholder", "value": "string", - "description": "A short hint that describes the expected value of the field.", + "description": "The placeholder text displayed in the field when it's empty, providing a hint about the expected input format or value.", "isOptional": true }, { @@ -131330,7 +131345,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -131339,7 +131354,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -131348,7 +131363,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -131356,7 +131371,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -131364,7 +131379,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -131372,7 +131387,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -131388,7 +131403,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -131404,7 +131419,7 @@ "syntaxKind": "PropertySignature", "name": "placeholder", "value": "string", - "description": "A short hint that describes the expected value of the field.", + "description": "The placeholder text displayed in the field when it's empty, providing a hint about the expected input format or value.", "isOptional": true }, { @@ -131465,7 +131480,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -131476,7 +131491,7 @@ "src/surfaces/checkout/components/Sheet.ts": { "filePath": "src/surfaces/checkout/components/Sheet.ts", "name": "SheetEvents", - "description": "The event callbacks for monitoring sheet visibility changes.", + "description": "", "isPublicDocs": true, "members": [ { @@ -131519,7 +131534,7 @@ "src/surfaces/checkout/components/Sheet.ts": { "filePath": "src/surfaces/checkout/components/Sheet.ts", "name": "SheetElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -131562,7 +131577,7 @@ "src/surfaces/checkout/components/Sheet.ts": { "filePath": "src/surfaces/checkout/components/Sheet.ts", "name": "SheetElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -131589,7 +131604,7 @@ "src/surfaces/checkout/components/Sheet.ts": { "filePath": "src/surfaces/checkout/components/Sheet.ts", "name": "SheetElementMethods", - "description": "Learn more about [component methods](/docs/api/checkout-ui-extensions/latest/using-polaris-components#methods).", + "description": "", "isPublicDocs": true, "members": [ { @@ -132572,7 +132587,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -133968,7 +133983,7 @@ "src/surfaces/checkout/components/Sheet.ts": { "filePath": "src/surfaces/checkout/components/Sheet.ts", "name": "SheetProps", - "description": "The properties for the sheet component when it's used in JSX.", + "description": "", "isPublicDocs": true, "members": [ { @@ -134001,7 +134016,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -134044,7 +134059,7 @@ "src/surfaces/checkout/components/SkeletonParagraph.ts": { "filePath": "src/surfaces/checkout/components/SkeletonParagraph.ts", "name": "SkeletonParagraphProps", - "description": "Displays a placeholder representation of text content while it loads. Use to improve perceived performance by showing users where text will appear.", + "description": "", "isPublicDocs": true, "members": [ { @@ -134061,7 +134076,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -135000,7 +135015,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -136368,7 +136383,7 @@ "src/surfaces/checkout/components/Spinner.ts": { "filePath": "src/surfaces/checkout/components/Spinner.ts", "name": "SpinnerProps", - "description": "The spinner component displays an animated indicator showing users that content or actions are loading. Use spinner to communicate ongoing processes like fetching data, processing requests, or waiting for operations to complete.\n\nSpinners support multiple sizes and should be used for page or section loading states. For button loading states, use the `loading` property on the [button](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/actions/button) component instead.", + "description": "", "isPublicDocs": true, "members": [ { @@ -136376,7 +136391,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose of the progress. When set, it will be announced to users using assistive technologies and will provide them with more context. Providing an `accessibilityLabel` is recommended if there is no accompanying text describing that something is loading.", + "description": "A label that describes the purpose of the spinner for assistive technologies like screen readers. Provide an `accessibilityLabel` when there is no visible text that conveys a loading state.", "isOptional": true }, { @@ -136384,7 +136399,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -136392,12 +136407,12 @@ "syntaxKind": "PropertySignature", "name": "size", "value": "'small' | 'large' | 'base' | 'small-100' | 'large-100'", - "description": "Adjusts the size of the spinner icon.", + "description": "The size of the spinner icon.\n\n- `base`: The default size, suitable for most use cases.\n- `small`: A compact size for secondary loading states.\n- `small-100`: The smallest size for tight spaces or inline indicators.\n- `large`: A larger size for more prominent loading states.\n- `large-100`: The largest size for full-page or section-level loading indicators.", "isOptional": true, "defaultValue": "'base'" } ], - "value": "export interface SpinnerProps extends SpinnerProps$1 {\n size?: Extract;\n}" + "value": "export interface SpinnerProps extends SpinnerProps$1 {\n /**\n * A label that describes the purpose of the spinner for assistive technologies like screen readers. Provide an `accessibilityLabel` when there is no visible text that conveys a loading state.\n */\n accessibilityLabel?: SpinnerProps$1['accessibilityLabel'];\n /**\n * The size of the spinner icon.\n *\n * - `base`: The default size, suitable for most use cases.\n * - `small`: A compact size for secondary loading states.\n * - `small-100`: The smallest size for tight spaces or inline indicators.\n * - `large`: A larger size for more prominent loading states.\n * - `large-100`: The largest size for full-page or section-level loading indicators.\n *\n * @default 'base'\n */\n size?: Extract;\n}" } }, "SpinnerElement": { @@ -136412,7 +136427,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityLabel", "value": "string", - "description": "A label that describes the purpose of the progress. When set, it will be announced to users using assistive technologies and will provide them with more context. Providing an `accessibilityLabel` is recommended if there is no accompanying text describing that something is loading.", + "description": "A label that describes the purpose of the spinner for assistive technologies like screen readers. Provide an `accessibilityLabel` when there is no visible text that conveys a loading state.", "isOptional": true }, { @@ -137331,7 +137346,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -138604,7 +138619,7 @@ "syntaxKind": "PropertySignature", "name": "size", "value": "'small' | 'large' | 'base' | 'small-100' | 'large-100'", - "description": "Adjusts the size of the spinner icon.", + "description": "The size of the spinner icon.\n\n- `base`: The default size, suitable for most use cases.\n- `small`: A compact size for secondary loading states.\n- `small-100`: The smallest size for tight spaces or inline indicators.\n- `large`: A larger size for more prominent loading states.\n- `large-100`: The largest size for full-page or section-level loading indicators.", "isOptional": true, "defaultValue": "'base'" }, @@ -138708,7 +138723,7 @@ "src/surfaces/checkout/components/Stack.ts": { "filePath": "src/surfaces/checkout/components/Stack.ts", "name": "StackProps", - "description": "The stack component organizes elements horizontally or vertically along the block or inline axis. Use stack to structure layouts, group related components, control spacing between elements, or create flexible arrangements that adapt to content.\n\nStacks support gap spacing, alignment, wrapping, and distribution properties to create consistent, responsive layouts without custom CSS. For complex multi-column layouts with precise grid positioning, use [grid](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/layout-and-structure/grid).", + "description": "", "isPublicDocs": true, "members": [ { @@ -138724,7 +138739,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityRole", "value": "'aside' | 'footer' | 'header' | 'main' | 'section' | 'status' | 'none' | 'navigation' | 'ordered-list' | 'list-item' | 'list-item-separator' | 'unordered-list' | 'separator' | 'alert' | 'generic'", - "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.", + "description": "The semantic meaning of the stack's content, used by assistive technologies.\n\n- `aside`: Supporting content related to the main content.\n- `footer`: Information such as copyright, navigation links, and privacy statements.\n- `header`: A page or section header.\n- `main`: The primary content of the page.\n- `section`: A generic section that should have a heading or `accessibilityLabel`.\n- `status`: A live region with advisory information that is not urgent.\n- `none`: Strips semantic meaning while keeping visual styling.\n- `navigation`: A major group of navigation links.\n- `ordered-list`: A list of ordered items.\n- `list-item`: An item inside a list.\n- `list-item-separator`: A divider between list items.\n- `unordered-list`: A list of unordered items.\n- `separator`: A divider that separates sections of content.\n- `alert`: Important, usually time-sensitive information.\n- `generic`: A nameless container with no semantic meaning (renders a `
`).", "isOptional": true, "defaultValue": "'generic'" }, @@ -138733,7 +138748,7 @@ "syntaxKind": "PropertySignature", "name": "alignContent", "value": "MaybeResponsive>", - "description": "Aligns the Stack along the cross axis.", + "description": "Controls how lines of content are distributed along the cross axis when there is extra space.\n\n- `normal`: Default browser behavior.\n- `space-between`: Distributes lines evenly with no space at the edges.\n- `space-around`: Distributes lines evenly with equal space around each.\n- `space-evenly`: Distributes lines with equal space between and at the edges.\n- `stretch`: Stretches lines to fill the available space.\n- `center`: Packs lines toward the center.\n- `start`: Packs lines toward the start of the cross axis.\n- `end`: Packs lines toward the end of the cross axis.", "isOptional": true, "defaultValue": "'normal'" }, @@ -138742,7 +138757,7 @@ "syntaxKind": "PropertySignature", "name": "alignItems", "value": "MaybeResponsive>", - "description": "Aligns the Stack's children along the cross axis.", + "description": "Controls how child elements are aligned along the cross axis.\n\n- `normal`: Default browser behavior.\n- `stretch`: Stretches children to fill the cross axis.\n- `center`: Centers children along the cross axis.\n- `start`: Aligns children to the start of the cross axis.\n- `end`: Aligns children to the end of the cross axis.", "isOptional": true, "defaultValue": "'normal'" }, @@ -138751,7 +138766,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the stack.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -138769,9 +138784,9 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.", "isOptional": true, - "defaultValue": "'none' - equivalent to `none base auto`.", + "defaultValue": "'none'", "examples": [ { "title": "Example", @@ -138790,7 +138805,7 @@ "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the stack's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -138808,7 +138823,7 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", "isOptional": true, "defaultValue": "'' - meaning no override" }, @@ -138835,7 +138850,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -138853,7 +138868,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -138870,7 +138885,7 @@ "syntaxKind": "PropertySignature", "name": "justifyContent", "value": "MaybeResponsive>", - "description": "Aligns the Stack along the main axis.", + "description": "Controls how child elements are distributed along the main axis.\n\n- `normal`: Default browser behavior.\n- `space-between`: Distributes children evenly with no space at the edges.\n- `space-around`: Distributes children evenly with equal space around each.\n- `space-evenly`: Distributes children with equal space between and at the edges.\n- `stretch`: Stretches children to fill the available space.\n- `center`: Packs children toward the center.\n- `start`: Packs children toward the start of the main axis.\n- `end`: Packs children toward the end of the main axis.", "isOptional": true, "defaultValue": "'normal'" }, @@ -138992,7 +139007,7 @@ "defaultValue": "'' - meaning no override" } ], - "value": "export interface StackProps extends Pick {\n accessibilityRole?: Extract;\n background?: Extract;\n border?: BorderShorthand;\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n borderRadius?: MaybeAllValuesShorthandProperty>;\n alignContent?: MaybeResponsive>;\n alignItems?: MaybeResponsive>;\n justifyContent?: MaybeResponsive>;\n}" + "value": "export interface StackProps extends Pick {\n /**\n * The semantic meaning of the stack's content, used by assistive technologies.\n *\n * - `aside`: Supporting content related to the main content.\n * - `footer`: Information such as copyright, navigation links, and privacy statements.\n * - `header`: A page or section header.\n * - `main`: The primary content of the page.\n * - `section`: A generic section that should have a heading or `accessibilityLabel`.\n * - `status`: A live region with advisory information that is not urgent.\n * - `none`: Strips semantic meaning while keeping visual styling.\n * - `navigation`: A major group of navigation links.\n * - `ordered-list`: A list of ordered items.\n * - `list-item`: An item inside a list.\n * - `list-item-separator`: A divider between list items.\n * - `unordered-list`: A list of unordered items.\n * - `separator`: A divider that separates sections of content.\n * - `alert`: Important, usually time-sensitive information.\n * - `generic`: A nameless container with no semantic meaning (renders a `
`).\n *\n * @default 'generic'\n */\n accessibilityRole?: Extract;\n /**\n * The background color of the stack.\n *\n * - `base`: The standard background color for general content areas.\n * - `subdued`: A muted background for secondary or supporting content.\n * - `transparent`: No background color (the default).\n *\n * @default 'transparent'\n */\n background?: Extract;\n /**\n * A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.\n *\n * @default 'none'\n */\n border?: BorderShorthand;\n /**\n * The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.\n *\n * @default '' - meaning no override\n */\n borderWidth?: MaybeAllValuesShorthandProperty | '';\n /**\n * The roundedness of the stack's corners.\n *\n * - `none`: Sharp corners with no rounding.\n * - `small-100` / `small`: Subtle rounding for compact elements.\n * - `base`: Standard rounding for most use cases.\n * - `large` / `large-100`: More pronounced rounding for prominent containers.\n * - `max`: Maximum rounding, creating a pill or circular shape.\n *\n * Supports 1-to-4-value shorthand syntax for specifying different radii per corner.\n *\n * @default 'none'\n */\n borderRadius?: MaybeAllValuesShorthandProperty>;\n /**\n * Controls how lines of content are distributed along the cross axis when there is extra space.\n *\n * - `normal`: Default browser behavior.\n * - `space-between`: Distributes lines evenly with no space at the edges.\n * - `space-around`: Distributes lines evenly with equal space around each.\n * - `space-evenly`: Distributes lines with equal space between and at the edges.\n * - `stretch`: Stretches lines to fill the available space.\n * - `center`: Packs lines toward the center.\n * - `start`: Packs lines toward the start of the cross axis.\n * - `end`: Packs lines toward the end of the cross axis.\n *\n * @default 'normal'\n */\n alignContent?: MaybeResponsive>;\n /**\n * Controls how child elements are aligned along the cross axis.\n *\n * - `normal`: Default browser behavior.\n * - `stretch`: Stretches children to fill the cross axis.\n * - `center`: Centers children along the cross axis.\n * - `start`: Aligns children to the start of the cross axis.\n * - `end`: Aligns children to the end of the cross axis.\n *\n * @default 'normal'\n */\n alignItems?: MaybeResponsive>;\n /**\n * Controls how child elements are distributed along the main axis.\n *\n * - `normal`: Default browser behavior.\n * - `space-between`: Distributes children evenly with no space at the edges.\n * - `space-around`: Distributes children evenly with equal space around each.\n * - `space-evenly`: Distributes children with equal space between and at the edges.\n * - `stretch`: Stretches children to fill the available space.\n * - `center`: Packs children toward the center.\n * - `start`: Packs children toward the start of the main axis.\n * - `end`: Packs children toward the end of the main axis.\n *\n * @default 'normal'\n */\n justifyContent?: MaybeResponsive>;\n}" } }, "StackElement": { @@ -139015,7 +139030,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityRole", "value": "'aside' | 'footer' | 'header' | 'main' | 'section' | 'status' | 'none' | 'navigation' | 'ordered-list' | 'list-item' | 'list-item-separator' | 'unordered-list' | 'separator' | 'alert' | 'generic'", - "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.", + "description": "The semantic meaning of the stack's content, used by assistive technologies.\n\n- `aside`: Supporting content related to the main content.\n- `footer`: Information such as copyright, navigation links, and privacy statements.\n- `header`: A page or section header.\n- `main`: The primary content of the page.\n- `section`: A generic section that should have a heading or `accessibilityLabel`.\n- `status`: A live region with advisory information that is not urgent.\n- `none`: Strips semantic meaning while keeping visual styling.\n- `navigation`: A major group of navigation links.\n- `ordered-list`: A list of ordered items.\n- `list-item`: An item inside a list.\n- `list-item-separator`: A divider between list items.\n- `unordered-list`: A list of unordered items.\n- `separator`: A divider that separates sections of content.\n- `alert`: Important, usually time-sensitive information.\n- `generic`: A nameless container with no semantic meaning (renders a `
`).", "isOptional": true, "defaultValue": "'generic'" }, @@ -139052,7 +139067,7 @@ "syntaxKind": "PropertySignature", "name": "alignContent", "value": "MaybeResponsive>", - "description": "Aligns the Stack along the cross axis.", + "description": "Controls how lines of content are distributed along the cross axis when there is extra space.\n\n- `normal`: Default browser behavior.\n- `space-between`: Distributes lines evenly with no space at the edges.\n- `space-around`: Distributes lines evenly with equal space around each.\n- `space-evenly`: Distributes lines with equal space between and at the edges.\n- `stretch`: Stretches lines to fill the available space.\n- `center`: Packs lines toward the center.\n- `start`: Packs lines toward the start of the cross axis.\n- `end`: Packs lines toward the end of the cross axis.", "isOptional": true, "defaultValue": "'normal'" }, @@ -139061,7 +139076,7 @@ "syntaxKind": "PropertySignature", "name": "alignItems", "value": "MaybeResponsive>", - "description": "Aligns the Stack's children along the cross axis.", + "description": "Controls how child elements are aligned along the cross axis.\n\n- `normal`: Default browser behavior.\n- `stretch`: Stretches children to fill the cross axis.\n- `center`: Centers children along the cross axis.\n- `start`: Aligns children to the start of the cross axis.\n- `end`: Aligns children to the end of the cross axis.", "isOptional": true, "defaultValue": "'normal'" }, @@ -139511,7 +139526,7 @@ "syntaxKind": "PropertySignature", "name": "background", "value": "'base' | 'subdued' | 'transparent'", - "description": "Adjust the background of the element.\n\n- `transparent`: No visible background.\n- `subdued`: A subtle, low-emphasis background.\n- `base`: The standard background color.\n- `strong`: A high-emphasis background for prominence.", + "description": "The background color of the stack.\n\n- `base`: The standard background color for general content areas.\n- `subdued`: A muted background for secondary or supporting content.\n- `transparent`: No background color (the default).", "isOptional": true, "defaultValue": "'transparent'" }, @@ -139550,15 +139565,16 @@ "syntaxKind": "PropertySignature", "name": "border", "value": "BorderShorthand", - "description": "Applies a border using shorthand syntax to specify width, color, and style in a single property.\n\nAccepts a size value, optionally followed by a color, optionally followed by a style. Omitted values use defaults: color defaults to `base`, style defaults to `auto`.\n\nIndividual properties (`borderWidth`, `borderStyle`, `borderColor`) can override values set here.", - "isOptional": true + "description": "A shorthand for setting the border width, color, and style in a single property. Individual border properties (`borderWidth`, `borderStyle`) can override values set here.", + "isOptional": true, + "defaultValue": "'none'" }, { "filePath": "src/surfaces/checkout/components/Stack.ts", "syntaxKind": "PropertySignature", "name": "borderRadius", "value": "MaybeAllValuesShorthandProperty>", - "description": "Controls the roundedness of the element's corners using the design system's radius scale.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) using flow-relative values:\n- One value: applies to all corners\n- Two values: applies to start corners (top-left & bottom-right) and end corners (top-right & bottom-left) respectively\n- Three values: applies to start-start (top-left), end corners (top-right & bottom-left), and end-end (bottom-right) respectively\n- Four values: applies to start-start (top-left), start-end (top-right), end-end (bottom-right), and end-start (bottom-left) respectively\n\nExamples:\n- `small-100`: All corners have `small-100` radius\n- `small-100 none`: Top-left and bottom-right are `small-100`, top-right and bottom-left are `none`\n- `small-100 none large-100`: Top-left is `small-100`, top-right and bottom-left are `none`, bottom-right is `large-100`\n- `small-100 none large-100 base`: Each corner has its specified radius value", + "description": "The roundedness of the stack's corners.\n\n- `none`: Sharp corners with no rounding.\n- `small-100` / `small`: Subtle rounding for compact elements.\n- `base`: Standard rounding for most use cases.\n- `large` / `large-100`: More pronounced rounding for prominent containers.\n- `max`: Maximum rounding, creating a pill or circular shape.\n\nSupports 1-to-4-value shorthand syntax for specifying different radii per corner.", "isOptional": true, "defaultValue": "'none'" }, @@ -139576,8 +139592,9 @@ "syntaxKind": "PropertySignature", "name": "borderWidth", "value": "MaybeAllValuesShorthandProperty | ''", - "description": "Controls the thickness of the border on all sides. When set, this overrides the width value specified in the `border` property.\n\nSupports [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) for specifying different widths per side:\n- One value: applies to all sides\n- Two values: applies to block sides (top/bottom) and inline sides (left/right) respectively\n- Three values: applies to block-start (top), inline sides (left/right), and block-end (bottom) respectively\n- Four values: applies to block-start (top), inline-end (right), block-end (bottom), and inline-start (left) respectively", - "isOptional": true + "description": "The thickness of the border on all sides. Supports 1-to-4-value shorthand syntax for specifying different widths per side. Overrides the width value set by `border`.", + "isOptional": true, + "defaultValue": "'' - meaning no override" }, { "filePath": "src/surfaces/checkout/components/Stack.ts", @@ -139763,7 +139780,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -140041,7 +140058,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -140149,7 +140166,7 @@ "syntaxKind": "PropertySignature", "name": "justifyContent", "value": "MaybeResponsive>", - "description": "Aligns the Stack along the main axis.", + "description": "Controls how child elements are distributed along the main axis.\n\n- `normal`: Default browser behavior.\n- `space-between`: Distributes children evenly with no space at the edges.\n- `space-around`: Distributes children evenly with equal space around each.\n- `space-evenly`: Distributes children with equal space between and at the edges.\n- `stretch`: Stretches children to fill the available space.\n- `center`: Packs children toward the center.\n- `start`: Packs children toward the start of the main axis.\n- `end`: Packs children toward the end of the main axis.", "isOptional": true, "defaultValue": "'normal'" }, @@ -141544,7 +141561,7 @@ "src/surfaces/checkout/components/Summary.ts": { "filePath": "src/surfaces/checkout/components/Summary.ts", "name": "SummaryProps", - "description": "Provides a clickable label for collapsible Details content. Use to create clear, accessible disclosure controls that show or hide additional information.", + "description": "", "isPublicDocs": true, "members": [ { @@ -141552,7 +141569,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -142482,7 +142499,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -143850,7 +143867,7 @@ "src/surfaces/checkout/components/Switch.ts": { "filePath": "src/surfaces/checkout/components/Switch.ts", "name": "SwitchElementProps", - "description": "The switch component provides a clear way for users to toggle options or settings on and off. Use switch for binary controls that take effect immediately, like enabling features, activating settings, or controlling visibility.\n\nSwitches provide instant visual feedback and are ideal for settings that don't require a save action to apply changes. For selections that require explicit submission, use [checkbox](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/checkbox) instead.", + "description": "", "isPublicDocs": true, "members": [ { @@ -143866,7 +143883,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -143875,7 +143892,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -143884,7 +143901,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -143892,7 +143909,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -143901,7 +143918,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -143910,7 +143927,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -143918,7 +143935,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.", "isOptional": true }, { @@ -143926,7 +143943,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -143964,7 +143981,7 @@ "src/surfaces/checkout/components/Switch.ts": { "filePath": "src/surfaces/checkout/components/Switch.ts", "name": "SwitchElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -143972,11 +143989,11 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "A callback that is run whenever the control is changed.", + "description": "A callback fired when the switch value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true } ], - "value": "export interface SwitchElementEvents {\n /**\n * A callback that is run whenever the control is changed.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n}" + "value": "export interface SwitchElementEvents {\n /**\n * A callback fired when the switch value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n}" } }, "SwitchElement": { @@ -144496,7 +144513,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -144596,7 +144613,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -144605,7 +144622,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -144662,7 +144679,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -144678,7 +144695,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -144954,7 +144971,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -145053,7 +145070,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.", "isOptional": true }, { @@ -145110,7 +145127,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -146362,7 +146379,7 @@ "syntaxKind": "PropertySignature", "name": "checked", "value": "boolean", - "description": "Whether the control is active.", + "description": "Whether the control is currently checked.", "isOptional": true, "defaultValue": "false" }, @@ -146371,7 +146388,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated.\n\n- `--auto`: A default action for the target component.\n- `--show`: Shows the target component.\n- `--hide`: Hides the target component.\n- `--toggle`: Toggles the target component.\n- `--copy`: Copies the target ClipboardItem.\n\nLearn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).", "isOptional": true, "defaultValue": "'--auto'" }, @@ -146380,7 +146397,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\nWhen both `commandFor` and `href` are set, `commandFor` takes precedence. The command runs and the link doesn't navigate.", "isOptional": true }, { @@ -146388,7 +146405,7 @@ "syntaxKind": "PropertySignature", "name": "defaultChecked", "value": "boolean", - "description": "Whether the control is active by default.", + "description": "Whether the control is checked by default.", "isOptional": true, "defaultValue": "false" }, @@ -146397,7 +146414,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the control, disallowing any interaction.", + "description": "Whether the control is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -146406,7 +146423,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -146414,7 +146431,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Visual content to use as the control label.", + "description": "The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.", "isOptional": true }, { @@ -146422,7 +146439,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the control that is unique within the nearest containing `Form` component.", + "description": "The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -146449,7 +146466,7 @@ "src/surfaces/checkout/components/Text.ts": { "filePath": "src/surfaces/checkout/components/Text.ts", "name": "TextProps", - "description": "The text component displays inline text with specific visual styles or tones. Use text to emphasize or differentiate words or phrases within paragraphs or other block-level components, applying weight, color, or semantic styling.\n\nText supports multiple visual variants, alignment options, and line clamping for flexible inline typography control. For block-level text content, use [paragraph](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/typography-and-content/paragraph).", + "description": "", "isPublicDocs": true, "members": [ { @@ -146457,7 +146474,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -146466,7 +146483,7 @@ "syntaxKind": "PropertySignature", "name": "color", "value": "'base' | 'subdued'", - "description": "Modify the color to be more or less intense.", + "description": "The color emphasis level that controls visual intensity.\n\n- `subdued`: Deemphasized color for secondary text, supporting labels, and less critical interface elements.\n- `base`: Primary color for body text, standard UI elements, and general content with good readability.\n- `strong`: Emphasized color for headings, key labels, and interactive elements that need prominence.", "isOptional": true, "defaultValue": "'base'" }, @@ -146475,7 +146492,7 @@ "syntaxKind": "PropertySignature", "name": "dir", "value": "'ltr' | 'rtl' | 'auto' | ''", - "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: languages written from left to right (such as English)\n- `rtl`: languages written from right to left (such as Arabic)\n- `auto`: the user agent determines the direction based on the content\n- `''`: direction is inherited from parent elements (equivalent to not setting the attribute)", + "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: The languages written from left to right (such as English).\n- `rtl`: The languages written from right to left (such as Arabic).\n- `auto`: The user agent determines the direction based on the content.\n- `\"\"`: The direction is inherited from parent elements (equivalent to not setting the attribute).\n\nLearn more about the [dir attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir).", "isOptional": true, "defaultValue": "''" }, @@ -146484,7 +146501,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -146493,7 +146510,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -146519,12 +146536,12 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'small' | 'address' | 'mark' | 'strong' | 'generic' | 'redundant' | 'emphasis' | 'offset'", - "description": "Provide semantic meaning and default styling to the text.\n\nOther presentation properties on Text override the default styling.", + "description": "The semantic type and styling treatment for the text content.\n\nOther presentation properties on `s-text` override the default styling.\n\n- `address`: A semantic type that indicates the text is contact information. Typically used for addresses.\n- `redundant`: A semantic type that indicates the text is no longer accurate or no longer relevant.\n- `mark`: A semantic type that indicates the text is marked or highlighted.\n- `emphasis`: A semantic type that indicates emphatic stress.\n- `offset`: A semantic type that indicates an offset from the normal prose.\n- `strong`: A semantic type that indicates strong importance, seriousness, or urgency.\n- `small`: A semantic type that indicates less important text.\n- `generic`: No additional semantics or styling is applied.", "isOptional": true, "defaultValue": "'generic'" } ], - "value": "export interface TextProps extends Pick {\n color?: Extract;\n tone?: Extract;\n type?: Extract;\n}" + "value": "export interface TextProps extends Pick {\n color?: Extract;\n tone?: Extract;\n /**\n * The semantic type and styling treatment for the text content.\n *\n * Other presentation properties on `s-text` override the default styling.\n *\n * - `address`: A semantic type that indicates the text is contact information. Typically used for addresses.\n * - `redundant`: A semantic type that indicates the text is no longer accurate or no longer relevant.\n * - `mark`: A semantic type that indicates the text is marked or highlighted.\n * - `emphasis`: A semantic type that indicates emphatic stress.\n * - `offset`: A semantic type that indicates an offset from the normal prose.\n * - `strong`: A semantic type that indicates strong importance, seriousness, or urgency.\n * - `small`: A semantic type that indicates less important text.\n * - `generic`: No additional semantics or styling is applied.\n *\n * @default 'generic'\n */\n type?: Extract;\n}" } }, "TextElement": { @@ -146539,7 +146556,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityVisibility", "value": "'visible' | 'hidden' | 'exclusive'", - "description": "Changes the visibility of the element.\n\n- `visible`: the element is visible to all users.\n- `hidden`: the element is removed from the accessibility tree but remains visible.\n- `exclusive`: the element is visually hidden but remains in the accessibility tree.", + "description": "Controls how the element is exposed to sighted users and to assistive technologies such as screen readers.\n\n- `visible`: The element is visible to all users (both sighted users and screen readers).\n- `hidden`: The element is visually visible but hidden from screen readers. Use this for decorative elements that don’t provide meaningful information.\n- `exclusive`: The element is visually hidden but announced by screen readers. Use this for screen-reader-only content like skip links or additional context.", "isOptional": true, "defaultValue": "'visible'" }, @@ -147136,7 +147153,7 @@ "syntaxKind": "PropertySignature", "name": "color", "value": "'base' | 'subdued'", - "description": "Modify the color to be more or less intense.", + "description": "The color emphasis level that controls visual intensity.\n\n- `subdued`: Deemphasized color for secondary text, supporting labels, and less critical interface elements.\n- `base`: Primary color for body text, standard UI elements, and general content with good readability.\n- `strong`: Emphasized color for headings, key labels, and interactive elements that need prominence.", "isOptional": true, "defaultValue": "'base'" }, @@ -147194,7 +147211,7 @@ "syntaxKind": "PropertySignature", "name": "dir", "value": "'ltr' | 'rtl' | 'auto' | ''", - "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: languages written from left to right (such as English)\n- `rtl`: languages written from right to left (such as Arabic)\n- `auto`: the user agent determines the direction based on the content\n- `''`: direction is inherited from parent elements (equivalent to not setting the attribute)", + "description": "Indicates the directionality of the element’s text.\n\n- `ltr`: The languages written from left to right (such as English).\n- `rtl`: The languages written from right to left (such as Arabic).\n- `auto`: The user agent determines the direction based on the content.\n- `\"\"`: The direction is inherited from parent elements (equivalent to not setting the attribute).\n\nLearn more about the [dir attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir).", "isOptional": true, "defaultValue": "''" }, @@ -147210,7 +147227,7 @@ "syntaxKind": "PropertySignature", "name": "display", "value": "MaybeResponsive<\"auto\" | \"none\">", - "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.", + "description": "Sets the outer display type of the component. The outer type sets a component’s participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).\n\n- `auto`: the component’s initial value. The actual value depends on the component and context.\n- `none`: hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.\n\nLearn more about the [display property](https://developer.mozilla.org/en-US/docs/Web/CSS/display).", "isOptional": true, "defaultValue": "'auto'" }, @@ -147479,7 +147496,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -148840,7 +148857,7 @@ "syntaxKind": "PropertySignature", "name": "type", "value": "'small' | 'address' | 'mark' | 'strong' | 'generic' | 'redundant' | 'emphasis' | 'offset'", - "description": "Provide semantic meaning and default styling to the text.\n\nOther presentation properties on Text override the default styling.", + "description": "The semantic type and styling treatment for the text content.\n\nOther presentation properties on `s-text` override the default styling.\n\n- `address`: A semantic type that indicates the text is contact information. Typically used for addresses.\n- `redundant`: A semantic type that indicates the text is no longer accurate or no longer relevant.\n- `mark`: A semantic type that indicates the text is marked or highlighted.\n- `emphasis`: A semantic type that indicates emphatic stress.\n- `offset`: A semantic type that indicates an offset from the normal prose.\n- `strong`: A semantic type that indicates strong importance, seriousness, or urgency.\n- `small`: A semantic type that indicates less important text.\n- `generic`: No additional semantics or styling is applied.", "isOptional": true, "defaultValue": "'generic'" }, @@ -148867,7 +148884,7 @@ "src/surfaces/checkout/components/TextArea.ts": { "filePath": "src/surfaces/checkout/components/TextArea.ts", "name": "TextAreaElementProps", - "description": "The text area component captures multi-line text input. Use it to collect descriptions, notes, comments, or other extended text content.\n\nThe component supports configurable height, character limits, and validation. For single-line text input, use [text field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/text-field).", + "description": "", "isPublicDocs": true, "members": [ { @@ -148875,7 +148892,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -148884,7 +148901,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -148892,7 +148909,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -148901,7 +148918,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -148909,7 +148926,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -148917,7 +148934,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -148925,7 +148942,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -148943,7 +148960,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -148952,7 +148969,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -148970,7 +148987,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -149024,7 +149041,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -149040,7 +149057,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -149051,7 +149068,7 @@ "src/surfaces/checkout/components/TextArea.ts": { "filePath": "src/surfaces/checkout/components/TextArea.ts", "name": "TextAreaElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -149059,7 +149076,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the text area loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -149067,7 +149084,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the text area value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -149075,7 +149092,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the text area receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -149083,11 +149100,11 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the text area. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface TextAreaElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface TextAreaElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the text area value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the text area.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the text area loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the text area receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "TextAreaElement": { @@ -149557,7 +149574,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -149748,7 +149765,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -149763,7 +149780,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -149877,7 +149894,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -150047,7 +150064,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -150146,7 +150163,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -150154,7 +150171,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -150221,7 +150238,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -150230,7 +150247,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -151170,7 +151187,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -151511,7 +151528,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -151520,7 +151537,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -151528,7 +151545,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -151537,7 +151554,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -151545,7 +151562,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -151553,7 +151570,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -151561,7 +151578,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -151579,7 +151596,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -151588,7 +151605,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -151604,7 +151621,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -151620,7 +151637,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -151638,7 +151655,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -151676,7 +151693,7 @@ "src/surfaces/checkout/components/TextField.ts": { "filePath": "src/surfaces/checkout/components/TextField.ts", "name": "TextFieldElementProps", - "description": "The text field component captures single-line text input. Use it to collect short, free-form information like names, titles, or identifiers.\n\nThe component supports various input configurations including placeholders, character limits, and validation. For multi-line text entry, use [text area](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/text-area). For specialized input types, use [email field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/email-field), [URL field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/url-field), [password field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/password-field), or [search field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/search-field).", + "description": "", "isPublicDocs": true, "members": [ { @@ -151684,7 +151701,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -151693,7 +151710,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -151701,7 +151718,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -151710,7 +151727,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -151727,7 +151744,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -151735,7 +151752,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -151743,7 +151760,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -151761,7 +151778,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -151770,7 +151787,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -151788,7 +151805,7 @@ "syntaxKind": "PropertySignature", "name": "prefix", "value": "string", - "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", + "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -151797,7 +151814,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -151815,7 +151832,7 @@ "syntaxKind": "PropertySignature", "name": "suffix", "value": "string", - "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", + "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -151851,7 +151868,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -151867,7 +151884,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -151878,7 +151895,7 @@ "src/surfaces/checkout/components/TextField.ts": { "filePath": "src/surfaces/checkout/components/TextField.ts", "name": "TextFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -151886,7 +151903,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "<<<<<<< HEAD A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n\nA callback fired when the text field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -151894,7 +151911,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n\nA callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event). ======= A callback fired when the text field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -151902,7 +151919,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the text field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -151910,18 +151927,18 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the text field. >>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface TextFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface TextFieldElementEvents {\n /**\n<<<<<<< HEAD\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n=======\n * A callback fired when the text field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the text field.\n>>>>>>> 8763c703b (Improve Forms component descriptions to match admin quality)\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the text field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the text field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "TextFieldElementSlots": { "src/surfaces/checkout/components/TextField.ts": { "filePath": "src/surfaces/checkout/components/TextField.ts", "name": "TextFieldElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -151929,11 +151946,11 @@ "syntaxKind": "PropertySignature", "name": "accessory", "value": "HTMLElement", - "description": "Additional content to be displayed in the field. Commonly used to display an icon that activates a tooltip providing more information.", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", "isOptional": true } ], - "value": "export interface TextFieldElementSlots {\n /**\n * Additional content to be displayed in the field.\n * Commonly used to display an icon that activates a tooltip providing more information.\n */\n accessory?: HTMLElement;\n}" + "value": "export interface TextFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" } }, "TextFieldElement": { @@ -152403,7 +152420,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -152594,7 +152611,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -152609,7 +152626,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -152723,7 +152740,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -152901,7 +152918,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -153000,7 +153017,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -153008,7 +153025,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -153075,7 +153092,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -153084,7 +153101,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -153973,7 +153990,7 @@ "syntaxKind": "PropertySignature", "name": "prefix", "value": "string", - "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", + "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -154026,7 +154043,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -154268,7 +154285,7 @@ "syntaxKind": "PropertySignature", "name": "suffix", "value": "string", - "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", + "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -154367,7 +154384,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -154376,7 +154393,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -154384,7 +154401,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -154393,7 +154410,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -154409,7 +154426,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -154417,7 +154434,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -154425,7 +154442,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -154443,7 +154460,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -154452,7 +154469,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -154468,7 +154485,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -154484,7 +154501,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -154502,7 +154519,7 @@ "syntaxKind": "PropertySignature", "name": "prefix", "value": "string", - "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", + "description": "A value to be displayed immediately before the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"https://\" or \"+353\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the prefix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -154511,7 +154528,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -154529,7 +154546,7 @@ "syntaxKind": "PropertySignature", "name": "suffix", "value": "string", - "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis cannot be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", + "description": "A value to be displayed immediately after the editable portion of the field.\n\nThis is useful for displaying an implied part of the value, such as \"@shopify.com\", or \"%\".\n\nThis can't be edited by the user, and it isn't included in the value of the field.\n\nIt may not be displayed until the user has interacted with the input. For example, an inline label may take the place of the suffix until the user focuses the input.", "isOptional": true, "defaultValue": "''" }, @@ -154549,7 +154566,7 @@ "src/surfaces/checkout/components/Time.ts": { "filePath": "src/surfaces/checkout/components/Time.ts", "name": "TimeProps", - "description": "Represents a specific point or duration in time. Use to display dates, times, or durations clearly and consistently. May include a machine-readable `datetime` attribute for improved accessibility and functionality.", + "description": "", "isPublicDocs": true, "members": [ { @@ -154557,7 +154574,7 @@ "syntaxKind": "PropertySignature", "name": "dateTime", "value": "string", - "description": "Set the time and/or date of the element.\n\nIt must be a [valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time#valid_datetime_values).", + "description": "The machine-readable date and/or time value for the element. Use this to provide a datetime string that browsers, search engines, and assistive technologies can parse for improved semantics and functionality.\n\nThe value must be a [valid datetime string](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time#valid_datetime_values), such as `2024-01-15`, `14:30`, or `2024-01-15T14:30:00`.", "isOptional": true, "defaultValue": "''" }, @@ -154566,7 +154583,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -155222,7 +155239,7 @@ "syntaxKind": "PropertySignature", "name": "dateTime", "value": "string", - "description": "Set the time and/or date of the element.\n\nIt must be a [valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time#valid_datetime_values).", + "description": "The machine-readable date and/or time value for the element. Use this to provide a datetime string that browsers, search engines, and assistive technologies can parse for improved semantics and functionality.\n\nThe value must be a [valid datetime string](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/time#valid_datetime_values), such as `2024-01-15`, `14:30`, or `2024-01-15T14:30:00`.", "isOptional": true, "defaultValue": "''" }, @@ -155505,7 +155522,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -156881,7 +156898,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -156900,7 +156917,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -156911,7 +156928,7 @@ "src/surfaces/checkout/components/Tooltip.ts": { "filePath": "src/surfaces/checkout/components/Tooltip.ts", "name": "TooltipProps", - "description": "The properties for the tooltip component when it's used in JSX.", + "description": "", "isPublicDocs": true, "members": [ { @@ -156919,7 +156936,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -156930,7 +156947,7 @@ "src/surfaces/checkout/components/UnorderedList.ts": { "filePath": "src/surfaces/checkout/components/UnorderedList.ts", "name": "UnorderedListProps", - "description": "The unordered list component displays a bulleted list of related items where sequence isn't critical. Use unordered list to present collections of features, options, requirements, or any group of items where order doesn't affect meaning.\n\nUnordered lists automatically add bullet points and support nested lists for hierarchical content organization. For sequential items where order is important, use [ordered list](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/layout-and-structure/ordered-list).", + "description": "", "isPublicDocs": true, "members": [ { @@ -156938,7 +156955,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true } ], @@ -157868,7 +157885,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -159236,7 +159253,7 @@ "src/surfaces/checkout/components/UrlField.ts": { "filePath": "src/surfaces/checkout/components/UrlField.ts", "name": "UrlFieldElementProps", - "description": "The URL field component collects URLs from users with built-in formatting and validation. Use URL field for website addresses, link destinations, or any URL input to provide URL-specific keyboard layouts and automatic validation.\n\nURL fields support protocol prefixing, validation, and help text to guide users toward entering properly formatted web addresses. For general text input, use [text field](/docs/api/{API_NAME}/{API_VERSION}/polaris-web-components/forms/text-field).", + "description": "", "isPublicDocs": true, "members": [ { @@ -159244,7 +159261,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -159253,7 +159270,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -159261,7 +159278,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -159270,7 +159287,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -159278,7 +159295,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -159286,7 +159303,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -159294,7 +159311,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -159312,7 +159329,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -159321,7 +159338,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -159329,7 +159346,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -159374,7 +159391,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -159390,7 +159407,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true } ], @@ -159401,7 +159418,7 @@ "src/surfaces/checkout/components/UrlField.ts": { "filePath": "src/surfaces/checkout/components/UrlField.ts", "name": "UrlFieldElementEvents", - "description": "Learn more about [registering events](/docs/api/checkout-ui-extensions/latest/using-polaris-components#event-handling).", + "description": "", "isPublicDocs": true, "members": [ { @@ -159409,7 +159426,7 @@ "syntaxKind": "PropertySignature", "name": "blur", "value": "CallbackEventListener", - "description": "A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", + "description": "A callback fired when the URL field loses focus.\n\nLearn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).", "isOptional": true }, { @@ -159417,7 +159434,7 @@ "syntaxKind": "PropertySignature", "name": "change", "value": "CallbackEventListener", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the URL field value changes.\n\nLearn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).", "isOptional": true }, { @@ -159425,7 +159442,7 @@ "syntaxKind": "PropertySignature", "name": "focus", "value": "CallbackEventListener", - "description": "A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", + "description": "A callback fired when the URL field receives focus.\n\nLearn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).", "isOptional": true }, { @@ -159433,18 +159450,18 @@ "syntaxKind": "PropertySignature", "name": "input", "value": "CallbackEventListener", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user inputs data into the URL field.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).", "isOptional": true } ], - "value": "export interface UrlFieldElementEvents {\n /**\n * A callback fired when the element loses focus. Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event\n */\n blur?: CallbackEventListener;\n /**\n * Callback when the user has **finished editing** a field, for example, once they have blurred the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the element receives focus. Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event\n */\n focus?: CallbackEventListener;\n /**\n * Callback when the user makes any changes in the field.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n */\n input?: CallbackEventListener;\n}" + "value": "export interface UrlFieldElementEvents {\n /**\n * A callback fired when the URL field value changes.\n *\n * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).\n */\n change?: CallbackEventListener;\n /**\n * A callback fired when the user inputs data into the URL field.\n *\n * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).\n */\n input?: CallbackEventListener;\n /**\n * A callback fired when the URL field loses focus.\n *\n * Learn more about the [blur event](https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event).\n */\n blur?: CallbackEventListener;\n /**\n * A callback fired when the URL field receives focus.\n *\n * Learn more about the [focus event](https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event).\n */\n focus?: CallbackEventListener;\n}" } }, "UrlFieldElementSlots": { "src/surfaces/checkout/components/UrlField.ts": { "filePath": "src/surfaces/checkout/components/UrlField.ts", "name": "UrlFieldElementSlots", - "description": "Learn more about [component slots](/docs/api/checkout-ui-extensions/latest/using-polaris-components#slots).", + "description": "", "isPublicDocs": true, "members": [ { @@ -159452,11 +159469,11 @@ "syntaxKind": "PropertySignature", "name": "accessory", "value": "HTMLElement", - "description": "Additional content to be displayed in the field. Commonly used to display an icon that activates a tooltip providing more information.", + "description": "Additional interactive content displayed within the field.\n\nAccepts button and clickable components with text content only. Other component types or complex layouts are not supported.", "isOptional": true } ], - "value": "export interface UrlFieldElementSlots {\n /**\n * Additional content to be displayed in the field.\n * Commonly used to display an icon that activates a tooltip providing more information.\n */\n accessory?: HTMLElement;\n}" + "value": "export interface UrlFieldElementSlots {\n /**\n * Additional interactive content displayed within the field.\n *\n * Accepts button and clickable components with text content only. Other component types or complex layouts are not supported.\n */\n accessory?: HTMLElement;\n}" } }, "UrlFieldElement": { @@ -159926,7 +159943,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -160117,7 +160134,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -160132,7 +160149,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -160246,7 +160263,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -160416,7 +160433,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -160515,7 +160532,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -160523,7 +160540,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -160590,7 +160607,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -160599,7 +160616,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -161522,7 +161539,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -161854,7 +161871,7 @@ "syntaxKind": "PropertySignature", "name": "autocomplete", "value": "AutocompleteField | `${AutocompleteSection} ${AutocompleteField}` | `${AutocompleteGroup} ${AutocompleteField}` | `${AutocompleteSection} ${AutocompleteGroup} ${AutocompleteField}` | \"on\" | \"off\"", - "description": "A hint as to the intended content of the field.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", + "description": "A hint about the intended content of the field for browser autofill.\n\nWhen set to `on` (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.\n\nWhen set to `off`, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.\n\nAlternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.", "isOptional": true, "defaultValue": "'on' for everything else" }, @@ -161863,7 +161880,7 @@ "syntaxKind": "PropertySignature", "name": "defaultValue", "value": "string", - "description": "The default value for the field.", + "description": "The initial value of the field when it first loads. Unlike `placeholder`, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.", "isOptional": true }, { @@ -161871,7 +161888,7 @@ "syntaxKind": "PropertySignature", "name": "disabled", "value": "boolean", - "description": "Disables the field, disallowing any interaction.", + "description": "Whether the field is disabled, preventing any user interaction.", "isOptional": true, "defaultValue": "false" }, @@ -161880,7 +161897,7 @@ "syntaxKind": "PropertySignature", "name": "error", "value": "string", - "description": "Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.", + "description": "An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.", "isOptional": true }, { @@ -161888,7 +161905,7 @@ "syntaxKind": "PropertySignature", "name": "id", "value": "string", - "description": "A unique identifier for the element.", + "description": "A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.", "isOptional": true }, { @@ -161896,7 +161913,7 @@ "syntaxKind": "PropertySignature", "name": "label", "value": "string", - "description": "Content to use as the field label.", + "description": "The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.", "isOptional": true }, { @@ -161904,7 +161921,7 @@ "syntaxKind": "PropertySignature", "name": "labelAccessibilityVisibility", "value": "'visible' | 'exclusive'", - "description": "Changes the visibility of the component's label.\n\n- `visible`: the label is visible to all users.\n- `exclusive`: the label is visually hidden but remains in the accessibility tree.", + "description": "Controls whether the label is visible to all users or only to screen readers.\n\n- `visible`: The label is shown to everyone.\n- `exclusive`: The label is visually hidden but still announced by screen readers.", "isOptional": true, "defaultValue": "'visible'" }, @@ -161922,7 +161939,7 @@ "syntaxKind": "PropertySignature", "name": "minLength", "value": "number", - "description": "Specifies the min number of characters allowed.", + "description": "Specifies the minimum number of characters allowed.", "isOptional": true, "defaultValue": "0" }, @@ -161931,7 +161948,7 @@ "syntaxKind": "PropertySignature", "name": "name", "value": "string", - "description": "An identifier for the field that is unique within the nearest containing form.", + "description": "The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.", "isOptional": true }, { @@ -161947,7 +161964,7 @@ "syntaxKind": "PropertySignature", "name": "onChange", "value": "(event: Event) => void", - "description": "Callback when the user has **finished editing** a field, for example, once they have blurred the field.", + "description": "A callback fired when the user has **finished editing** a field, such as when they blur the field or press Enter.", "isOptional": true }, { @@ -161963,7 +161980,7 @@ "syntaxKind": "PropertySignature", "name": "onInput", "value": "(event: Event) => void", - "description": "Callback when the user makes any changes in the field.", + "description": "A callback fired when the user makes any changes in the field, such as typing a character.\n\nLearn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event).", "isOptional": true }, { @@ -161971,7 +161988,7 @@ "syntaxKind": "PropertySignature", "name": "readOnly", "value": "boolean", - "description": "The field cannot be edited by the user. It is focusable will be announced by screen readers.", + "description": "Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.", "isOptional": true, "defaultValue": "false" }, @@ -162166,7 +162183,7 @@ "syntaxKind": "PropertySignature", "name": "onAfterToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired when the element state changes, after any toggle animations have finished.\n\n- If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", "isOptional": true }, { @@ -162174,11 +162191,11 @@ "syntaxKind": "PropertySignature", "name": "onToggle", "value": "(event: ToggleEvent$1) => void", - "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [toggle event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", + "description": "A callback fired immediately when the element state changes, before any animations.\n\n- If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the `newState` property will be set to `open`.\n- If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the `newState` will be `closed`.\n\nLearn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).", "isOptional": true } ], - "value": "export interface ToggleEventProps {\n\t/**\n\t * A callback fired when the element state changes, after any toggle animations have finished.\n\t *\n\t * - If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the\n\t * `newState` property will be set to `open`.\n\t * - If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the\n\t * `newState` will be `closed`.\n\t *\n\t * Learn more about [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).\n\t */\n\tonAfterToggle?: (event: ToggleEvent$1) => void;\n\t/**\n\t * A callback fired immediately when the element state changes, before any animations.\n\t *\n\t * - If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the\n\t * `newState` property will be set to `open`.\n\t * - If the element is transitioning from showing to hidden, then `oldState` property will be set to `open` and the\n\t * `newState` will be `closed`.\n\t *\n\t * Learn more about the [toggle event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [ToggleEvent.newState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [ToggleEvent.oldState](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).\n\t */\n\tonToggle?: (event: ToggleEvent$1) => void;\n}" + "value": "export interface ToggleEventProps {\n\t/**\n\t * A callback fired when the element state changes, after any toggle animations have finished.\n\t *\n\t * - If the element transitioned from hidden to showing, the `oldState` property will be set to `closed` and the\n\t * `newState` property will be set to `open`.\n\t * - If the element transitioned from showing to hidden, the `oldState` property will be set to `open` and the\n\t * `newState` will be `closed`.\n\t *\n\t * Learn more about [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState) and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).\n\t */\n\tonAfterToggle?: (event: ToggleEvent$1) => void;\n\t/**\n\t * A callback fired immediately when the element state changes, before any animations.\n\t *\n\t * - If the element is transitioning from hidden to showing, the `oldState` property will be set to `closed` and the\n\t * `newState` property will be set to `open`.\n\t * - If the element is transitioning from showing to hidden, then the `oldState` property will be set to `open` and the\n\t * `newState` will be `closed`.\n\t *\n\t * Learn more about the [`toggle` event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event), [`newState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState), and [`oldState` property](https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState).\n\t */\n\tonToggle?: (event: ToggleEvent$1) => void;\n}" } }, "ExtendableEvent": { @@ -162470,12 +162487,12 @@ "syntaxKind": "PropertySignature", "name": "accessibilityRole", "value": "AccessibilityRole", - "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.", + "description": "The semantic meaning of the component’s content. When set, assistive technologies use this role to help users navigate the page.", "isOptional": true, "defaultValue": "'generic'" } ], - "value": "export interface AccessibilityRoleProps {\n\t/**\n\t * Sets the semantic meaning of the component’s content. When set,\n\t * the role will be used by assistive technologies to help users\n\t * navigate the page.\n\t *\n\t * @implementation Although, in HTML hosts, this property changes the element used,\n\t * changing this property must not impact the visual styling of inside or outside of the box.\n\t *\n\t * @default 'generic'\n\t */\n\taccessibilityRole?: AccessibilityRole;\n}" + "value": "export interface AccessibilityRoleProps {\n\t/**\n\t * The semantic meaning of the component’s content. When set, assistive technologies use this role to help users navigate the page.\n\t *\n\t * @default 'generic'\n\t */\n\taccessibilityRole?: AccessibilityRole;\n}" } }, "AccessibilityVisibilityProps": { @@ -162757,12 +162774,12 @@ "syntaxKind": "PropertySignature", "name": "overflow", "value": "'hidden' | 'visible'", - "description": "Sets the overflow behavior of the element.\n\n- `hidden`: clips the content when it is larger than the element’s container. The element will not be scrollable and the users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.\n- `visible`: the content that extends beyond the element’s container is visible.", + "description": "The overflow behavior of the element.\n\n- `visible`: Content that extends beyond the container is visible.\n- `hidden`: Content that extends beyond the container is clipped and not scrollable.", "isOptional": true, "defaultValue": "'visible'" } ], - "value": "export interface OverflowProps {\n\t/**\n\t * Sets the overflow behavior of the element.\n\t *\n\t * - `hidden`: clips the content when it is larger than the element’s container.\n\t * The element will not be scrollable and the users will not be able\n\t * to access the clipped content by dragging or using a scroll wheel on a mouse.\n\t * - `visible`: the content that extends beyond the element’s container is visible.\n\t *\n\t * @default 'visible'\n\t */\n\toverflow?: \"hidden\" | \"visible\";\n}" + "value": "export interface OverflowProps {\n\t/**\n\t * The overflow behavior of the element.\n\t *\n\t * - `visible`: Content that extends beyond the container is visible.\n\t * - `hidden`: Content that extends beyond the container is clipped and not scrollable.\n\t *\n\t * @default 'visible'\n\t */\n\toverflow?: \"hidden\" | \"visible\";\n}" } }, "BaseBoxProps": { @@ -162931,7 +162948,7 @@ "syntaxKind": "PropertySignature", "name": "overflow", "value": "'hidden' | 'visible'", - "description": "Sets the overflow behavior of the element.\n\n- `hidden`: clips the content when it is larger than the element’s container. The element will not be scrollable and the users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.\n- `visible`: the content that extends beyond the element’s container is visible.", + "description": "The overflow behavior of the element.\n\n- `visible`: Content that extends beyond the container is visible.\n- `hidden`: Content that extends beyond the container is clipped and not scrollable.", "isOptional": true, "defaultValue": "'visible'" }, @@ -163022,7 +163039,7 @@ "syntaxKind": "PropertySignature", "name": "accessibilityRole", "value": "AccessibilityRole", - "description": "Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.", + "description": "The semantic meaning of the component’s content. When set, assistive technologies use this role to help users navigate the page.", "isOptional": true, "defaultValue": "'generic'" }, @@ -163177,7 +163194,7 @@ "syntaxKind": "PropertySignature", "name": "overflow", "value": "'hidden' | 'visible'", - "description": "Sets the overflow behavior of the element.\n\n- `hidden`: clips the content when it is larger than the element’s container. The element will not be scrollable and the users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.\n- `visible`: the content that extends beyond the element’s container is visible.", + "description": "The overflow behavior of the element.\n\n- `visible`: Content that extends beyond the container is visible.\n- `hidden`: Content that extends beyond the container is clipped and not scrollable.", "isOptional": true, "defaultValue": "'visible'" }, @@ -163260,7 +163277,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", "isOptional": true, "defaultValue": "'--auto'" }, @@ -163269,7 +163286,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", "isOptional": true }, { @@ -163286,7 +163303,7 @@ "syntaxKind": "PropertySignature", "name": "interestFor", "value": "string", - "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "description": "The ID of the component to show when users hover over or focus on this component. Use this to connect interactive components to popovers or tooltips that provide additional context or information.", "isOptional": true }, { @@ -163347,7 +163364,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", "isOptional": true, "defaultValue": "'--auto'" }, @@ -163356,7 +163373,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", "isOptional": true }, { @@ -163380,7 +163397,7 @@ "syntaxKind": "PropertySignature", "name": "interestFor", "value": "string", - "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "description": "The ID of the component to show when users hover over or focus on this component. Use this to connect interactive components to popovers or tooltips that provide additional context or information.", "isOptional": true }, { @@ -163432,7 +163449,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", "isOptional": true, "defaultValue": "'--auto'" }, @@ -163441,7 +163458,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", "isOptional": true }, { @@ -163449,11 +163466,11 @@ "syntaxKind": "PropertySignature", "name": "interestFor", "value": "string", - "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "description": "The ID of the component to show when users hover over or focus on this component. Use this to connect interactive components to popovers or tooltips that provide additional context or information.", "isOptional": true } ], - "value": "export interface InteractionProps {\n\t/**\n\t * ID of a component that should respond to activations (such as clicks) on this component.\n\t *\n\t * See `command` for how to control the behavior of the target.\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor\n\t */\n\tcommandFor?: string;\n\t/**\n\t * Sets the action the `commandFor` should take when this clickable is activated.\n\t *\n\t * See the documentation of particular components for the actions they support.\n\t *\n\t * - `--auto`: a default action for the target component.\n\t * - `--show`: shows the target component.\n\t * - `--hide`: hides the target component.\n\t * - `--toggle`: toggles the target component.\n\t * - `--copy`: copies the target ClipboardItem.\n\t *\n\t * @default '--auto'\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command\n\t */\n\tcommand?: \"--auto\" | \"--show\" | \"--hide\" | \"--toggle\" | \"--copy\";\n\t/**\n\t * The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).\n\t */\n\tinterestFor?: string;\n}" + "value": "export interface InteractionProps {\n\t/**\n\t * The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).\n\t */\n\tcommandFor?: string;\n\t/**\n\t * Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\t *\n\t * See the documentation of particular components for the actions they support.\n\t *\n\t * - `--auto`: a default action for the target component.\n\t * - `--show`: shows the target component.\n\t * - `--hide`: hides the target component.\n\t * - `--toggle`: toggles the target component.\n\t * - `--copy`: copies the target ClipboardItem.\n\t *\n\t * @default '--auto'\n\t */\n\tcommand?: \"--auto\" | \"--show\" | \"--hide\" | \"--toggle\" | \"--copy\";\n\t/**\n\t * The ID of the component to show when users hover over or focus on this component. Use this to connect interactive components to popovers or tooltips that provide additional context or information.\n\t */\n\tinterestFor?: string;\n}" } }, "BaseClickableProps": { @@ -163468,7 +163485,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", "isOptional": true, "defaultValue": "'--auto'" }, @@ -163477,7 +163494,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", "isOptional": true }, { @@ -163510,7 +163527,7 @@ "syntaxKind": "PropertySignature", "name": "interestFor", "value": "string", - "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "description": "The ID of the component to show when users hover over or focus on this component. Use this to connect interactive components to popovers or tooltips that provide additional context or information.", "isOptional": true }, { @@ -163701,11 +163718,11 @@ "syntaxKind": "PropertySignature", "name": "values", "value": "string[]", - "description": "An array of the `value`s of the selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.", + "description": "An array of `value` attributes for the currently selected options.\n\nThis is a convenience prop for setting the `selected` prop on child options.", "isOptional": true } ], - "value": "export interface MultipleInputProps extends BaseInputProps {\n\t/**\n\t * Callback when the user has selected option(s).\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n\t */\n\tonChange?: (event: Event) => void;\n\t/**\n\t * Callback when the user has selected option(s).\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n\t */\n\tonInput?: (event: Event) => void;\n\t/**\n\t * An array of the `value`s of the selected options.\n\t *\n\t * This is a convenience prop for setting the `selected` prop on child options.\n\t */\n\tvalues?: string[];\n}" + "value": "export interface MultipleInputProps extends BaseInputProps {\n\t/**\n\t * Callback when the user has selected option(s).\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n\t */\n\tonChange?: (event: Event) => void;\n\t/**\n\t * Callback when the user has selected option(s).\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event\n\t */\n\tonInput?: (event: Event) => void;\n\t/**\n\t * An array of `value` attributes for the currently selected options.\n\t *\n\t * This is a convenience prop for setting the `selected` prop on child options.\n\t */\n\tvalues?: string[];\n}" } }, "FileInputProps": { @@ -164355,7 +164372,7 @@ "syntaxKind": "PropertySignature", "name": "command", "value": "'--auto' | '--show' | '--hide' | '--toggle' | '--copy'", - "description": "Sets the action the `commandFor` should take when this clickable is activated.\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", + "description": "Sets the action the `commandFor` target should take when this component is activated. Learn more about the [`command` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command).\n\nSee the documentation of particular components for the actions they support.\n\n- `--auto`: a default action for the target component.\n- `--show`: shows the target component.\n- `--hide`: hides the target component.\n- `--toggle`: toggles the target component.\n- `--copy`: copies the target ClipboardItem.", "isOptional": true, "defaultValue": "'--auto'" }, @@ -164364,7 +164381,7 @@ "syntaxKind": "PropertySignature", "name": "commandFor", "value": "string", - "description": "ID of a component that should respond to activations (such as clicks) on this component.\n\nSee `command` for how to control the behavior of the target.", + "description": "The ID of the component to control when this component is activated. Pair with the `command` property to specify what action to perform on the target component. Learn more about the [`commandFor` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor).", "isOptional": true }, { @@ -164390,7 +164407,7 @@ "syntaxKind": "PropertySignature", "name": "interestFor", "value": "string", - "description": "The ID of the component to show when users hover over or focus on this component. Pair with a target component that supports interest-based interactions. Learn more about the [interestFor attribute](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code).", + "description": "The ID of the component to show when users hover over or focus on this component. Use this to connect interactive components to popovers or tooltips that provide additional context or information.", "isOptional": true }, { @@ -164506,6 +164523,16 @@ "isPublicDocs": true } }, + "ConsentPolicy": { + "src/surfaces/checkout/components/components.ts": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ConsentPolicy", + "value": "\"sms-marketing\"", + "description": "", + "isPublicDocs": true + } + }, "PhoneAutocompleteField": { "src/surfaces/checkout/components/components.ts": { "filePath": "src/surfaces/checkout/components/components.ts", @@ -164794,6 +164821,16 @@ "isPublicDocs": true } }, + "ParagraphType": { + "src/surfaces/checkout/components/components.ts": { + "filePath": "src/surfaces/checkout/components/components.ts", + "syntaxKind": "TypeAliasDeclaration", + "name": "ParagraphType", + "value": "\"paragraph\" | \"small\"", + "description": "", + "isPublicDocs": true + } + }, "PasswordAutocompleteField": { "src/surfaces/checkout/components/components.ts": { "filePath": "src/surfaces/checkout/components/components.ts", @@ -164998,7 +165035,7 @@ "src/surfaces/checkout/preact/api.ts": { "filePath": "src/surfaces/checkout/preact/api.ts", "name": "UseApiGeneratedType", - "description": "Returns the full API object that was passed in to your extension when it was created. Depending on the extension target, this object can contain different properties.\n\nFor example, the `purchase.checkout.cart-line-item.render-after` extension target will return the [CartLineDetailsApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/cartlinedetailsapi) object. Other targets may only have access to the [StandardApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/standardapi) object, which contains a basic set of properties about the checkout.\n\nFor a full list of the API available to each extension target, see the [ExtensionTargets type](https://shopify.dev/docs/api/checkout-ui-extensions/apis/extensiontargets).\n\n> Note: > As of version 2025-10, you no longer need this hook. The full API object is accessible via > the global `shopify` object.", + "description": "Returns the full API object that was passed in to your extension when it was created. Depending on the extension target, this object can contain different properties.\n\nFor example, the `purchase.checkout.cart-line-item.render-after` extension target will return the [CartLineDetailsApi](/docs/api/checkout-ui-extensions/apis/cartlinedetailsapi) object. Other targets may only have access to the [StandardApi](/docs/api/checkout-ui-extensions/apis/standardapi) object, which contains a basic set of properties about the checkout.\n\nFor a full list of the API available to each extension target, see the [ExtensionTargets type](/docs/api/checkout-ui-extensions/apis/extensiontargets).\n\n> Note: > As of version 2025-10, you no longer need this hook. The full API object is accessible via > the global `shopify` object.", "isPublicDocs": true, "params": [ { @@ -165022,7 +165059,7 @@ "src/surfaces/checkout/preact/api.ts": { "filePath": "src/surfaces/checkout/preact/api.ts", "name": "UseExtensionApiGeneratedType", - "description": "Returns the full API object that was passed in to your extension when it was created. Depending on the extension target, this object can contain different properties.\n\nFor example, the `purchase.checkout.cart-line-item.render-after` extension target will return the [CartLineDetailsApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/cartlinedetailsapi) object. Other targets may only have access to the [StandardApi](https://shopify.dev/docs/api/checkout-ui-extensions/apis/standardapi) object, which contains a basic set of properties about the checkout.\n\nFor a full list of the API available to each extension target, see the [ExtensionTargets type](https://shopify.dev/docs/api/checkout-ui-extensions/apis/extensiontargets).\n\n> Caution: This is deprecated, use `useApi` instead.", + "description": "Returns the full API object that was passed in to your extension when it was created. Depending on the extension target, this object can contain different properties.\n\nFor example, the `purchase.checkout.cart-line-item.render-after` extension target will return the [CartLineDetailsApi](/docs/api/checkout-ui-extensions/apis/cartlinedetailsapi) object. Other targets may only have access to the [StandardApi](/docs/api/checkout-ui-extensions/apis/standardapi) object, which contains a basic set of properties about the checkout.\n\nFor a full list of the API available to each extension target, see the [ExtensionTargets type](/docs/api/checkout-ui-extensions/apis/extensiontargets).\n\n> Caution: This is deprecated, use `useApi` instead.", "isPublicDocs": true, "params": [], "returns": { @@ -165279,7 +165316,7 @@ "src/surfaces/checkout/preact/buyer-journey.ts": { "filePath": "src/surfaces/checkout/preact/buyer-journey.ts", "name": "UseBuyerJourneyInterceptGeneratedType", - "description": "Installs a function for intercepting and preventing progress on checkout.\n\nTo block checkout progress, you must set the [block_progress](https://shopify.dev/docs/api/checkout-ui-extensions/configuration#block-progress) capability in your extension's configuration.\n\nIf you do, then you're expected to inform the buyer why navigation was blocked, either by passing validation errors to the checkout UI or rendering the errors in your extension.\n\n`useBuyerJourneyIntercept()` should be called at the top level of the extension, not within an embedded or child component, to avoid errors should the child component get destroyed.\n\nIt is good practice to show a warning in the checkout editor when the merchant has not given permission for your extension to block checkout progress.", + "description": "Installs a function for intercepting and preventing progress on checkout.\n\nTo block checkout progress, you must set the [block_progress](/docs/api/checkout-ui-extensions/configuration#block-progress) capability in your extension's configuration.\n\nIf you do, then you're expected to inform the buyer why navigation was blocked, either by passing validation errors to the checkout UI or rendering the errors in your extension.\n\n`useBuyerJourneyIntercept()` should be called at the top level of the extension, not within an embedded or child component, to avoid errors should the child component get destroyed.\n\nIt is good practice to show a warning in the checkout editor when the merchant has not given permission for your extension to block checkout progress.", "isPublicDocs": true, "params": [ { @@ -165437,7 +165474,7 @@ "src/surfaces/checkout/preact/checkout-token.ts": { "filePath": "src/surfaces/checkout/preact/checkout-token.ts", "name": "UseCheckoutTokenGeneratedType", - "description": "A stable id that represents the current checkout.\n\nMatches the `token` field in the [WebPixel checkout payload](https://shopify.dev/docs/api/pixels/customer-events#checkout) and the `checkout_token` field in the [Admin REST API Order resource](https://shopify.dev/docs/api/admin-rest/unstable/resources/order#resource-object).", + "description": "A stable id that represents the current checkout.\n\nMatches the `token` field in the [WebPixel checkout payload](/docs/api/pixels/customer-events#checkout) and the `checkout_token` field in the [Admin REST API Order resource](/docs/api/admin-rest/unstable/resources/order#resource-object).", "isPublicDocs": true, "params": [], "returns": { @@ -165738,7 +165775,7 @@ "src/surfaces/checkout/preact/discounts.ts": { "filePath": "src/surfaces/checkout/preact/discounts.ts", "name": "UseApplyDiscountCodeChangeGeneratedType", - "description": "Returns a function to add or remove discount codes.\n\n> Caution: > See [security considerations](https://shopify.dev/docs/api/checkout-ui-extensions/configuration#network-access) if your extension retrieves discount codes through a network call.", + "description": "Returns a function to add or remove discount codes.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/configuration#network-access) if your extension retrieves discount codes through a network call.", "isPublicDocs": true, "params": [], "returns": { @@ -165834,7 +165871,7 @@ "src/surfaces/checkout/preact/gift-cards.ts": { "filePath": "src/surfaces/checkout/preact/gift-cards.ts", "name": "UseApplyGiftCardChangeGeneratedType", - "description": "Returns a function to add or remove gift cards.\n\n> Caution: > See [security considerations](https://shopify.dev/docs/api/checkout-ui-extensions/configuration#network-access) if your extension retrieves gift card codes through a network call.", + "description": "Returns a function to add or remove gift cards.\n\n> Caution: > See [security considerations](/docs/api/checkout-ui-extensions/configuration#network-access) if your extension retrieves gift card codes through a network call.", "isPublicDocs": true, "params": [], "returns": { @@ -165906,7 +165943,7 @@ "src/surfaces/checkout/preact/localized-fields.ts": { "filePath": "src/surfaces/checkout/preact/localized-fields.ts", "name": "UseLocalizedFieldGeneratedType", - "description": "Returns the current localized field or undefined for the specified localized field key and re-renders your component if the value changes.", + "description": "Returns the current localized field or undefined for the specified localized field key and re-renders your component if the value changes.\n\nReturns `undefined` when no field is configured for the buyer's country.", "isPublicDocs": true, "params": [ {