Skip to content

Version Packages (2026-10) - #4747

Merged
rcaplanshopify merged 1 commit into
2026-10from
changeset-release/2026-10
Oct 14, 2026
Merged

rcaplanshopify merged 1 commit into
2026-10from
changeset-release/2026-10

Conversation

@shopify-github-actions-access

@shopify-github-actions-access shopify-github-actions-access Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to 2026-10, this PR will be updated.

Releases

@shopify/ui-extensions@2026.10.0

Minor Changes

  • #4666 6e1670f Thanks @kyledurand! - Regenerate the Admin per-component types so they match the components as shipped. Around 35 components gain properties that existed in the implementation but were missing from the types, including the whole of DatePicker (allow, allowDays, defaultValue, defaultView, disallow, disallowDays, value, view, visibleMonths), typography properties on Text, Paragraph, and Heading (fontSize, fontWeight, fontVariantNumeric), Banner's heading and dismissible, Button's variant and accessibilityLabel, and ColorPicker's alpha, value, and defaultValue.

  • #4692 2903675 Thanks @kyledurand! - Expose EmptyState and Number to Admin UI extension targets that support standard components, including admin.app.home.render.

  • #4666 644d6c0 Thanks @kyledurand! - Add Admin Number and EmptyState types. Number exposes the tone, color, fontSize, and fontWeight properties; EmptyState exposes the heading property and the graphic, subheading, primaryAction, and secondaryActions slots.

  • #4687 eb63a47 Thanks @davejcameron! - Added s-progress to the Admin component definitions, so the Progress component now has a generated docs entity alongside the other Admin components.

  • #4689 e54c7cc Thanks @davejcameron! - Fix the Admin Progress component types by declaring ProgressProps in shared definitions. Section now documents an Icon in its graphic slot and a Tooltip among its accessories. Regenerates the Admin docs payload from Polaris 2.26.0.

  • #4666 96cf66d Thanks @kyledurand! - Added subheading property and the primaryAction, secondaryActions, graphic, accessory, and supplemental slots to Admin Section.

  • #4684 0b0f4c0 Thanks @kyledurand! - Added the Admin Progress component to all extension targets.

  • #4739 8692912 Thanks @rcaplanshopify! - Expose regional address components to checkout UI extensions:

    • Country.acceptedAddressInputFields (the buyer's current country; on checkout's Country only, not customer accounts') and localization.acceptedAddressInputFieldsForCountry(countryCode) (any country) list the address inputs a country's format carries, typed by the new AcceptedAddressInputField. They're guidance: applyShippingAddressChange doesn't reject a write because it includes fields outside the list. It still rejects unknown properties, wrong value types, missing approval scopes, a malformed addressLineComponents, components for a country without a component layout, and any addressCode write.
    • MailingAddress gains addressLineComponents (new AddressLineComponents type: streetName, streetNumber, additionalInformation, district, subdistrict) and addressCode.
    • applyShippingAddressChange accepts writes nested under addressLineComponents. ShippingAddressChangeFieldError.field is now ShippingAddressChangeErrorField, which widens keyof MailingAddress to include line component names and 'addressLineComponents'.
    • The address autocomplete suggest and format-suggestion targets receive target.acceptedAddressInputFields. AutocompleteAddress accepts addressLineComponents and addressCode.
    • @shopify/ui-extensions-tester: the checkout mock's localization.acceptedAddressInputFieldsForCountry() resolves the flat address input fields, and localization.country carries the same list. The new createAcceptedAddressInputFieldsForCountry(overrides?) helper and FLAT_ADDRESS_INPUT_FIELDS model countries with regional address components.

    Breaking for custom implementations: Localization has a new required method, and exhaustive checks on ShippingAddressChangeFieldError.field need the new members.

  • #4235 54b934a Thanks @vctrchu! - Add Subscribable Storage to the POS Storage interface for reactive cross-target communication.

  • #4658 6ed2ff9 Thanks @Fionoble! - Expose the Popover component in all Admin UI extension targets.

  • #4600 54c52f0 Thanks @one20! - Add Product Configuration should-render targets

  • 8152f17 Thanks @andrewmcgov! - 2026-10-rc release

  • #4671 6d1cd69 Thanks @aaronschubert0! - Add the POS background scan host event types: POS_EVENT_NAMES.SCAN, a public ScanEvent payload with guaranteed decoded data and normalized source (camera, external, or embedded), and the matching ShopifyEventMap entry so pos.app.ready.data extensions can register shopify.addEventListener('scan', ...). The event is delivered after POS has finished handling the scan itself.

  • #4672 432d2c9 Thanks @js-goupil! - Add cart.updateLineItemQuantity to the POS Cart API for API version 2026-10. The method updates one line item's quantity while preserving its properties, discounts, and selling plans.

  • #4744 42d1588 Thanks @IHu04! - Add the POS Cash Drawer API (shopify.cashDrawer) to the pos.home.tile.render and pos.home.modal.render target types. POS already exposes the API on these targets at runtime, so the types now match what extensions can call.

  • #4682 a7ddd4f Thanks @shopifyzach! - Add fiscalDeviceIdentifier to the POS Device API. shopify.device.fiscalDeviceIdentifier is the Shopify-assigned fiscal register identifier for the device (such as Sweden's manufacturing number), matching the fiscalDeviceIdentifier field on the PointOfSaleDevice object in the GraphQL Admin API. It's undefined when the device's location doesn't require fiscal device registration.

  • #4715 e34b5a7 Thanks @js-goupil! - Add version to the POS Extension API. shopify.extension.version is the name of the published app version that the running extension was deployed in — the same name shown on the Versions page of the dev dashboard, and the name chosen when running shopify app deploy. Use it to tell which build of an extension a merchant is running, which POS can cache and run offline for some time after a newer version is deployed. It's an opaque name rather than a version number, so compare it for equality. It's undefined when the extension runs from a local development server, because a build that hasn't been deployed has no published version.

  • #4520 72e6b9d Thanks @vctrchu! - Add shopify.intercept() types for POS blocking workflows.

  • #4611 d8b03c9 Thanks @aaronschubert0! - Add paymentvalidations intercept types for POS payment blocking workflows, and rename the beforecheckout intercept to cartvalidations so both interceptable workflows follow one naming scheme.

  • #4690 3703a5b Thanks @ajanth-u! - Add the s-pos-list web component for POS and the posListTemplate tagged template that compiles its <s-pos-list-item> row markup.

  • #4724 9f5ad67 Thanks @js-goupil! - Add the POS navigation navigatesuccess event type and documentation for listening after a screen finishes appearing.

  • #4612 8e59844 Thanks @aaronschubert0! - Remove the POS Action API (shopify.action.presentModal()) from action render targets (*.action.render).

    Action render targets are themselves the modal destination that presentModal() opens, so exposing the Action API there had no meaningful destination — calling shopify.action.presentModal() from pos.cart.line-item-details.action.render (the one action render target that still exposed it) pushed another instance of the same target onto the navigation stack, rendering a duplicate modal on top of the already-open one.

    Action render targets now expose only ActionTargetApi plus their contextual APIs, matching every other *.action.render target. Extensions that need in-workflow navigation should use the Navigation API (shopify.navigation). This is a versioned breaking change: the surface is removed for API versions 2026-10 and later; older API versions keep their published types.

  • #4713 1c9845c Thanks @henryStelle! - Add shopify.resolution.onSave to the POS validation resolution targets so an extension can commit pending work before POS re-runs the intercepted validation. Registering a handler asynchronously returns an async cleanup function.

  • #4641 7ef321c Thanks @vctrchu! - Add types for the POS validation resolution targets (pos.cart.validations.resolution.render, pos.payment.validations.resolution.render) and the target-scoped shopify.resolution API. Intercept event types now match their runtime payloads: plain objects carrying type and the event's data, no longer extending DOM Event.

  • #4642 6f11a9d Thanks @henryStelle! - Make the POS Storage.current property required. It is always populated by the host, so marking it optional forced consumers to handle a possibly undefined case that can never occur.

  • #4634 2ff93b3 Thanks @vctrchu! - Add types for POS intercept ValidationAdd.target values ($.cart, $.cart.lineItems['<uuid>'], $.payment), narrowed per intercepted event.

  • #4686 9c1c670 Thanks @IHu04! - Remove the deprecated session.currentSession.staffMemberId property from POS UI extensions in API version 2026-10. Use the reactive session.staffMember signal to access the staff member who is currently pinned in to POS.

    This is a versioned breaking change. API versions 2026-07 and earlier retain their published types. The separate receipt event session.staffMemberId field is unchanged.

Patch Changes

  • #4660 3106936 Thanks @oliverigor! - Add private positioning types (position, insetBlock, insetInline, transform) to the s-box checkout component.

  • #4737 9d07293 Thanks @ChemsCode! - Expose AuthenticatedAccountCustomer for the Authenticated Account API and its Preact hook, retaining Customer as a deprecated compatibility interface. Correct the customer ID documentation to describe a numeric string and use the public type names in the generated documentation.

  • #4727 8ee0082 Thanks @henryStelle! - Remove stale POS component names from the component availability metadata for 2026-10 targets.

  • #4618 e4768fe Thanks @SyndicateGit! - Deprecate useLocalizationMarket and localization.market on both checkout and customer-account surfaces. These will be removed in a future version of the API.

  • #4639 5f16688 Thanks @ajanth-u! - Document the borderRadius prop on the POS s-image component.

  • #4645 acbaf2d Thanks @henryStelle! - Fix the preact entry points in package.json:

    • Add a typesVersions entry for @shopify/ui-extensions/preact so its types resolve under TypeScript's legacy moduleResolution: "node" (node10), matching the existing entries for checkout/preact and customer-account/preact.
    • Remove the dead ./point-of-sale/preact entry from exports. Its source file was intentionally deleted right after it was introduced, but the exports entry was left behind, pointing at files that are never built or published — the import has never resolved in any released version. POS extensions should use the generic @shopify/ui-extensions/preact entry point.
  • #4583 ae2cd13 Thanks @sylvhama! - Hide the tertiary button variant from the generated s-button documentation while preserving the existing public type.

  • #4631 67fd45b Thanks @aaronschubert0! - Add currency to the POS Cart API so extensions can read the cart presentment currency.

  • #4683 8ebe439 Thanks @vctrchu! - Clarify POS validation interceptor and resolution event semantics, including cash amounts, empty results, revalidation updates, and generated interceptor and Resolution API documentation.

  • #4741 37919de Thanks @vctrchu! - Add descriptions to POS intercept and resolution types that rendered blank in generated docs, including InterceptResult.operations, ValidationLevel, the validation target types, and ResolutionApiContent.

  • #4735 565c318 Thanks @ajanth-u! - Shorten the s-pos-list property descriptions for rows, itemTemplates, and loadingMore, and stop listing defaults for rows and itemTemplates.

  • #4632 3001369 Thanks @aaronschubert0! - Document paymentvalidations dispatch timing: fires when a tender is confirmed but not yet committed, once per tender attempt (split payments dispatch per tender).

  • #4655 3c4ff34 Thanks @melissaluu! - Remove unsupported bulk print action shouldRender targets from Admin UI extension types and generated docs.

  • #4625 bfe153f Thanks @henryStelle! - Allow POS s-button components to explicitly use the default auto variant.

@shopify/ui-extensions-tester@2026.10.0

Minor Changes

  • #4235 54b934a Thanks @vctrchu! - Add Subscribable Storage to the POS Storage interface for reactive cross-target communication.

  • #4600 54c52f0 Thanks @one20! - Add Product Configuration should-render targets

  • 8152f17 Thanks @andrewmcgov! - 2026-10-rc release

  • #4612 8e59844 Thanks @aaronschubert0! - Remove the POS Action API (shopify.action.presentModal()) from action render targets (*.action.render).

    Action render targets are themselves the modal destination that presentModal() opens, so exposing the Action API there had no meaningful destination — calling shopify.action.presentModal() from pos.cart.line-item-details.action.render (the one action render target that still exposed it) pushed another instance of the same target onto the navigation stack, rendering a duplicate modal on top of the already-open one.

    Action render targets now expose only ActionTargetApi plus their contextual APIs, matching every other *.action.render target. Extensions that need in-workflow navigation should use the Navigation API (shopify.navigation). This is a versioned breaking change: the surface is removed for API versions 2026-10 and later; older API versions keep their published types.

  • #4713 1c9845c Thanks @henryStelle! - Add shopify.resolution.onSave to the POS validation resolution targets so an extension can commit pending work before POS re-runs the intercepted validation. Registering a handler asynchronously returns an async cleanup function.

  • #4641 7ef321c Thanks @vctrchu! - Add types for the POS validation resolution targets (pos.cart.validations.resolution.render, pos.payment.validations.resolution.render) and the target-scoped shopify.resolution API. Intercept event types now match their runtime payloads: plain objects carrying type and the event's data, no longer extending DOM Event.

  • #4671 6d1cd69 Thanks @aaronschubert0! - extension.dispatch() now stamps the dispatched event with its type, matching what the POS runtime delivers to shopify.addEventListener listeners, and accepts the payload without type. Assertions that compared a listener's argument to the raw payload should now expect the added type field.

  • #4686 9c1c670 Thanks @IHu04! - Remove the deprecated session.currentSession.staffMemberId property from POS UI extensions in API version 2026-10. Use the reactive session.staffMember signal to access the staff member who is currently pinned in to POS.

    This is a versioned breaking change. API versions 2026-07 and earlier retain their published types. The separate receipt event session.staffMemberId field is unchanged.

Patch Changes

  • #4739 8692912 Thanks @rcaplanshopify! - Expose regional address components to checkout UI extensions:

    • Country.acceptedAddressInputFields (the buyer's current country; on checkout's Country only, not customer accounts') and localization.acceptedAddressInputFieldsForCountry(countryCode) (any country) list the address inputs a country's format carries, typed by the new AcceptedAddressInputField. They're guidance: applyShippingAddressChange doesn't reject a write because it includes fields outside the list. It still rejects unknown properties, wrong value types, missing approval scopes, a malformed addressLineComponents, components for a country without a component layout, and any addressCode write.
    • MailingAddress gains addressLineComponents (new AddressLineComponents type: streetName, streetNumber, additionalInformation, district, subdistrict) and addressCode.
    • applyShippingAddressChange accepts writes nested under addressLineComponents. ShippingAddressChangeFieldError.field is now ShippingAddressChangeErrorField, which widens keyof MailingAddress to include line component names and 'addressLineComponents'.
    • The address autocomplete suggest and format-suggestion targets receive target.acceptedAddressInputFields. AutocompleteAddress accepts addressLineComponents and addressCode.
    • @shopify/ui-extensions-tester: the checkout mock's localization.acceptedAddressInputFieldsForCountry() resolves the flat address input fields, and localization.country carries the same list. The new createAcceptedAddressInputFieldsForCountry(overrides?) helper and FLAT_ADDRESS_INPUT_FIELDS model countries with regional address components.

    Breaking for custom implementations: Localization has a new required method, and exhaustive checks on ShippingAddressChangeFieldError.field need the new members.

  • #4631 67fd45b Thanks @aaronschubert0! - Add currency to the POS Cart API so extensions can read the cart presentment currency.

  • #4672 432d2c9 Thanks @js-goupil! - Add cart.updateLineItemQuantity to the POS Cart API for API version 2026-10. The method updates one line item's quantity while preserving its properties, discounts, and selling plans.

  • #4744 42d1588 Thanks @IHu04! - Add the POS Cash Drawer API (shopify.cashDrawer) to the pos.home.tile.render and pos.home.modal.render target types. POS already exposes the API on these targets at runtime, so the types now match what extensions can call.

  • #4655 3c4ff34 Thanks @melissaluu! - Remove unsupported bulk print action shouldRender targets from Admin UI extension types and generated docs.

  • Updated dependencies [3106936, 6e1670f, 2903675, 644d6c0, eb63a47, e54c7cc, 96cf66d, 9d07293, 0b0f4c0, 8692912, 8ee0082, e4768fe, 5f16688, 54b934a, 6ed2ff9, acbaf2d, ae2cd13, 54c52f0, 8152f17, 6d1cd69, 67fd45b, 432d2c9, 42d1588, a7ddd4f, e34b5a7, 72e6b9d, 8ebe439, d8b03c9, 37919de, 565c318, 3703a5b, 9f5ad67, 3001369, 8e59844, 1c9845c, 7ef321c, 6f11a9d, 2ff93b3, 3c4ff34, 9c1c670, bfe153f]:

    • @shopify/ui-extensions@2026.10.0

@rcaplanshopify
rcaplanshopify merged commit 97a1769 into 2026-10 Oct 14, 2026
9 checks passed
@rcaplanshopify
rcaplanshopify deleted the changeset-release/2026-10 branch October 14, 2026 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants