Repository navigation
Version Packages (2026-10) - #4747
Merged
Merged
Conversation
1 of 2 tasks
shopify-github-actions-access
Bot
force-pushed
the
changeset-release/2026-10
branch
from
October 14, 2026 16:55
a5004f8 to
91d641b
Compare
robin-drexler
approved these changes
Oct 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
6e1670fThanks @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 ofDatePicker(allow,allowDays,defaultValue,defaultView,disallow,disallowDays,value,view,visibleMonths), typography properties onText,Paragraph, andHeading(fontSize,fontWeight,fontVariantNumeric),Banner'sheadinganddismissible,Button'svariantandaccessibilityLabel, andColorPicker'salpha,value, anddefaultValue.#4692
2903675Thanks @kyledurand! - ExposeEmptyStateandNumberto Admin UI extension targets that support standard components, includingadmin.app.home.render.#4666
644d6c0Thanks @kyledurand! - Add AdminNumberandEmptyStatetypes.Numberexposes thetone,color,fontSize, andfontWeightproperties;EmptyStateexposes theheadingproperty and thegraphic,subheading,primaryAction, andsecondaryActionsslots.#4687
eb63a47Thanks @davejcameron! - Addeds-progressto the Admin component definitions, so theProgresscomponent now has a generated docs entity alongside the other Admin components.#4689
e54c7ccThanks @davejcameron! - Fix the AdminProgresscomponent types by declaringProgressPropsin shared definitions.Sectionnow documents anIconin itsgraphicslot and aTooltipamong its accessories. Regenerates the Admin docs payload from Polaris 2.26.0.#4666
96cf66dThanks @kyledurand! - Addedsubheadingproperty and theprimaryAction,secondaryActions,graphic,accessory, andsupplementalslots to AdminSection.#4684
0b0f4c0Thanks @kyledurand! - Added the AdminProgresscomponent to all extension targets.#4739
8692912Thanks @rcaplanshopify! - Expose regional address components to checkout UI extensions:Country.acceptedAddressInputFields(the buyer's current country; on checkout'sCountryonly, not customer accounts') andlocalization.acceptedAddressInputFieldsForCountry(countryCode)(any country) list the address inputs a country's format carries, typed by the newAcceptedAddressInputField. They're guidance:applyShippingAddressChangedoesn't reject a write because it includes fields outside the list. It still rejects unknown properties, wrong value types, missing approval scopes, a malformedaddressLineComponents, components for a country without a component layout, and anyaddressCodewrite.MailingAddressgainsaddressLineComponents(newAddressLineComponentstype:streetName,streetNumber,additionalInformation,district,subdistrict) andaddressCode.applyShippingAddressChangeaccepts writes nested underaddressLineComponents.ShippingAddressChangeFieldError.fieldis nowShippingAddressChangeErrorField, which widenskeyof MailingAddressto include line component names and'addressLineComponents'.suggestandformat-suggestiontargets receivetarget.acceptedAddressInputFields.AutocompleteAddressacceptsaddressLineComponentsandaddressCode.@shopify/ui-extensions-tester: the checkout mock'slocalization.acceptedAddressInputFieldsForCountry()resolves the flat address input fields, andlocalization.countrycarries the same list. The newcreateAcceptedAddressInputFieldsForCountry(overrides?)helper andFLAT_ADDRESS_INPUT_FIELDSmodel countries with regional address components.Breaking for custom implementations:
Localizationhas a new required method, and exhaustive checks onShippingAddressChangeFieldError.fieldneed the new members.#4235
54b934aThanks @vctrchu! - Add Subscribable Storage to the POS Storage interface for reactive cross-target communication.#4658
6ed2ff9Thanks @Fionoble! - Expose the Popover component in all Admin UI extension targets.#4600
54c52f0Thanks @one20! - Add Product Configuration should-render targets8152f17Thanks @andrewmcgov! - 2026-10-rc release#4671
6d1cd69Thanks @aaronschubert0! - Add the POS backgroundscanhost event types:POS_EVENT_NAMES.SCAN, a publicScanEventpayload with guaranteed decodeddataand normalizedsource(camera,external, orembedded), and the matchingShopifyEventMapentry sopos.app.ready.dataextensions can registershopify.addEventListener('scan', ...). The event is delivered after POS has finished handling the scan itself.#4672
432d2c9Thanks @js-goupil! - Addcart.updateLineItemQuantityto 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
42d1588Thanks @IHu04! - Add the POS Cash Drawer API (shopify.cashDrawer) to thepos.home.tile.renderandpos.home.modal.rendertarget types. POS already exposes the API on these targets at runtime, so the types now match what extensions can call.#4682
a7ddd4fThanks @shopifyzach! - AddfiscalDeviceIdentifierto the POS Device API.shopify.device.fiscalDeviceIdentifieris the Shopify-assigned fiscal register identifier for the device (such as Sweden's manufacturing number), matching thefiscalDeviceIdentifierfield on thePointOfSaleDeviceobject in the GraphQL Admin API. It'sundefinedwhen the device's location doesn't require fiscal device registration.#4715
e34b5a7Thanks @js-goupil! - Addversionto the POS Extension API.shopify.extension.versionis 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 runningshopify 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'sundefinedwhen the extension runs from a local development server, because a build that hasn't been deployed has no published version.#4520
72e6b9dThanks @vctrchu! - Addshopify.intercept()types for POS blocking workflows.#4611
d8b03c9Thanks @aaronschubert0! - Addpaymentvalidationsintercept types for POS payment blocking workflows, and rename thebeforecheckoutintercept tocartvalidationsso both interceptable workflows follow one naming scheme.#4690
3703a5bThanks @ajanth-u! - Add thes-pos-listweb component for POS and theposListTemplatetagged template that compiles its<s-pos-list-item>row markup.#4724
9f5ad67Thanks @js-goupil! - Add the POSnavigationnavigatesuccessevent type and documentation for listening after a screen finishes appearing.#4612
8e59844Thanks @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 — callingshopify.action.presentModal()frompos.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
ActionTargetApiplus their contextual APIs, matching every other*.action.rendertarget. 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 versions2026-10and later; older API versions keep their published types.#4713
1c9845cThanks @henryStelle! - Addshopify.resolution.onSaveto 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
7ef321cThanks @vctrchu! - Add types for the POS validation resolution targets (pos.cart.validations.resolution.render,pos.payment.validations.resolution.render) and the target-scopedshopify.resolutionAPI. Intercept event types now match their runtime payloads: plain objects carryingtypeand the event's data, no longer extending DOMEvent.#4642
6f11a9dThanks @henryStelle! - Make the POSStorage.currentproperty required. It is always populated by the host, so marking it optional forced consumers to handle apossibly undefinedcase that can never occur.#4634
2ff93b3Thanks @vctrchu! - Add types for POS interceptValidationAdd.targetvalues ($.cart,$.cart.lineItems['<uuid>'],$.payment), narrowed per intercepted event.#4686
9c1c670Thanks @IHu04! - Remove the deprecatedsession.currentSession.staffMemberIdproperty from POS UI extensions in API version 2026-10. Use the reactivesession.staffMembersignal 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.staffMemberIdfield is unchanged.Patch Changes
#4660
3106936Thanks @oliverigor! - Add private positioning types (position,insetBlock,insetInline,transform) to thes-boxcheckout component.#4737
9d07293Thanks @ChemsCode! - ExposeAuthenticatedAccountCustomerfor the Authenticated Account API and its Preact hook, retainingCustomeras 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
8ee0082Thanks @henryStelle! - Remove stale POS component names from the component availability metadata for 2026-10 targets.#4618
e4768feThanks @SyndicateGit! - DeprecateuseLocalizationMarketandlocalization.marketon both checkout and customer-account surfaces. These will be removed in a future version of the API.#4639
5f16688Thanks @ajanth-u! - Document theborderRadiusprop on the POSs-imagecomponent.#4645
acbaf2dThanks @henryStelle! - Fix the preact entry points in package.json:typesVersionsentry for@shopify/ui-extensions/preactso its types resolve under TypeScript's legacymoduleResolution: "node"(node10), matching the existing entries forcheckout/preactandcustomer-account/preact../point-of-sale/preactentry fromexports. Its source file was intentionally deleted right after it was introduced, but theexportsentry 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/preactentry point.#4583
ae2cd13Thanks @sylvhama! - Hide thetertiarybutton variant from the generateds-buttondocumentation while preserving the existing public type.#4631
67fd45bThanks @aaronschubert0! - Addcurrencyto the POS Cart API so extensions can read the cart presentment currency.#4683
8ebe439Thanks @vctrchu! - Clarify POS validation interceptor and resolution event semantics, including cash amounts, empty results, revalidation updates, and generated interceptor and Resolution API documentation.#4741
37919deThanks @vctrchu! - Add descriptions to POS intercept and resolution types that rendered blank in generated docs, includingInterceptResult.operations,ValidationLevel, the validation target types, andResolutionApiContent.#4735
565c318Thanks @ajanth-u! - Shorten thes-pos-listproperty descriptions forrows,itemTemplates, andloadingMore, and stop listing defaults forrowsanditemTemplates.#4632
3001369Thanks @aaronschubert0! - Documentpaymentvalidationsdispatch timing: fires when a tender is confirmed but not yet committed, once per tender attempt (split payments dispatch per tender).#4655
3c4ff34Thanks @melissaluu! - Remove unsupported bulk print actionshouldRendertargets from Admin UI extension types and generated docs.#4625
bfe153fThanks @henryStelle! - Allow POSs-buttoncomponents to explicitly use the defaultautovariant.@shopify/ui-extensions-tester@2026.10.0
Minor Changes
#4235
54b934aThanks @vctrchu! - Add Subscribable Storage to the POS Storage interface for reactive cross-target communication.#4600
54c52f0Thanks @one20! - Add Product Configuration should-render targets8152f17Thanks @andrewmcgov! - 2026-10-rc release#4612
8e59844Thanks @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 — callingshopify.action.presentModal()frompos.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
ActionTargetApiplus their contextual APIs, matching every other*.action.rendertarget. 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 versions2026-10and later; older API versions keep their published types.#4713
1c9845cThanks @henryStelle! - Addshopify.resolution.onSaveto 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
7ef321cThanks @vctrchu! - Add types for the POS validation resolution targets (pos.cart.validations.resolution.render,pos.payment.validations.resolution.render) and the target-scopedshopify.resolutionAPI. Intercept event types now match their runtime payloads: plain objects carryingtypeand the event's data, no longer extending DOMEvent.#4671
6d1cd69Thanks @aaronschubert0! -extension.dispatch()now stamps the dispatched event with itstype, matching what the POS runtime delivers toshopify.addEventListenerlisteners, and accepts the payload withouttype. Assertions that compared a listener's argument to the raw payload should now expect the addedtypefield.#4686
9c1c670Thanks @IHu04! - Remove the deprecatedsession.currentSession.staffMemberIdproperty from POS UI extensions in API version 2026-10. Use the reactivesession.staffMembersignal 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.staffMemberIdfield is unchanged.Patch Changes
#4739
8692912Thanks @rcaplanshopify! - Expose regional address components to checkout UI extensions:Country.acceptedAddressInputFields(the buyer's current country; on checkout'sCountryonly, not customer accounts') andlocalization.acceptedAddressInputFieldsForCountry(countryCode)(any country) list the address inputs a country's format carries, typed by the newAcceptedAddressInputField. They're guidance:applyShippingAddressChangedoesn't reject a write because it includes fields outside the list. It still rejects unknown properties, wrong value types, missing approval scopes, a malformedaddressLineComponents, components for a country without a component layout, and anyaddressCodewrite.MailingAddressgainsaddressLineComponents(newAddressLineComponentstype:streetName,streetNumber,additionalInformation,district,subdistrict) andaddressCode.applyShippingAddressChangeaccepts writes nested underaddressLineComponents.ShippingAddressChangeFieldError.fieldis nowShippingAddressChangeErrorField, which widenskeyof MailingAddressto include line component names and'addressLineComponents'.suggestandformat-suggestiontargets receivetarget.acceptedAddressInputFields.AutocompleteAddressacceptsaddressLineComponentsandaddressCode.@shopify/ui-extensions-tester: the checkout mock'slocalization.acceptedAddressInputFieldsForCountry()resolves the flat address input fields, andlocalization.countrycarries the same list. The newcreateAcceptedAddressInputFieldsForCountry(overrides?)helper andFLAT_ADDRESS_INPUT_FIELDSmodel countries with regional address components.Breaking for custom implementations:
Localizationhas a new required method, and exhaustive checks onShippingAddressChangeFieldError.fieldneed the new members.#4631
67fd45bThanks @aaronschubert0! - Addcurrencyto the POS Cart API so extensions can read the cart presentment currency.#4672
432d2c9Thanks @js-goupil! - Addcart.updateLineItemQuantityto 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
42d1588Thanks @IHu04! - Add the POS Cash Drawer API (shopify.cashDrawer) to thepos.home.tile.renderandpos.home.modal.rendertarget types. POS already exposes the API on these targets at runtime, so the types now match what extensions can call.#4655
3c4ff34Thanks @melissaluu! - Remove unsupported bulk print actionshouldRendertargets 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]: