@shopify/ui-extensions 2026.10.0-rc.9 → 2026.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/build/cjs/surfaces/customer-account/preact/authenticated-account.js +1 -1
  2. package/build/cjs/surfaces/point-of-sale/events.js +39 -22
  3. package/build/cjs/surfaces/point-of-sale/pos-list-template.js +339 -0
  4. package/build/cjs/surfaces/point-of-sale.js +2 -0
  5. package/build/esm/surfaces/customer-account/preact/authenticated-account.mjs +1 -1
  6. package/build/esm/surfaces/point-of-sale/events.mjs +39 -22
  7. package/build/esm/surfaces/point-of-sale/pos-list-template.mjs +331 -0
  8. package/build/esm/surfaces/point-of-sale.mjs +1 -0
  9. package/build/esnext/surfaces/customer-account/preact/authenticated-account.esnext +1 -1
  10. package/build/esnext/surfaces/point-of-sale/events.esnext +39 -22
  11. package/build/esnext/surfaces/point-of-sale/pos-list-template.esnext +331 -0
  12. package/build/esnext/surfaces/point-of-sale.esnext +1 -0
  13. package/build/ts/shared.d.ts +6 -20
  14. package/build/ts/shared.d.ts.map +1 -1
  15. package/build/ts/surfaces/admin/api/picker/picker.d.ts +2 -2
  16. package/build/ts/surfaces/admin/api/picker/picker.d.ts.map +1 -1
  17. package/build/ts/surfaces/admin/components/AdminAction.d.ts +2 -2
  18. package/build/ts/surfaces/admin/components/AdminBlock.d.ts +3 -3
  19. package/build/ts/surfaces/admin/components/AdminPrintAction.d.ts +2 -2
  20. package/build/ts/surfaces/admin/components/AppNav.d.ts +1 -1
  21. package/build/ts/surfaces/admin/components/Avatar.d.ts +1 -1
  22. package/build/ts/surfaces/admin/components/Badge.d.ts +1 -1
  23. package/build/ts/surfaces/admin/components/Banner.d.ts +1 -1
  24. package/build/ts/surfaces/admin/components/Box.d.ts +1 -1
  25. package/build/ts/surfaces/admin/components/Button.d.ts +1 -1
  26. package/build/ts/surfaces/admin/components/ButtonGroup.d.ts +1 -1
  27. package/build/ts/surfaces/admin/components/Checkbox.d.ts +3 -3
  28. package/build/ts/surfaces/admin/components/Chip.d.ts +1 -1
  29. package/build/ts/surfaces/admin/components/Choice.d.ts +3 -3
  30. package/build/ts/surfaces/admin/components/ChoiceList.d.ts +3 -3
  31. package/build/ts/surfaces/admin/components/Clickable.d.ts +1 -1
  32. package/build/ts/surfaces/admin/components/ClickableChip.d.ts +1 -1
  33. package/build/ts/surfaces/admin/components/ColorField.d.ts +1 -1
  34. package/build/ts/surfaces/admin/components/ColorPicker.d.ts +1 -1
  35. package/build/ts/surfaces/admin/components/DateField.d.ts +1 -1
  36. package/build/ts/surfaces/admin/components/DatePicker.d.ts +1 -1
  37. package/build/ts/surfaces/admin/components/Divider.d.ts +1 -1
  38. package/build/ts/surfaces/admin/components/DropZone.d.ts +1 -1
  39. package/build/ts/surfaces/admin/components/EmailField.d.ts +1 -1
  40. package/build/ts/surfaces/admin/components/EmptyState.d.ts +1 -1
  41. package/build/ts/surfaces/admin/components/Form.d.ts +1 -1
  42. package/build/ts/surfaces/admin/components/FunctionSettings.d.ts +1 -1
  43. package/build/ts/surfaces/admin/components/Grid.d.ts +1 -1
  44. package/build/ts/surfaces/admin/components/GridItem.d.ts +1 -1
  45. package/build/ts/surfaces/admin/components/Heading.d.ts +1 -1
  46. package/build/ts/surfaces/admin/components/Icon.d.ts +1 -1
  47. package/build/ts/surfaces/admin/components/Image.d.ts +1 -1
  48. package/build/ts/surfaces/admin/components/Link.d.ts +1 -1
  49. package/build/ts/surfaces/admin/components/ListItem.d.ts +1 -1
  50. package/build/ts/surfaces/admin/components/Menu.d.ts +1 -1
  51. package/build/ts/surfaces/admin/components/Modal.d.ts +1 -1
  52. package/build/ts/surfaces/admin/components/MoneyField.d.ts +1 -1
  53. package/build/ts/surfaces/admin/components/Number.d.ts +1 -1
  54. package/build/ts/surfaces/admin/components/NumberField.d.ts +1 -1
  55. package/build/ts/surfaces/admin/components/Option.d.ts +3 -3
  56. package/build/ts/surfaces/admin/components/OptionGroup.d.ts +1 -1
  57. package/build/ts/surfaces/admin/components/OrderedList.d.ts +1 -1
  58. package/build/ts/surfaces/admin/components/Page.d.ts +1 -1
  59. package/build/ts/surfaces/admin/components/Paragraph.d.ts +1 -1
  60. package/build/ts/surfaces/admin/components/PasswordField.d.ts +1 -1
  61. package/build/ts/surfaces/admin/components/Popover.d.ts +1 -1
  62. package/build/ts/surfaces/admin/components/Progress.d.ts +155 -0
  63. package/build/ts/surfaces/admin/components/QueryContainer.d.ts +1 -1
  64. package/build/ts/surfaces/admin/components/SearchField.d.ts +1 -1
  65. package/build/ts/surfaces/admin/components/Section.d.ts +11 -3
  66. package/build/ts/surfaces/admin/components/Select.d.ts +1 -1
  67. package/build/ts/surfaces/admin/components/Spinner.d.ts +1 -1
  68. package/build/ts/surfaces/admin/components/Stack.d.ts +1 -1
  69. package/build/ts/surfaces/admin/components/StandardComponents.d.ts +1 -1
  70. package/build/ts/surfaces/admin/components/StandardComponents.d.ts.map +1 -1
  71. package/build/ts/surfaces/admin/components/Switch.d.ts +3 -3
  72. package/build/ts/surfaces/admin/components/Table.d.ts +1 -1
  73. package/build/ts/surfaces/admin/components/TableBody.d.ts +1 -1
  74. package/build/ts/surfaces/admin/components/TableCell.d.ts +1 -1
  75. package/build/ts/surfaces/admin/components/TableHeader.d.ts +1 -1
  76. package/build/ts/surfaces/admin/components/TableHeaderRow.d.ts +1 -1
  77. package/build/ts/surfaces/admin/components/TableRow.d.ts +1 -1
  78. package/build/ts/surfaces/admin/components/Text.d.ts +1 -1
  79. package/build/ts/surfaces/admin/components/TextArea.d.ts +1 -1
  80. package/build/ts/surfaces/admin/components/TextField.d.ts +1 -1
  81. package/build/ts/surfaces/admin/components/Thumbnail.d.ts +1 -1
  82. package/build/ts/surfaces/admin/components/Tooltip.d.ts +1 -1
  83. package/build/ts/surfaces/admin/components/URLField.d.ts +1 -1
  84. package/build/ts/surfaces/admin/components/UnorderedList.d.ts +1 -1
  85. package/build/ts/surfaces/admin/components/shared.d.ts +47 -7
  86. package/build/ts/surfaces/admin/targets/admin.abandoned-checkout-details.action.render.d.ts +3 -0
  87. package/build/ts/surfaces/admin/targets/admin.abandoned-checkout-details.block.render.d.ts +3 -0
  88. package/build/ts/surfaces/admin/targets/admin.abandoned-checkout-index.action.render.d.ts +3 -0
  89. package/build/ts/surfaces/admin/targets/admin.app.home.render.d.ts +3 -0
  90. package/build/ts/surfaces/admin/targets/admin.app.intent.render.d.ts +3 -0
  91. package/build/ts/surfaces/admin/targets/admin.catalog-details.action.render.d.ts +3 -0
  92. package/build/ts/surfaces/admin/targets/admin.catalog-details.block.render.d.ts +3 -0
  93. package/build/ts/surfaces/admin/targets/admin.collection-details.action.render.d.ts +3 -0
  94. package/build/ts/surfaces/admin/targets/admin.collection-details.block.render.d.ts +3 -0
  95. package/build/ts/surfaces/admin/targets/admin.collection-index.action.render.d.ts +3 -0
  96. package/build/ts/surfaces/admin/targets/admin.company-details.action.render.d.ts +3 -0
  97. package/build/ts/surfaces/admin/targets/admin.company-details.block.render.d.ts +3 -0
  98. package/build/ts/surfaces/admin/targets/admin.company-location-details.block.render.d.ts +3 -0
  99. package/build/ts/surfaces/admin/targets/admin.customer-details.action.render.d.ts +3 -0
  100. package/build/ts/surfaces/admin/targets/admin.customer-details.block.render.d.ts +3 -0
  101. package/build/ts/surfaces/admin/targets/admin.customer-index.action.render.d.ts +3 -0
  102. package/build/ts/surfaces/admin/targets/admin.customer-index.selection-action.render.d.ts +3 -0
  103. package/build/ts/surfaces/admin/targets/admin.customer-segment-details.action.render.d.ts +3 -0
  104. package/build/ts/surfaces/admin/targets/admin.discount-details.action.render.d.ts +3 -0
  105. package/build/ts/surfaces/admin/targets/admin.discount-details.function-settings.render.d.ts +3 -0
  106. package/build/ts/surfaces/admin/targets/admin.discount-index.action.render.d.ts +3 -0
  107. package/build/ts/surfaces/admin/targets/admin.discount-index.selection-action.render.d.ts +3 -0
  108. package/build/ts/surfaces/admin/targets/admin.draft-order-details.action.render.d.ts +3 -0
  109. package/build/ts/surfaces/admin/targets/admin.draft-order-details.block.render.d.ts +3 -0
  110. package/build/ts/surfaces/admin/targets/admin.draft-order-index.action.render.d.ts +3 -0
  111. package/build/ts/surfaces/admin/targets/admin.draft-order-index.selection-action.render.d.ts +3 -0
  112. package/build/ts/surfaces/admin/targets/admin.gift-card-details.action.render.d.ts +3 -0
  113. package/build/ts/surfaces/admin/targets/admin.gift-card-details.block.render.d.ts +3 -0
  114. package/build/ts/surfaces/admin/targets/admin.order-details.action.render.d.ts +3 -0
  115. package/build/ts/surfaces/admin/targets/admin.order-details.block.render.d.ts +3 -0
  116. package/build/ts/surfaces/admin/targets/admin.order-details.print-action.render.d.ts +3 -0
  117. package/build/ts/surfaces/admin/targets/admin.order-fulfilled-card.action.render.d.ts +3 -0
  118. package/build/ts/surfaces/admin/targets/admin.order-index.action.render.d.ts +3 -0
  119. package/build/ts/surfaces/admin/targets/admin.order-index.selection-action.render.d.ts +3 -0
  120. package/build/ts/surfaces/admin/targets/admin.order-index.selection-print-action.render.d.ts +3 -0
  121. package/build/ts/surfaces/admin/targets/admin.product-details.action.render.d.ts +3 -0
  122. package/build/ts/surfaces/admin/targets/admin.product-details.block.render.d.ts +3 -0
  123. package/build/ts/surfaces/admin/targets/admin.product-details.configuration.render.d.ts +3 -0
  124. package/build/ts/surfaces/admin/targets/admin.product-details.print-action.render.d.ts +3 -0
  125. package/build/ts/surfaces/admin/targets/admin.product-details.reorder.render.d.ts +3 -0
  126. package/build/ts/surfaces/admin/targets/admin.product-index.action.render.d.ts +3 -0
  127. package/build/ts/surfaces/admin/targets/admin.product-index.selection-action.render.d.ts +3 -0
  128. package/build/ts/surfaces/admin/targets/admin.product-index.selection-print-action.render.d.ts +3 -0
  129. package/build/ts/surfaces/admin/targets/admin.product-purchase-option.action.render.d.ts +3 -0
  130. package/build/ts/surfaces/admin/targets/admin.product-variant-details.action.render.d.ts +3 -0
  131. package/build/ts/surfaces/admin/targets/admin.product-variant-details.block.render.d.ts +3 -0
  132. package/build/ts/surfaces/admin/targets/admin.product-variant-details.configuration.render.d.ts +3 -0
  133. package/build/ts/surfaces/admin/targets/admin.product-variant-purchase-option.action.render.d.ts +3 -0
  134. package/build/ts/surfaces/admin/targets/admin.settings.internal-order-routing-rule.render.d.ts +3 -0
  135. package/build/ts/surfaces/admin/targets/admin.settings.order-routing-rule.render.d.ts +3 -0
  136. package/build/ts/surfaces/admin/targets/admin.settings.validation.render.d.ts +3 -0
  137. package/build/ts/surfaces/checkout/api/address-autocomplete/format-suggestion.d.ts +7 -0
  138. package/build/ts/surfaces/checkout/api/address-autocomplete/format-suggestion.d.ts.map +1 -1
  139. package/build/ts/surfaces/checkout/api/address-autocomplete/shared.d.ts +8 -1
  140. package/build/ts/surfaces/checkout/api/address-autocomplete/shared.d.ts.map +1 -1
  141. package/build/ts/surfaces/checkout/api/address-autocomplete/standard.d.ts +2 -2
  142. package/build/ts/surfaces/checkout/api/address-autocomplete/standard.d.ts.map +1 -1
  143. package/build/ts/surfaces/checkout/api/address-autocomplete/suggest.d.ts +7 -0
  144. package/build/ts/surfaces/checkout/api/address-autocomplete/suggest.d.ts.map +1 -1
  145. package/build/ts/surfaces/checkout/api/checkout/checkout.d.ts +15 -4
  146. package/build/ts/surfaces/checkout/api/checkout/checkout.d.ts.map +1 -1
  147. package/build/ts/surfaces/checkout/api/shared.d.ts +102 -1
  148. package/build/ts/surfaces/checkout/api/shared.d.ts.map +1 -1
  149. package/build/ts/surfaces/checkout/api/standard/standard.d.ts +8 -2
  150. package/build/ts/surfaces/checkout/api/standard/standard.d.ts.map +1 -1
  151. package/build/ts/surfaces/checkout/components/MoneyField.d.ts +3 -1
  152. package/build/ts/surfaces/checkout/components/NumberField.d.ts +3 -1
  153. package/build/ts/surfaces/checkout/components/components-shared.d.ts +1 -1
  154. package/build/ts/surfaces/checkout/preact/country.d.ts +1 -1
  155. package/build/ts/surfaces/checkout/preact/country.d.ts.map +1 -1
  156. package/build/ts/surfaces/checkout.d.ts +2 -2
  157. package/build/ts/surfaces/checkout.d.ts.map +1 -1
  158. package/build/ts/surfaces/customer-account/api/shared.d.ts +26 -7
  159. package/build/ts/surfaces/customer-account/api/shared.d.ts.map +1 -1
  160. package/build/ts/surfaces/customer-account/api.d.ts +1 -1
  161. package/build/ts/surfaces/customer-account/api.d.ts.map +1 -1
  162. package/build/ts/surfaces/customer-account/components/MoneyField.d.ts +3 -1
  163. package/build/ts/surfaces/customer-account/components/NumberField.d.ts +3 -1
  164. package/build/ts/surfaces/customer-account/components/components-shared.d.ts +1 -1
  165. package/build/ts/surfaces/customer-account/preact/authenticated-account.d.ts +3 -3
  166. package/build/ts/surfaces/customer-account/preact/authenticated-account.d.ts.map +1 -1
  167. package/build/ts/surfaces/point-of-sale/api/cart-api/cart-api.d.ts +13 -0
  168. package/build/ts/surfaces/point-of-sale/api/cart-api/cart-api.d.ts.map +1 -1
  169. package/build/ts/surfaces/point-of-sale/api/device-api/device-api.d.ts +4 -0
  170. package/build/ts/surfaces/point-of-sale/api/device-api/device-api.d.ts.map +1 -1
  171. package/build/ts/surfaces/point-of-sale/api/docs.d.ts +7 -0
  172. package/build/ts/surfaces/point-of-sale/api/docs.d.ts.map +1 -1
  173. package/build/ts/surfaces/point-of-sale/api/extension-api/extension-api.d.ts +25 -5
  174. package/build/ts/surfaces/point-of-sale/api/extension-api/extension-api.d.ts.map +1 -1
  175. package/build/ts/surfaces/point-of-sale/api/navigation-api/navigation-api.d.ts +19 -7
  176. package/build/ts/surfaces/point-of-sale/api/navigation-api/navigation-api.d.ts.map +1 -1
  177. package/build/ts/surfaces/point-of-sale/api/resolution-api/resolution-api.d.ts +28 -3
  178. package/build/ts/surfaces/point-of-sale/api/resolution-api/resolution-api.d.ts.map +1 -1
  179. package/build/ts/surfaces/point-of-sale/api/session-api/session-api.d.ts +1 -1
  180. package/build/ts/surfaces/point-of-sale/api.d.ts +2 -2
  181. package/build/ts/surfaces/point-of-sale/api.d.ts.map +1 -1
  182. package/build/ts/surfaces/point-of-sale/components/POSList.d.ts +179 -0
  183. package/build/ts/surfaces/point-of-sale/components/targets/BlockExtensionComponents.d.ts +1 -1
  184. package/build/ts/surfaces/point-of-sale/components/targets/BlockExtensionComponents.d.ts.map +1 -1
  185. package/build/ts/surfaces/point-of-sale/components/targets/ResolutionComponents.d.ts +1 -1
  186. package/build/ts/surfaces/point-of-sale/components/targets/ResolutionComponents.d.ts.map +1 -1
  187. package/build/ts/surfaces/point-of-sale/components/targets/StandardComponents.d.ts +1 -1
  188. package/build/ts/surfaces/point-of-sale/components/targets/StandardComponents.d.ts.map +1 -1
  189. package/build/ts/surfaces/point-of-sale/event/data/BaseData.d.ts +12 -1
  190. package/build/ts/surfaces/point-of-sale/event/data/BaseData.d.ts.map +1 -1
  191. package/build/ts/surfaces/point-of-sale/event/data.d.ts +1 -1
  192. package/build/ts/surfaces/point-of-sale/event/data.d.ts.map +1 -1
  193. package/build/ts/surfaces/point-of-sale/events/scan-event.d.ts +34 -0
  194. package/build/ts/surfaces/point-of-sale/events/scan-event.d.ts.map +1 -0
  195. package/build/ts/surfaces/point-of-sale/events.d.ts +58 -28
  196. package/build/ts/surfaces/point-of-sale/events.d.ts.map +1 -1
  197. package/build/ts/surfaces/point-of-sale/extension-targets.d.ts +4 -4
  198. package/build/ts/surfaces/point-of-sale/extension-targets.d.ts.map +1 -1
  199. package/build/ts/surfaces/point-of-sale/globals.d.ts +0 -2
  200. package/build/ts/surfaces/point-of-sale/globals.d.ts.map +1 -1
  201. package/build/ts/surfaces/point-of-sale/pos-list-template.d.ts +36 -0
  202. package/build/ts/surfaces/point-of-sale/pos-list-template.d.ts.map +1 -0
  203. package/build/ts/surfaces/point-of-sale/targets/pos.cart.line-item-details.action.render.d.ts +1 -0
  204. package/build/ts/surfaces/point-of-sale/targets/pos.cart.validations.resolution.render.d.ts +1 -0
  205. package/build/ts/surfaces/point-of-sale/targets/pos.customer-details.action.render.d.ts +1 -0
  206. package/build/ts/surfaces/point-of-sale/targets/pos.draft-order-details.action.render.d.ts +1 -0
  207. package/build/ts/surfaces/point-of-sale/targets/pos.exchange.post.action.render.d.ts +1 -0
  208. package/build/ts/surfaces/point-of-sale/targets/pos.home.modal.render.d.ts +1 -0
  209. package/build/ts/surfaces/point-of-sale/targets/pos.order-details.action.render.d.ts +1 -0
  210. package/build/ts/surfaces/point-of-sale/targets/pos.payment.validations.resolution.render.d.ts +1 -0
  211. package/build/ts/surfaces/point-of-sale/targets/pos.product-details.action.render.d.ts +1 -0
  212. package/build/ts/surfaces/point-of-sale/targets/pos.purchase.post.action.render.d.ts +1 -0
  213. package/build/ts/surfaces/point-of-sale/targets/pos.register-details.action.render.d.ts +1 -0
  214. package/build/ts/surfaces/point-of-sale/targets/pos.return.post.action.render.d.ts +1 -0
  215. package/build/ts/surfaces/point-of-sale/types/session.d.ts +0 -6
  216. package/build/ts/surfaces/point-of-sale/types/session.d.ts.map +1 -1
  217. package/build/ts/surfaces/point-of-sale.d.ts +1 -0
  218. package/build/ts/surfaces/point-of-sale.d.ts.map +1 -1
  219. package/build/tsconfig.tsbuildinfo +1 -1
  220. package/package.json +2 -1
  221. package/src/shared.ts +22 -21
  222. package/src/surfaces/admin/api/picker/picker.ts +5 -2
  223. package/src/surfaces/admin/components/AdminAction.d.ts +2 -2
  224. package/src/surfaces/admin/components/AdminBlock.d.ts +3 -3
  225. package/src/surfaces/admin/components/AdminPrintAction.d.ts +2 -2
  226. package/src/surfaces/admin/components/AppNav.d.ts +1 -1
  227. package/src/surfaces/admin/components/Avatar.d.ts +1 -1
  228. package/src/surfaces/admin/components/Badge.d.ts +1 -1
  229. package/src/surfaces/admin/components/Banner.d.ts +1 -1
  230. package/src/surfaces/admin/components/Box.d.ts +1 -1
  231. package/src/surfaces/admin/components/Button.d.ts +1 -1
  232. package/src/surfaces/admin/components/ButtonGroup.d.ts +1 -1
  233. package/src/surfaces/admin/components/Checkbox.d.ts +3 -3
  234. package/src/surfaces/admin/components/Chip.d.ts +1 -1
  235. package/src/surfaces/admin/components/Choice.d.ts +3 -3
  236. package/src/surfaces/admin/components/ChoiceList.d.ts +3 -3
  237. package/src/surfaces/admin/components/Clickable.d.ts +1 -1
  238. package/src/surfaces/admin/components/ClickableChip.d.ts +1 -1
  239. package/src/surfaces/admin/components/ColorField.d.ts +1 -1
  240. package/src/surfaces/admin/components/ColorPicker.d.ts +1 -1
  241. package/src/surfaces/admin/components/DateField.d.ts +1 -1
  242. package/src/surfaces/admin/components/DatePicker.d.ts +1 -1
  243. package/src/surfaces/admin/components/Divider.d.ts +1 -1
  244. package/src/surfaces/admin/components/DropZone.d.ts +1 -1
  245. package/src/surfaces/admin/components/EmailField.d.ts +1 -1
  246. package/src/surfaces/admin/components/EmptyState.d.ts +1 -1
  247. package/src/surfaces/admin/components/Form.d.ts +1 -1
  248. package/src/surfaces/admin/components/FunctionSettings.d.ts +1 -1
  249. package/src/surfaces/admin/components/Grid.d.ts +1 -1
  250. package/src/surfaces/admin/components/GridItem.d.ts +1 -1
  251. package/src/surfaces/admin/components/Heading.d.ts +1 -1
  252. package/src/surfaces/admin/components/Icon.d.ts +1 -1
  253. package/src/surfaces/admin/components/Image.d.ts +1 -1
  254. package/src/surfaces/admin/components/Link.d.ts +1 -1
  255. package/src/surfaces/admin/components/ListItem.d.ts +1 -1
  256. package/src/surfaces/admin/components/Menu.d.ts +1 -1
  257. package/src/surfaces/admin/components/Modal.d.ts +1 -1
  258. package/src/surfaces/admin/components/MoneyField.d.ts +1 -1
  259. package/src/surfaces/admin/components/Number.d.ts +1 -1
  260. package/src/surfaces/admin/components/NumberField.d.ts +1 -1
  261. package/src/surfaces/admin/components/Option.d.ts +3 -3
  262. package/src/surfaces/admin/components/OptionGroup.d.ts +1 -1
  263. package/src/surfaces/admin/components/OrderedList.d.ts +1 -1
  264. package/src/surfaces/admin/components/Page.d.ts +1 -1
  265. package/src/surfaces/admin/components/Paragraph.d.ts +1 -1
  266. package/src/surfaces/admin/components/PasswordField.d.ts +1 -1
  267. package/src/surfaces/admin/components/Popover.d.ts +1 -1
  268. package/src/surfaces/admin/components/Progress.d.ts +155 -0
  269. package/src/surfaces/admin/components/QueryContainer.d.ts +1 -1
  270. package/src/surfaces/admin/components/SearchField.d.ts +1 -1
  271. package/src/surfaces/admin/components/Section.d.ts +11 -3
  272. package/src/surfaces/admin/components/Select.d.ts +1 -1
  273. package/src/surfaces/admin/components/Spinner.d.ts +1 -1
  274. package/src/surfaces/admin/components/Stack.d.ts +1 -1
  275. package/src/surfaces/admin/components/StandardComponents.ts +3 -0
  276. package/src/surfaces/admin/components/Switch.d.ts +3 -3
  277. package/src/surfaces/admin/components/Table.d.ts +1 -1
  278. package/src/surfaces/admin/components/TableBody.d.ts +1 -1
  279. package/src/surfaces/admin/components/TableCell.d.ts +1 -1
  280. package/src/surfaces/admin/components/TableHeader.d.ts +1 -1
  281. package/src/surfaces/admin/components/TableHeaderRow.d.ts +1 -1
  282. package/src/surfaces/admin/components/TableRow.d.ts +1 -1
  283. package/src/surfaces/admin/components/Text.d.ts +1 -1
  284. package/src/surfaces/admin/components/TextArea.d.ts +1 -1
  285. package/src/surfaces/admin/components/TextField.d.ts +1 -1
  286. package/src/surfaces/admin/components/Thumbnail.d.ts +1 -1
  287. package/src/surfaces/admin/components/Tooltip.d.ts +1 -1
  288. package/src/surfaces/admin/components/URLField.d.ts +1 -1
  289. package/src/surfaces/admin/components/UnorderedList.d.ts +1 -1
  290. package/src/surfaces/admin/components/shared.d.ts +47 -7
  291. package/src/surfaces/admin/components.d.ts +8216 -2635
  292. package/src/surfaces/checkout/api/address-autocomplete/format-suggestion.ts +9 -0
  293. package/src/surfaces/checkout/api/address-autocomplete/shared.ts +9 -0
  294. package/src/surfaces/checkout/api/address-autocomplete/standard.ts +1 -2
  295. package/src/surfaces/checkout/api/address-autocomplete/suggest.ts +8 -0
  296. package/src/surfaces/checkout/api/checkout/checkout.ts +19 -9
  297. package/src/surfaces/checkout/api/shared.ts +110 -1
  298. package/src/surfaces/checkout/api/standard/standard.ts +11 -1
  299. package/src/surfaces/checkout/components/MoneyField.d.ts +3 -1
  300. package/src/surfaces/checkout/components/NumberField.d.ts +3 -1
  301. package/src/surfaces/checkout/components/components-shared.d.ts +1 -1
  302. package/src/surfaces/checkout/preact/country.ts +1 -1
  303. package/src/surfaces/checkout.ts +3 -0
  304. package/src/surfaces/customer-account/api/shared.ts +25 -7
  305. package/src/surfaces/customer-account/api.ts +1 -0
  306. package/src/surfaces/customer-account/preact/authenticated-account.ts +3 -3
  307. package/src/surfaces/point-of-sale/api/cart-api/cart-api.ts +14 -0
  308. package/src/surfaces/point-of-sale/api/device-api/device-api.ts +4 -0
  309. package/src/surfaces/point-of-sale/api/docs.ts +8 -0
  310. package/src/surfaces/point-of-sale/api/extension-api/extension-api.ts +25 -5
  311. package/src/surfaces/point-of-sale/api/navigation-api/navigation-api.ts +22 -7
  312. package/src/surfaces/point-of-sale/api/resolution-api/resolution-api.ts +30 -3
  313. package/src/surfaces/point-of-sale/api/session-api/session-api.ts +1 -1
  314. package/src/surfaces/point-of-sale/api.ts +2 -0
  315. package/src/surfaces/point-of-sale/components/POSList.d.ts +179 -0
  316. package/src/surfaces/point-of-sale/components/targets/BlockExtensionComponents.ts +0 -4
  317. package/src/surfaces/point-of-sale/components/targets/ResolutionComponents.ts +1 -1
  318. package/src/surfaces/point-of-sale/components/targets/StandardComponents.ts +1 -3
  319. package/src/surfaces/point-of-sale/components.d.ts +194 -0
  320. package/src/surfaces/point-of-sale/event/data/BaseData.ts +13 -1
  321. package/src/surfaces/point-of-sale/event/data.ts +1 -1
  322. package/src/surfaces/point-of-sale/events/scan-event.ts +34 -0
  323. package/src/surfaces/point-of-sale/events.ts +58 -27
  324. package/src/surfaces/point-of-sale/extension-targets.ts +4 -4
  325. package/src/surfaces/point-of-sale/globals.ts +0 -2
  326. package/src/surfaces/point-of-sale/pos-list-template.ts +351 -0
  327. package/src/surfaces/point-of-sale/tests/pos-list-template.test.ts +306 -0
  328. package/src/surfaces/point-of-sale/types/session.ts +0 -7
  329. package/src/surfaces/point-of-sale.ts +1 -0
@@ -1,3 +1,5 @@
1
+ import type {AcceptedAddressInputField} from '../../../../shared';
2
+
1
3
  import type {
2
4
  AddressAutocompleteSuggestion,
3
5
  AutocompleteAddress,
@@ -15,6 +17,13 @@ export interface AddressAutocompleteFormatSuggestionApi {
15
17
 
16
18
  interface Target {
17
19
  selectedSuggestion: AddressAutocompleteSuggestion;
20
+
21
+ /**
22
+ * The inputs the address form being populated accepts. Use it to decide
23
+ * which fields to fill; the output isn't validated against it. `undefined`
24
+ * until the address format loads.
25
+ */
26
+ acceptedAddressInputFields?: AcceptedAddressInputField[];
18
27
  }
19
28
 
20
29
  /** @publicDocs */
@@ -1,4 +1,5 @@
1
1
  import type {MailingAddress} from '../../../checkout';
2
+ import type {AddressLineComponents} from '../shared';
2
3
 
3
4
  /**
4
5
  * An address object used to auto-populate the address form fields.
@@ -11,12 +12,20 @@ export interface AutocompleteAddress
11
12
  MailingAddress,
12
13
  | 'address1'
13
14
  | 'address2'
15
+ | 'addressCode'
14
16
  | 'city'
15
17
  | 'company'
16
18
  | 'countryCode'
17
19
  | 'provinceCode'
18
20
  | 'zip'
19
21
  > {
22
+ /**
23
+ * Components of `address1`/`address2`. Always send the flat lines as well: a
24
+ * form without component inputs ignores the components, so a components-only
25
+ * suggestion clears both lines in that form.
26
+ */
27
+ addressLineComponents?: AddressLineComponents;
28
+
20
29
  /**
21
30
  * The latitude coordinates of the buyer.
22
31
  *
@@ -14,10 +14,9 @@ import type {
14
14
  Storage,
15
15
  Version,
16
16
  } from '../standard/standard';
17
- import type {Attribute, MailingAddress} from '../shared';
17
+ import type {Attribute, Country, MailingAddress} from '../shared';
18
18
  import type {
19
19
  ApiVersion,
20
- Country,
21
20
  GraphQLError,
22
21
  StorefrontApiVersion,
23
22
  Timezone,
@@ -1,3 +1,4 @@
1
+ import type {AcceptedAddressInputField} from '../../../../shared';
1
2
  import type {CountryCode} from '../../../checkout';
2
3
 
3
4
  import type {AddressAutocompleteSuggestion} from './shared';
@@ -50,6 +51,13 @@ interface Target {
50
51
  * @example 'CA' for Canada.
51
52
  */
52
53
  selectedCountryCode?: CountryCode;
54
+
55
+ /**
56
+ * The inputs the address form accepts for `selectedCountryCode`. Use it to
57
+ * decide which fields to suggest; suggestions aren't validated against it.
58
+ * `undefined` until the address format loads.
59
+ */
60
+ acceptedAddressInputFields?: AcceptedAddressInputField[];
53
61
  }
54
62
 
55
63
  /** @publicDocs */
@@ -1,9 +1,5 @@
1
- import type {
2
- Attribute,
3
- SellingPlan,
4
- MailingAddress,
5
- ShippingAddress,
6
- } from '../shared';
1
+ import type {AcceptedAddressInputField} from '../../../../shared';
2
+ import type {Attribute, SellingPlan, ShippingAddress} from '../shared';
7
3
 
8
4
  /**
9
5
  * Clears the buyer's note from the checkout. Pass this to `applyNoteChange()` to remove any existing note.
@@ -578,7 +574,11 @@ export interface ShippingAddressUpdateChange {
578
574
  /**
579
575
  * Fields to update in the shipping address. You only need to provide
580
576
  * values for the fields you want to update. Any fields you don't list
581
- * keep their current values.
577
+ * keep their current values. Address line components are written nested
578
+ * under `addressLineComponents`, the same shape they're read.
579
+ *
580
+ * @example
581
+ * {countryCode: 'BR', addressLineComponents: {streetName: 'Avenida Paulista', streetNumber: '1578'}}
582
582
  */
583
583
  address: Partial<ShippingAddress>;
584
584
  }
@@ -606,15 +606,25 @@ export interface ShippingAddressChangeResultSuccess {
606
606
  errors: null;
607
607
  }
608
608
 
609
+ /**
610
+ * The input a shipping address change failed on: an accepted input, `'name'`,
611
+ * or `'addressLineComponents'` when the components object itself is invalid.
612
+ * @publicDocs
613
+ */
614
+ export type ShippingAddressChangeErrorField =
615
+ | AcceptedAddressInputField
616
+ | 'addressLineComponents'
617
+ | 'name';
618
+
609
619
  /**
610
620
  * An error corresponding to a particular field from a given change. Use the `field` property to determine which address field caused the error.
611
621
  * @publicDocs
612
622
  */
613
623
  export interface ShippingAddressChangeFieldError {
614
624
  /**
615
- * The `MailingAddress` field that caused the error, such as `'countryCode'` or `'zip'`. The value is `undefined` if the error isn't specific to a single field.
625
+ * The address input that caused the error, such as `'countryCode'` or `'zip'`, or an address line component such as `'streetName'`. The value is `undefined` if the error isn't specific to a single input.
616
626
  */
617
- field?: keyof MailingAddress;
627
+ field?: ShippingAddressChangeErrorField;
618
628
 
619
629
  /**
620
630
  * A message that explains the error. This message is useful for debugging.
@@ -1,4 +1,25 @@
1
- import type {CountryCode} from '../../../shared';
1
+ import type {AcceptedAddressInputField, CountryCode} from '../../../shared';
2
+
3
+ /**
4
+ * A buyer's country, identified by its ISO country code.
5
+ * @publicDocs
6
+ */
7
+ export interface Country {
8
+ /**
9
+ * The two-letter country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
10
+ *
11
+ * @example 'CA' for Canada, 'US' for United States.
12
+ */
13
+ isoCode: CountryCode;
14
+ /**
15
+ * The address inputs this country's format carries, as guidance for what to
16
+ * write: `applyShippingAddressChange` does not validate a change against
17
+ * this list. A country that carries a line component lists the flat line
18
+ * too, so either can be written. Listed inputs may be optional or hidden
19
+ * from the buyer. `undefined` until the address format loads.
20
+ */
21
+ acceptedAddressInputFields?: AcceptedAddressInputField[];
22
+ }
2
23
 
3
24
  /** @publicDocs */
4
25
  export interface ValidationError {
@@ -67,6 +88,59 @@ export interface Attribute {
67
88
  value: string;
68
89
  }
69
90
 
91
+ /**
92
+ * Components of the `address1`/`address2` lines on a `MailingAddress`, for
93
+ * countries whose address format accepts them.
94
+ * @publicDocs
95
+ */
96
+ export interface AddressLineComponents {
97
+ /**
98
+ * The street name, without the number.
99
+ *
100
+ * {% 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).
101
+ *
102
+ * @example 'Avenida Paulista'
103
+ */
104
+ streetName?: string;
105
+
106
+ /**
107
+ * The house or building number.
108
+ *
109
+ * {% 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).
110
+ *
111
+ * @example '1578'
112
+ */
113
+ streetNumber?: string;
114
+
115
+ /**
116
+ * Additional address information (e.g. apartment, suite, or unit).
117
+ *
118
+ * {% 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).
119
+ *
120
+ * @example 'Apto 42'
121
+ */
122
+ additionalInformation?: string;
123
+
124
+ /**
125
+ * A regional or city subdivision (e.g. county, metropolitan region,
126
+ * neighborhood, ward).
127
+ *
128
+ * {% 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).
129
+ *
130
+ * @example 'Bela Vista'
131
+ */
132
+ district?: string;
133
+
134
+ /**
135
+ * A finer subdivision within `district`, when the country uses both.
136
+ *
137
+ * {% 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).
138
+ *
139
+ * @example 'Kelurahan Menteng'
140
+ */
141
+ subdistrict?: string;
142
+ }
143
+
70
144
  /** @publicDocs */
71
145
  export interface MailingAddress {
72
146
  /**
@@ -134,6 +208,41 @@ export interface MailingAddress {
134
208
  */
135
209
  address2?: string;
136
210
 
211
+ /**
212
+ * The components of `address1`/`address2`. `undefined` when the country's
213
+ * address layout doesn't store components or none have been entered. The
214
+ * flat lines are published alongside them.
215
+ *
216
+ * Writable through `applyShippingAddressChange`, which does not validate a
217
+ * change against `Country.acceptedAddressInputFields`. Sent alongside a flat
218
+ * line, the components win and recompose it. Where a country accepts
219
+ * components without storing them, the write composes the flat line and only
220
+ * the line is published.
221
+ *
222
+ * {% 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).
223
+ *
224
+ * @example
225
+ * {
226
+ * streetName: 'Avenida Paulista',
227
+ * streetNumber: '1578',
228
+ * additionalInformation: 'Apto 42',
229
+ * district: 'Bela Vista'
230
+ * }
231
+ */
232
+ addressLineComponents?: AddressLineComponents;
233
+
234
+ /**
235
+ * A postal or national address code that identifies the address
236
+ * independently of its street lines, used by countries such as Saudi
237
+ * Arabia. The value is `undefined` if the country doesn't use one or it
238
+ * hasn't been provided.
239
+ *
240
+ * {% 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).
241
+ *
242
+ * @example 'RRRR1234'
243
+ */
244
+ addressCode?: string;
245
+
137
246
  /**
138
247
  * The city, town, or village of the address. The value is `undefined` if
139
248
  * the buyer hasn't entered a city yet.
@@ -2,15 +2,16 @@ import type {
2
2
  ValidationError,
3
3
  SellingPlan,
4
4
  Attribute,
5
+ Country,
5
6
  MailingAddress,
6
7
  ShippingAddress,
7
8
  } from '../shared';
8
9
  import type {ExtensionTarget} from '../../extension-targets';
9
10
  import type {
11
+ AcceptedAddressInputField,
10
12
  ApiVersion,
11
13
  Capability,
12
14
  CurrencyCode,
13
- Country,
14
15
  CountryCode,
15
16
  Timezone,
16
17
  GraphQLError,
@@ -433,6 +434,15 @@ export interface Localization {
433
434
  */
434
435
  country: SubscribableSignalLike<Country | undefined>;
435
436
 
437
+ /**
438
+ * The inputs `applyShippingAddressChange` accepts for `countryCode`. Resolves
439
+ * to an empty array if shipping restrictions exclude the country. Rejects if
440
+ * the address format cannot be loaded.
441
+ */
442
+ acceptedAddressInputFieldsForCountry(
443
+ countryCode: CountryCode,
444
+ ): Promise<AcceptedAddressInputField[]>;
445
+
436
446
  /**
437
447
  * The [market](/docs/apps/build/markets) context of the checkout,
438
448
  * carried over from the cart context. Markets group countries and
@@ -46,7 +46,8 @@ export interface MoneyFieldElementEvents {
46
46
  */
47
47
  blur?: CallbackEventListener<typeof tagName>;
48
48
  /**
49
- * A callback fired when the money field value changes.
49
+ * A callback fired when the money field value is committed on blur or after pressing Enter.
50
+ * Also fired on each step when using the Up Arrow and Down Arrow keys.
50
51
  *
51
52
  * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).
52
53
  */
@@ -59,6 +60,7 @@ export interface MoneyFieldElementEvents {
59
60
  focus?: CallbackEventListener<typeof tagName>;
60
61
  /**
61
62
  * A callback fired when the user inputs data into the money field.
63
+ * Also fired on each step when using the Up Arrow and Down Arrow keys.
62
64
  *
63
65
  * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).
64
66
  */
@@ -88,7 +88,8 @@ export interface NumberFieldElementEvents {
88
88
  */
89
89
  blur?: CallbackEventListener<typeof tagName>;
90
90
  /**
91
- * A callback fired when the number field value changes.
91
+ * A callback fired when the number field value is committed on blur or after pressing Enter.
92
+ * Also fired on each step when using the increment/decrement controls or the Up Arrow and Down Arrow keys.
92
93
  *
93
94
  * Learn more about the [change event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event).
94
95
  */
@@ -101,6 +102,7 @@ export interface NumberFieldElementEvents {
101
102
  focus?: CallbackEventListener<typeof tagName>;
102
103
  /**
103
104
  * A callback fired when the user inputs data into the number field.
105
+ * Also fired on each step when using the increment/decrement controls or the Up Arrow and Down Arrow keys.
104
106
  *
105
107
  * Learn more about the [input event](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event).
106
108
  */
@@ -1384,7 +1384,7 @@ export interface ButtonBehaviorProps extends InteractionProps, FocusEventProps {
1384
1384
  }
1385
1385
  export interface LinkBehaviorProps extends InteractionProps, FocusEventProps {
1386
1386
  /**
1387
- * The URL to navigate to when clicked. The `click` event fires first, then navigation occurs. If `commandFor` is also set, the command executes instead of navigation.
1387
+ * The URL to navigate to when clicked, including `mailto:` and `tel:` URLs. The `click` event fires first, then navigation occurs. If `commandFor` is also set, the command executes instead of navigation.
1388
1388
  */
1389
1389
  href?: string;
1390
1390
  /**
@@ -1,5 +1,5 @@
1
1
  import type {RenderExtensionTarget} from '../extension-targets';
2
- import type {Country} from '../../../shared';
2
+ import type {Country} from '../api/shared';
3
3
 
4
4
  import {useApi} from './api';
5
5
  import {useSubscription} from './subscription';
@@ -79,7 +79,9 @@ export type {
79
79
  } from './checkout/api/standard/standard';
80
80
 
81
81
  export type {
82
+ AddressLineComponents,
82
83
  Attribute,
84
+ Country,
83
85
  SellingPlan,
84
86
  ValidationError,
85
87
  MailingAddress,
@@ -134,6 +136,7 @@ export type {
134
136
  NoteChangeResultError,
135
137
  ShippingAddressChange,
136
138
  ShippingAddressChangeFieldError,
139
+ ShippingAddressChangeErrorField,
137
140
  ShippingAddressChangeResult,
138
141
  ShippingAddressChangeResultError,
139
142
  ShippingAddressChangeResultSuccess,
@@ -5,7 +5,6 @@ import type {
5
5
  Capability,
6
6
  CurrencyCode,
7
7
  Timezone,
8
- Country,
9
8
  CountryCode,
10
9
  GraphQLError,
11
10
  StorefrontApiVersion,
@@ -18,13 +17,24 @@ export {
18
17
  Capability,
19
18
  CurrencyCode,
20
19
  Timezone,
21
- Country,
22
20
  CountryCode,
23
21
  GraphQLError,
24
22
  StorefrontApiVersion,
25
23
  SubscribableSignalLike,
26
24
  };
27
25
 
26
+ /**
27
+ * A buyer's country, identified by its ISO country code.
28
+ */
29
+ export interface Country {
30
+ /**
31
+ * The two-letter country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
32
+ *
33
+ * @example 'CA' for Canada, 'US' for United States.
34
+ */
35
+ isoCode: CountryCode;
36
+ }
37
+
28
38
  /**
29
39
  * Persists key-value data across customer sessions for a specific extension target. Use storage to save preferences, dismiss states, or cached data that should survive page reloads without requiring a backend call.
30
40
  *
@@ -347,24 +357,32 @@ export interface AuthenticatedAccount {
347
357
  /**
348
358
  * The authenticated customer's account information. The value is `undefined` if the customer isn't logged in.
349
359
  */
350
- customer: SubscribableSignalLike<Customer | undefined>;
360
+ customer: SubscribableSignalLike<AuthenticatedAccountCustomer | undefined>;
351
361
  }
352
362
 
353
363
  /**
354
- * The authenticated customer's account, identified by a globally-unique ID.
364
+ * The authenticated customer's account, identified by a numeric customer ID represented as a string.
355
365
  *
356
366
  * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
357
- * @publicDocs
367
+ * @deprecated Use `AuthenticatedAccountCustomer` instead.
358
368
  */
359
369
  export interface Customer {
360
370
  /**
361
- * A globally-unique identifier for the customer in the format `gid://shopify/Customer/<id>`.
371
+ * The customer's numeric ID represented as a string.
362
372
  *
363
- * @example 'gid://shopify/Customer/123'
373
+ * @example '123'
364
374
  */
365
375
  id: string;
366
376
  }
367
377
 
378
+ /**
379
+ * The authenticated customer's account, identified by a numeric customer ID represented as a string.
380
+ *
381
+ * {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
382
+ * @publicDocs
383
+ */
384
+ export interface AuthenticatedAccountCustomer extends Customer {}
385
+
368
386
  /**
369
387
  * @publicDocs
370
388
  */
@@ -61,6 +61,7 @@ export type {
61
61
  Language,
62
62
  Storage,
63
63
  AuthenticatedAccount,
64
+ AuthenticatedAccountCustomer,
64
65
  PurchasingCompany,
65
66
  Company,
66
67
  Customer,
@@ -1,17 +1,17 @@
1
1
  import type {RenderExtensionTarget} from '../extension-targets';
2
- import type {Customer, PurchasingCompany} from '../api';
2
+ import type {AuthenticatedAccountCustomer, PurchasingCompany} from '../api';
3
3
 
4
4
  import {useApi} from './api';
5
5
  import {useSubscription} from './subscription';
6
6
 
7
7
  /**
8
- * Returns the current authenticated `Customer`.
8
+ * Returns the current `AuthenticatedAccountCustomer`.
9
9
  *
10
10
  * The value is `undefined` if the customer isn't authenticated.
11
11
  */
12
12
  export function useAuthenticatedAccountCustomer<
13
13
  Target extends RenderExtensionTarget,
14
- >(): Customer | undefined {
14
+ >(): AuthenticatedAccountCustomer | undefined {
15
15
  const account = useApi<Target>().authenticatedAccount;
16
16
 
17
17
  return useSubscription(account.customer);
@@ -138,6 +138,20 @@ export interface MutableCartApiContent {
138
138
  options?: AddLineItemOptions,
139
139
  ): Promise<string>;
140
140
 
141
+ /**
142
+ * Set the quantity of an existing line item identified by its `UUID`, preserving the line item's properties, discounts, and selling plans. This is equivalent to a merchant adjusting the quantity on the native cart line.
143
+ *
144
+ * If POS has split the line into multiple allocations that share the same `UUID` (for example, lines split across delivery methods), the target line is ambiguous and the call throws instead of guessing.
145
+ *
146
+ * Only available on API version `2026-10` and later.
147
+ *
148
+ * @param uuid the UUID of the line item to update
149
+ * @param quantity the new absolute quantity; must be an integer of 1 or greater. To remove a line item, use `removeLineItem` instead.
150
+ * @returns A promise that resolves after the cart state reflects the change.
151
+ * @throws {Error} if the line item is not found, the `UUID` matches multiple split-line allocations, the quantity is invalid, the cart is not editable because it is a return or exchange, or the POS app version does not support this method.
152
+ */
153
+ updateLineItemQuantity(uuid: string, quantity: number): Promise<void>;
154
+
141
155
  /**
142
156
  * Remove a specific line item from the cart using its `UUID`. The line item will be completely removed from the cart along with any associated discounts, properties, or selling plans.
143
157
  *
@@ -11,6 +11,10 @@ export interface DeviceApiContent {
11
11
  * A short, unique identifier for the device, assigned by Shopify.
12
12
  */
13
13
  registerName: string;
14
+ /**
15
+ * The Shopify-assigned fiscal register identifier for the device, such as Sweden's manufacturing number (tillverkningsnummer).
16
+ */
17
+ fiscalDeviceIdentifier?: string;
14
18
  /**
15
19
  * Retrieves the unique string identifier for the device. Returns a promise that resolves to the device ID. Use for device-specific data storage, analytics tracking, or implementing device-based permissions and configurations.
16
20
  * Note: While Shopify POS attempts to maintain a stable identifier, it is not guaranteed to be permanent and may change.
@@ -9,3 +9,11 @@ export interface Docs_AppBackgroundEventMethods
9
9
  BackgroundShopifyGlobal,
10
10
  'addEventListener' | 'removeEventListener'
11
11
  > {}
12
+
13
+ /**
14
+ * Validation interceptor method available on the `shopify` global for app
15
+ * background extensions.
16
+ * @publicDocs
17
+ */
18
+ export interface Docs_AppBackgroundInterceptMethods
19
+ extends Pick<BackgroundShopifyGlobal, 'intercept'> {}
@@ -7,15 +7,16 @@ import type {ApiVersion} from '../../../../shared';
7
7
  * multiple targets. Access these properties through `shopify.extension`.
8
8
  *
9
9
  * @example
10
- * <caption>Read the API version and active target</caption>
11
- * <description>Display the configured API version and the active extension target. Use `shopify.extension.apiVersion` for version-aware logic and `shopify.extension.target` when a single module handles multiple targets.</description>
10
+ * <caption>Read the API version, published version, and active target</caption>
11
+ * <description>Display the configured API version, the published app version this build was deployed in, and the active extension target. Use `shopify.extension.apiVersion` for version-aware logic, `shopify.extension.version` to report which build a merchant is running, and `shopify.extension.target` when a single module handles multiple targets.</description>
12
12
  * ```jsx
13
13
  * const Extension = () => {
14
- * const {apiVersion, target} = shopify.extension;
14
+ * const {apiVersion, version, target} = shopify.extension;
15
15
  * return (
16
16
  * <s-page heading="Extension Info">
17
17
  * <s-stack direction="block">
18
18
  * <s-text>API Version: {apiVersion}</s-text>
19
+ * <s-text>Version: {version ?? 'development build'}</s-text>
19
20
  * <s-text>Target: {target}</s-text>
20
21
  * </s-stack>
21
22
  * </s-page>
@@ -38,12 +39,31 @@ export interface ExtensionApiContent<T> {
38
39
  * @example 'pos.home.tile.render', 'pos.home.modal.render'
39
40
  */
40
41
  target: T;
42
+ /**
43
+ * The name of the published app version that this extension was deployed in.
44
+ * This is the same name shown on the Versions page of your dev dashboard, and
45
+ * the name you choose when you run `shopify app deploy`.
46
+ *
47
+ * Use it to tell which build of your extension a merchant is running. POS
48
+ * caches extension bundles and runs them offline, so a device can stay on an
49
+ * older version for some time after you deploy a new one.
50
+ *
51
+ * This is an opaque name, not a version number. Compare it for equality; don't
52
+ * sort it or read parts out of it.
53
+ *
54
+ * `undefined` when the extension runs from a local development server, because
55
+ * a build that hasn't been deployed has no published version.
56
+ *
57
+ * @example 'restaurant-table-manager-2', 'casa-loyalty-493'
58
+ */
59
+ version?: string;
41
60
  }
42
61
 
43
62
  /**
44
63
  * The `ExtensionApi` object provides metadata about the currently running
45
- * extension, including the configured API version and the active extension
46
- * target. Access these properties through `shopify.extension`.
64
+ * extension, including the configured API version, the published app version it
65
+ * was deployed in, and the active extension target. Access these properties
66
+ * through `shopify.extension`.
47
67
  * @publicDocs
48
68
  */
49
69
  export interface ExtensionApi<T> {
@@ -45,7 +45,7 @@ export interface NavigationCurrentEntryChangeEvent {
45
45
  */
46
46
  export interface Navigation {
47
47
  /**
48
- * Navigates to a specific URL, updating any provided state in the history entries list. Returns a promise that resolves when navigation is complete. Use for programmatic navigation between screens, implementing custom navigation controls, or deep-linking to specific modal states.
48
+ * Navigates to a specific URL, updating any provided state in the history entries list. The promise does not wait for the native screen transition to finish; listen for `navigatesuccess` on the screen that becomes active to know when it has finished appearing. Use for programmatic navigation between screens, implementing custom navigation controls, or deep-linking to specific modal states.
49
49
  */
50
50
  navigate: (url: string, options?: NavigationNavigateOptions) => Promise<void>;
51
51
  /**
@@ -57,23 +57,38 @@ export interface Navigation {
57
57
  */
58
58
  back(): void;
59
59
  /**
60
- * Registers an event listener for navigation events. The `currententrychange` event fires when the `currentEntry` property changes, such as when the user navigates to a different screen within the extension modal. Use to track navigation changes, update UI state based on the current location, or implement analytics for navigation patterns.
61
- * @param type - The event type to listen for. Currently only `'currententrychange'` is supported.
62
- * @param cb - The callback function invoked when the event fires. Receives a `NavigationCurrentEntryChangeEvent` containing the previous entry that was navigated away from.
60
+ * Registers a listener for `currententrychange`, which fires when the active history entry changes. This can happen before the screen finishes appearing.
61
+ * @param type - The event type to listen for.
62
+ * @param cb - Receives the previous history entry in `event.from`.
63
63
  */
64
64
  addEventListener(
65
65
  type: 'currententrychange',
66
66
  cb: (event: NavigationCurrentEntryChangeEvent) => void,
67
67
  ): void;
68
68
  /**
69
- * Removes a previously registered event listener. The callback reference must match the one passed to `addEventListener`. Use to clean up event listeners when they are no longer needed, such as when a component unmounts or navigation tracking should be disabled.
70
- * @param type - The event type to remove the listener for. Currently only `'currententrychange'` is supported.
71
- * @param cb - The callback function to remove. Must be the same function reference that was passed to `addEventListener`.
69
+ * Registers a listener for `navigatesuccess`, which fires after the extension screen becomes active and finishes its native transition. The callback receives a standard `Event`, not a history entry. When navigating back, register the listener on the screen that will reappear: the departing screen is removed and cannot receive the completion event. Older POS builds without support for this event do not emit it.
70
+ * @param type - The event type to listen for.
71
+ * @param cb - Called after the screen finishes appearing.
72
+ */
73
+ addEventListener(type: 'navigatesuccess', cb: (event: Event) => void): void;
74
+ /**
75
+ * Removes a `currententrychange` listener. Pass the same callback reference used with `addEventListener`.
76
+ * @param type - The event type to stop listening for.
77
+ * @param cb - The previously registered callback.
72
78
  */
73
79
  removeEventListener(
74
80
  type: 'currententrychange',
75
81
  cb: (event: NavigationCurrentEntryChangeEvent) => void,
76
82
  ): void;
83
+ /**
84
+ * Removes a `navigatesuccess` listener. Pass the same callback reference used with `addEventListener`.
85
+ * @param type - The event type to stop listening for.
86
+ * @param cb - The previously registered callback.
87
+ */
88
+ removeEventListener(
89
+ type: 'navigatesuccess',
90
+ cb: (event: Event) => void,
91
+ ): void;
77
92
  }
78
93
 
79
94
  /**