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

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 (339) 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/redeemable/redeemable.d.ts +1 -1
  148. package/build/ts/surfaces/checkout/api/shared.d.ts +108 -1
  149. package/build/ts/surfaces/checkout/api/shared.d.ts.map +1 -1
  150. package/build/ts/surfaces/checkout/api/standard/standard.d.ts +8 -4
  151. package/build/ts/surfaces/checkout/api/standard/standard.d.ts.map +1 -1
  152. package/build/ts/surfaces/checkout/components/MoneyField.d.ts +3 -1
  153. package/build/ts/surfaces/checkout/components/NumberField.d.ts +3 -1
  154. package/build/ts/surfaces/checkout/components/components-shared.d.ts +1 -1
  155. package/build/ts/surfaces/checkout/preact/country.d.ts +1 -1
  156. package/build/ts/surfaces/checkout/preact/country.d.ts.map +1 -1
  157. package/build/ts/surfaces/checkout.d.ts +2 -2
  158. package/build/ts/surfaces/checkout.d.ts.map +1 -1
  159. package/build/ts/surfaces/customer-account/api/order-status/order-status.d.ts +1 -1
  160. package/build/ts/surfaces/customer-account/api/shared.d.ts +26 -7
  161. package/build/ts/surfaces/customer-account/api/shared.d.ts.map +1 -1
  162. package/build/ts/surfaces/customer-account/api.d.ts +1 -1
  163. package/build/ts/surfaces/customer-account/api.d.ts.map +1 -1
  164. package/build/ts/surfaces/customer-account/components/MoneyField.d.ts +3 -1
  165. package/build/ts/surfaces/customer-account/components/NumberField.d.ts +3 -1
  166. package/build/ts/surfaces/customer-account/components/components-shared.d.ts +1 -1
  167. package/build/ts/surfaces/customer-account/preact/authenticated-account.d.ts +3 -3
  168. package/build/ts/surfaces/customer-account/preact/authenticated-account.d.ts.map +1 -1
  169. package/build/ts/surfaces/point-of-sale/api/cart-api/cart-api.d.ts +13 -0
  170. package/build/ts/surfaces/point-of-sale/api/cart-api/cart-api.d.ts.map +1 -1
  171. package/build/ts/surfaces/point-of-sale/api/device-api/device-api.d.ts +4 -0
  172. package/build/ts/surfaces/point-of-sale/api/device-api/device-api.d.ts.map +1 -1
  173. package/build/ts/surfaces/point-of-sale/api/docs.d.ts +7 -0
  174. package/build/ts/surfaces/point-of-sale/api/docs.d.ts.map +1 -1
  175. package/build/ts/surfaces/point-of-sale/api/extension-api/extension-api.d.ts +25 -5
  176. package/build/ts/surfaces/point-of-sale/api/extension-api/extension-api.d.ts.map +1 -1
  177. package/build/ts/surfaces/point-of-sale/api/navigation-api/navigation-api.d.ts +19 -7
  178. package/build/ts/surfaces/point-of-sale/api/navigation-api/navigation-api.d.ts.map +1 -1
  179. package/build/ts/surfaces/point-of-sale/api/resolution-api/resolution-api.d.ts +28 -3
  180. package/build/ts/surfaces/point-of-sale/api/resolution-api/resolution-api.d.ts.map +1 -1
  181. package/build/ts/surfaces/point-of-sale/api/session-api/session-api.d.ts +1 -1
  182. package/build/ts/surfaces/point-of-sale/api.d.ts +2 -2
  183. package/build/ts/surfaces/point-of-sale/api.d.ts.map +1 -1
  184. package/build/ts/surfaces/point-of-sale/components/POSList.d.ts +179 -0
  185. package/build/ts/surfaces/point-of-sale/components/targets/BlockExtensionComponents.d.ts +1 -1
  186. package/build/ts/surfaces/point-of-sale/components/targets/BlockExtensionComponents.d.ts.map +1 -1
  187. package/build/ts/surfaces/point-of-sale/components/targets/ResolutionComponents.d.ts +1 -1
  188. package/build/ts/surfaces/point-of-sale/components/targets/ResolutionComponents.d.ts.map +1 -1
  189. package/build/ts/surfaces/point-of-sale/components/targets/StandardComponents.d.ts +1 -1
  190. package/build/ts/surfaces/point-of-sale/components/targets/StandardComponents.d.ts.map +1 -1
  191. package/build/ts/surfaces/point-of-sale/event/data/BaseData.d.ts +12 -1
  192. package/build/ts/surfaces/point-of-sale/event/data/BaseData.d.ts.map +1 -1
  193. package/build/ts/surfaces/point-of-sale/event/data.d.ts +1 -1
  194. package/build/ts/surfaces/point-of-sale/event/data.d.ts.map +1 -1
  195. package/build/ts/surfaces/point-of-sale/events/scan-event.d.ts +34 -0
  196. package/build/ts/surfaces/point-of-sale/events/scan-event.d.ts.map +1 -0
  197. package/build/ts/surfaces/point-of-sale/events/transaction-complete-event.d.ts +8 -0
  198. package/build/ts/surfaces/point-of-sale/events/transaction-complete-event.d.ts.map +1 -1
  199. package/build/ts/surfaces/point-of-sale/events.d.ts +58 -28
  200. package/build/ts/surfaces/point-of-sale/events.d.ts.map +1 -1
  201. package/build/ts/surfaces/point-of-sale/extension-targets.d.ts +4 -4
  202. package/build/ts/surfaces/point-of-sale/extension-targets.d.ts.map +1 -1
  203. package/build/ts/surfaces/point-of-sale/globals.d.ts +0 -2
  204. package/build/ts/surfaces/point-of-sale/globals.d.ts.map +1 -1
  205. package/build/ts/surfaces/point-of-sale/pos-list-template.d.ts +36 -0
  206. package/build/ts/surfaces/point-of-sale/pos-list-template.d.ts.map +1 -0
  207. package/build/ts/surfaces/point-of-sale/targets/pos.cart.line-item-details.action.render.d.ts +1 -0
  208. package/build/ts/surfaces/point-of-sale/targets/pos.cart.validations.resolution.render.d.ts +1 -0
  209. package/build/ts/surfaces/point-of-sale/targets/pos.customer-details.action.render.d.ts +1 -0
  210. package/build/ts/surfaces/point-of-sale/targets/pos.draft-order-details.action.render.d.ts +1 -0
  211. package/build/ts/surfaces/point-of-sale/targets/pos.exchange.post.action.render.d.ts +1 -0
  212. package/build/ts/surfaces/point-of-sale/targets/pos.home.modal.render.d.ts +1 -0
  213. package/build/ts/surfaces/point-of-sale/targets/pos.order-details.action.render.d.ts +1 -0
  214. package/build/ts/surfaces/point-of-sale/targets/pos.payment.validations.resolution.render.d.ts +1 -0
  215. package/build/ts/surfaces/point-of-sale/targets/pos.product-details.action.render.d.ts +1 -0
  216. package/build/ts/surfaces/point-of-sale/targets/pos.purchase.post.action.render.d.ts +1 -0
  217. package/build/ts/surfaces/point-of-sale/targets/pos.register-details.action.render.d.ts +1 -0
  218. package/build/ts/surfaces/point-of-sale/targets/pos.return.post.action.render.d.ts +1 -0
  219. package/build/ts/surfaces/point-of-sale/types/base-transaction-complete.d.ts +8 -0
  220. package/build/ts/surfaces/point-of-sale/types/base-transaction-complete.d.ts.map +1 -1
  221. package/build/ts/surfaces/point-of-sale/types/session.d.ts +0 -6
  222. package/build/ts/surfaces/point-of-sale/types/session.d.ts.map +1 -1
  223. package/build/ts/surfaces/point-of-sale.d.ts +1 -0
  224. package/build/ts/surfaces/point-of-sale.d.ts.map +1 -1
  225. package/build/tsconfig.tsbuildinfo +1 -1
  226. package/package.json +2 -1
  227. package/src/shared.ts +22 -21
  228. package/src/surfaces/admin/api/picker/picker.ts +5 -2
  229. package/src/surfaces/admin/components/AdminAction.d.ts +2 -2
  230. package/src/surfaces/admin/components/AdminBlock.d.ts +3 -3
  231. package/src/surfaces/admin/components/AdminPrintAction.d.ts +2 -2
  232. package/src/surfaces/admin/components/AppNav.d.ts +1 -1
  233. package/src/surfaces/admin/components/Avatar.d.ts +1 -1
  234. package/src/surfaces/admin/components/Badge.d.ts +1 -1
  235. package/src/surfaces/admin/components/Banner.d.ts +1 -1
  236. package/src/surfaces/admin/components/Box.d.ts +1 -1
  237. package/src/surfaces/admin/components/Button.d.ts +1 -1
  238. package/src/surfaces/admin/components/ButtonGroup.d.ts +1 -1
  239. package/src/surfaces/admin/components/Checkbox.d.ts +3 -3
  240. package/src/surfaces/admin/components/Chip.d.ts +1 -1
  241. package/src/surfaces/admin/components/Choice.d.ts +3 -3
  242. package/src/surfaces/admin/components/ChoiceList.d.ts +3 -3
  243. package/src/surfaces/admin/components/Clickable.d.ts +1 -1
  244. package/src/surfaces/admin/components/ClickableChip.d.ts +1 -1
  245. package/src/surfaces/admin/components/ColorField.d.ts +1 -1
  246. package/src/surfaces/admin/components/ColorPicker.d.ts +1 -1
  247. package/src/surfaces/admin/components/DateField.d.ts +1 -1
  248. package/src/surfaces/admin/components/DatePicker.d.ts +1 -1
  249. package/src/surfaces/admin/components/Divider.d.ts +1 -1
  250. package/src/surfaces/admin/components/DropZone.d.ts +1 -1
  251. package/src/surfaces/admin/components/EmailField.d.ts +1 -1
  252. package/src/surfaces/admin/components/EmptyState.d.ts +1 -1
  253. package/src/surfaces/admin/components/Form.d.ts +1 -1
  254. package/src/surfaces/admin/components/FunctionSettings.d.ts +1 -1
  255. package/src/surfaces/admin/components/Grid.d.ts +1 -1
  256. package/src/surfaces/admin/components/GridItem.d.ts +1 -1
  257. package/src/surfaces/admin/components/Heading.d.ts +1 -1
  258. package/src/surfaces/admin/components/Icon.d.ts +1 -1
  259. package/src/surfaces/admin/components/Image.d.ts +1 -1
  260. package/src/surfaces/admin/components/Link.d.ts +1 -1
  261. package/src/surfaces/admin/components/ListItem.d.ts +1 -1
  262. package/src/surfaces/admin/components/Menu.d.ts +1 -1
  263. package/src/surfaces/admin/components/Modal.d.ts +1 -1
  264. package/src/surfaces/admin/components/MoneyField.d.ts +1 -1
  265. package/src/surfaces/admin/components/Number.d.ts +1 -1
  266. package/src/surfaces/admin/components/NumberField.d.ts +1 -1
  267. package/src/surfaces/admin/components/Option.d.ts +3 -3
  268. package/src/surfaces/admin/components/OptionGroup.d.ts +1 -1
  269. package/src/surfaces/admin/components/OrderedList.d.ts +1 -1
  270. package/src/surfaces/admin/components/Page.d.ts +1 -1
  271. package/src/surfaces/admin/components/Paragraph.d.ts +1 -1
  272. package/src/surfaces/admin/components/PasswordField.d.ts +1 -1
  273. package/src/surfaces/admin/components/Popover.d.ts +1 -1
  274. package/src/surfaces/admin/components/Progress.d.ts +155 -0
  275. package/src/surfaces/admin/components/QueryContainer.d.ts +1 -1
  276. package/src/surfaces/admin/components/SearchField.d.ts +1 -1
  277. package/src/surfaces/admin/components/Section.d.ts +11 -3
  278. package/src/surfaces/admin/components/Select.d.ts +1 -1
  279. package/src/surfaces/admin/components/Spinner.d.ts +1 -1
  280. package/src/surfaces/admin/components/Stack.d.ts +1 -1
  281. package/src/surfaces/admin/components/StandardComponents.ts +3 -0
  282. package/src/surfaces/admin/components/Switch.d.ts +3 -3
  283. package/src/surfaces/admin/components/Table.d.ts +1 -1
  284. package/src/surfaces/admin/components/TableBody.d.ts +1 -1
  285. package/src/surfaces/admin/components/TableCell.d.ts +1 -1
  286. package/src/surfaces/admin/components/TableHeader.d.ts +1 -1
  287. package/src/surfaces/admin/components/TableHeaderRow.d.ts +1 -1
  288. package/src/surfaces/admin/components/TableRow.d.ts +1 -1
  289. package/src/surfaces/admin/components/Text.d.ts +1 -1
  290. package/src/surfaces/admin/components/TextArea.d.ts +1 -1
  291. package/src/surfaces/admin/components/TextField.d.ts +1 -1
  292. package/src/surfaces/admin/components/Thumbnail.d.ts +1 -1
  293. package/src/surfaces/admin/components/Tooltip.d.ts +1 -1
  294. package/src/surfaces/admin/components/URLField.d.ts +1 -1
  295. package/src/surfaces/admin/components/UnorderedList.d.ts +1 -1
  296. package/src/surfaces/admin/components/shared.d.ts +47 -7
  297. package/src/surfaces/admin/components.d.ts +8216 -2635
  298. package/src/surfaces/checkout/api/address-autocomplete/format-suggestion.ts +9 -0
  299. package/src/surfaces/checkout/api/address-autocomplete/shared.ts +9 -0
  300. package/src/surfaces/checkout/api/address-autocomplete/standard.ts +1 -2
  301. package/src/surfaces/checkout/api/address-autocomplete/suggest.ts +8 -0
  302. package/src/surfaces/checkout/api/checkout/checkout.ts +19 -9
  303. package/src/surfaces/checkout/api/redeemable/redeemable.ts +1 -1
  304. package/src/surfaces/checkout/api/shared.ts +116 -1
  305. package/src/surfaces/checkout/api/standard/standard.ts +11 -3
  306. package/src/surfaces/checkout/components/MoneyField.d.ts +3 -1
  307. package/src/surfaces/checkout/components/NumberField.d.ts +3 -1
  308. package/src/surfaces/checkout/components/components-shared.d.ts +1 -1
  309. package/src/surfaces/checkout/preact/country.ts +1 -1
  310. package/src/surfaces/checkout.ts +3 -0
  311. package/src/surfaces/customer-account/api/order-status/order-status.ts +1 -1
  312. package/src/surfaces/customer-account/api/shared.ts +25 -7
  313. package/src/surfaces/customer-account/api.ts +1 -0
  314. package/src/surfaces/customer-account/preact/authenticated-account.ts +3 -3
  315. package/src/surfaces/point-of-sale/api/cart-api/cart-api.ts +14 -0
  316. package/src/surfaces/point-of-sale/api/device-api/device-api.ts +4 -0
  317. package/src/surfaces/point-of-sale/api/docs.ts +8 -0
  318. package/src/surfaces/point-of-sale/api/extension-api/extension-api.ts +25 -5
  319. package/src/surfaces/point-of-sale/api/navigation-api/navigation-api.ts +22 -7
  320. package/src/surfaces/point-of-sale/api/resolution-api/resolution-api.ts +30 -3
  321. package/src/surfaces/point-of-sale/api/session-api/session-api.ts +1 -1
  322. package/src/surfaces/point-of-sale/api.ts +2 -0
  323. package/src/surfaces/point-of-sale/components/POSList.d.ts +179 -0
  324. package/src/surfaces/point-of-sale/components/targets/BlockExtensionComponents.ts +0 -4
  325. package/src/surfaces/point-of-sale/components/targets/ResolutionComponents.ts +1 -1
  326. package/src/surfaces/point-of-sale/components/targets/StandardComponents.ts +1 -3
  327. package/src/surfaces/point-of-sale/components.d.ts +194 -0
  328. package/src/surfaces/point-of-sale/event/data/BaseData.ts +13 -1
  329. package/src/surfaces/point-of-sale/event/data.ts +1 -1
  330. package/src/surfaces/point-of-sale/events/scan-event.ts +34 -0
  331. package/src/surfaces/point-of-sale/events/transaction-complete-event.ts +8 -0
  332. package/src/surfaces/point-of-sale/events.ts +58 -27
  333. package/src/surfaces/point-of-sale/extension-targets.ts +4 -4
  334. package/src/surfaces/point-of-sale/globals.ts +0 -2
  335. package/src/surfaces/point-of-sale/pos-list-template.ts +351 -0
  336. package/src/surfaces/point-of-sale/tests/pos-list-template.test.ts +306 -0
  337. package/src/surfaces/point-of-sale/types/base-transaction-complete.ts +8 -0
  338. package/src/surfaces/point-of-sale/types/session.ts +0 -7
  339. package/src/surfaces/point-of-sale.ts +1 -0
@@ -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
  /**
@@ -8,17 +8,44 @@ import type {ReadonlySignalLike} from '../../../../shared';
8
8
  * @private
9
9
  */
10
10
  export interface ResolutionApi<TEventData> {
11
+ /** The intercepted event data and save handler for the active resolution target. */
11
12
  resolution: ResolutionApiContent<TEventData>;
12
13
  }
13
14
 
14
15
  /**
15
- * @private
16
+ * Runs when staff advance the resolution flow. Return a promise to have POS
17
+ * wait for pending work to finish before it re-runs validation.
18
+ *
19
+ * @publicDocs
20
+ */
21
+ export type ResolutionSaveHandler = () => void | Promise<void>;
22
+
23
+ /**
24
+ * The intercepted event data and save handler available to a validation
25
+ * resolution target through `shopify.resolution`.
26
+ *
27
+ * @publicDocs
16
28
  */
17
29
  export interface ResolutionApiContent<TEventData> {
18
30
  /**
19
31
  * The data of the intercepted event this resolution target was opened for.
20
- * The `value` property provides the current data, and `subscribe` allows
21
- * listening for host-owned revalidation updates.
32
+ * The `value` property provides the current data, and `subscribe` receives
33
+ * Shopify POS revalidation updates.
22
34
  */
23
35
  event: ReadonlySignalLike<TEventData>;
36
+
37
+ /**
38
+ * Registers a handler that runs when staff advance the resolution flow
39
+ * (Save, Next, or Done). POS awaits the handler before it re-runs the
40
+ * intercepted validation, so use it to commit any pending work, for example
41
+ * cart updates or storage writes, and `await` those calls inside the handler.
42
+ * A rejected promise does not stop the flow; POS still re-runs validation and
43
+ * the interceptor result decides what happens next.
44
+ *
45
+ * Only the most recent handler is kept.
46
+ *
47
+ * @returns A promise that resolves to an async cleanup function that
48
+ * unregisters the handler.
49
+ */
50
+ onSave(handler: ResolutionSaveHandler): Promise<() => Promise<void>>;
24
51
  }
@@ -7,7 +7,7 @@ import type {Session, StaffMember} from '../../types/session';
7
7
  */
8
8
  export interface SessionApiContent {
9
9
  /**
10
- * Provides comprehensive information about the current POS session including shop details, user authentication, location data, staff member information, currency settings, and POS version. This data is static for the duration of the session and updates when users switch locations or staff members change.
10
+ * Provides information about the current POS session including shop details, user authentication, location data, currency settings, and POS version. Use `session.staffMember` to access the staff member currently pinned into POS and subscribe to staff member changes.
11
11
  */
12
12
  currentSession: Session;
13
13
  /**
@@ -24,11 +24,13 @@ export type {DataTargetApi} from './api/data-target-api/data-target-api';
24
24
  export type {
25
25
  ResolutionApi,
26
26
  ResolutionApiContent,
27
+ ResolutionSaveHandler,
27
28
  } from './api/resolution-api/resolution-api';
28
29
  export type {
29
30
  TransactionCompleteEvent,
30
31
  CashTrackingSessionStartEvent,
31
32
  CashTrackingSessionCompleteEvent,
33
+ ScanEvent,
32
34
  ShopifyEventMap,
33
35
  } from './events';
34
36
 
@@ -0,0 +1,179 @@
1
+ /** VERSION: undefined **/
2
+ /* eslint-disable import-x/extensions */
3
+ /* eslint-disable @typescript-eslint/no-namespace */
4
+ /* eslint-disable @typescript-eslint/member-ordering */
5
+ /* eslint-disable line-comment-position */
6
+ /* eslint-disable @typescript-eslint/unified-signatures */
7
+ /* eslint-disable no-var */
8
+ /* eslint-disable import-x/namespace */
9
+ // eslint-disable-next-line @typescript-eslint/triple-slash-reference, spaced-comment
10
+ /// <reference lib="DOM" />
11
+ import type {Key, Ref, ComponentChild} from './components-shared.d.ts';
12
+
13
+ export type ComponentChildren = any;
14
+ /**
15
+ * Used when an element does not have children.
16
+ */
17
+ export interface BaseElementProps<TClass = HTMLElement> {
18
+ key?: Key;
19
+ ref?: Ref<TClass>;
20
+ slot?: Lowercase<string>;
21
+ }
22
+ /**
23
+ * Used when an element has children.
24
+ */
25
+ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
26
+ extends BaseElementProps<TClass> {
27
+ children?: ComponentChildren;
28
+ }
29
+ export type IntrinsicElementProps<T> = T &
30
+ BaseElementPropsWithChildren<T & HTMLElement>;
31
+ export type HtmlElementTagNameProps<T> = T & HTMLElement;
32
+ export type ElementForTag<T extends string> =
33
+ T extends keyof HTMLElementTagNameMap
34
+ ? HTMLElementTagNameMap[T]
35
+ : HTMLElement;
36
+ export interface CallbackEvent<T extends string> {
37
+ currentTarget: ElementForTag<T>;
38
+ bubbles?: boolean;
39
+ cancelable?: boolean;
40
+ composed?: boolean;
41
+ detail?: any;
42
+ eventPhase: number;
43
+ target: ElementForTag<T> | null;
44
+ }
45
+
46
+ /**
47
+ * The serialized template AST carried by `s-pos-list`'s `itemTemplates`
48
+ * property.
49
+ *
50
+ * Templates are authored in the extension sandbox with the `posListTemplate`
51
+ * tagged template, compiled once into this plain-JSON shape, and shipped
52
+ * across the bridge as a single property. The host hydrates the AST per
53
+ * visible row, so no RemoteDOM nodes exist for template content and no
54
+ * extension code runs while scrolling.
55
+ */
56
+ /** A literal string piece or a row-field lookup within interpolated text. */
57
+ export type POSListTemplateSegment =
58
+ | string
59
+ | {
60
+ path: string;
61
+ };
62
+ export type POSListTemplateProp =
63
+ /** A static value. Web component attributes yield strings, or `true` when valueless. */
64
+ | {
65
+ kind: 'literal';
66
+ value: string | boolean;
67
+ }
68
+ /** The row field at `path`, passed through with its original type (`bind:prop="path"`). */
69
+ | {
70
+ kind: 'field';
71
+ path: string;
72
+ }
73
+ /** A string built from literal pieces and `{{path}}` lookups. */
74
+ | {
75
+ kind: 'segments';
76
+ segments: POSListTemplateSegment[];
77
+ };
78
+ export type POSListTemplateNode =
79
+ | {
80
+ kind: 'element';
81
+ tag: string;
82
+ props?: Record<string, POSListTemplateProp>;
83
+ children?: POSListTemplateNode[];
84
+ }
85
+ /** Literal text, possibly interpolated with `{{path}}` lookups. */
86
+ | {
87
+ kind: 'text';
88
+ segments: POSListTemplateSegment[];
89
+ }
90
+ /** `{{#if path}}…{{/if}}`: children render only when the field is truthy. */
91
+ | {
92
+ kind: 'if';
93
+ path: string;
94
+ children: POSListTemplateNode[];
95
+ };
96
+ /** One `<s-pos-list-item templateId="…">` root. */
97
+ export interface POSListItemTemplate {
98
+ templateId: string;
99
+ /** `button` rows fire `rowclick`; `text` rows are static content. */
100
+ type: 'button' | 'text';
101
+ children: POSListTemplateNode[];
102
+ }
103
+ export interface POSListTemplates {
104
+ templates: POSListItemTemplate[];
105
+ }
106
+
107
+ declare const tagName = 's-pos-list';
108
+ /**
109
+ * A row supplied to `s-pos-list`. Rows are plain data; every member other than `id` and
110
+ * `templateFor` is available to the row's item template through `{{path}}`, `bind:prop`,
111
+ * and `{{#if path}}` bindings.
112
+ */
113
+ export interface POSListRow {
114
+ /** A unique identifier for the row. Keys virtualization and identity across incremental loads. */
115
+ id: string;
116
+ /** The `templateId` of the item template that renders this row. */
117
+ templateFor: string;
118
+ /** Any additional data the row's template reads. */
119
+ [field: string]: unknown;
120
+ }
121
+ /**
122
+ * The event fired when a `button` row is activated. `event.detail.item` is the activated row, and
123
+ * `event.detail.index` is its position in `rows`.
124
+ */
125
+ export type POSListRowClickEvent = CallbackEvent<'s-pos-list'> & {
126
+ detail: {
127
+ item: POSListRow;
128
+ index: number;
129
+ };
130
+ };
131
+ /**
132
+ * Displays a virtualized list of rows rendered from plain data and item templates compiled with
133
+ * `posListTemplate`.
134
+ *
135
+ * @publicDocs
136
+ */
137
+ export interface POSListJSXProps {
138
+ /** A unique identifier for the element. */
139
+ id?: string;
140
+ /** An array of POSListRow objects that define the content of each row in the list. */
141
+ rows?: POSListRow[];
142
+ /**
143
+ * Reusable templates that define the layout of list rows. Use `posListTemplate` to define one or
144
+ * more `<s-pos-list-item>` templates.
145
+ */
146
+ itemTemplates?: POSListTemplates;
147
+ /**
148
+ * Whether more data is being loaded. Set to `true` when paginating and fetching additional data
149
+ * for the list. POS shows a progress indicator after the last row.
150
+ *
151
+ * @default false
152
+ */
153
+ loadingMore?: boolean;
154
+ /**
155
+ * Callback when a `button` row is activated. `event.detail.item` is the row and
156
+ * `event.detail.index` its position in `rows`. Rows rendered by a `text` template never fire it.
157
+ */
158
+ onRowClick?: ((event: POSListRowClickEvent) => void) | null;
159
+ /** Callback when the list has scrolled near its end and more rows should be loaded. */
160
+ onLoadMore?: ((event: CallbackEvent<typeof tagName>) => void) | null;
161
+ /** Content displayed before the rows as part of the list's scrollable content. */
162
+ header?: ComponentChild;
163
+ }
164
+ export type ElementProps = Omit<POSListJSXProps, 'header'>;
165
+ declare global {
166
+ interface HTMLElementTagNameMap {
167
+ [tagName]: HtmlElementTagNameProps<ElementProps>;
168
+ }
169
+ }
170
+ declare module 'preact' {
171
+ namespace createElement.JSX {
172
+ interface IntrinsicElements {
173
+ [tagName]: IntrinsicElementProps<ElementProps>;
174
+ }
175
+ }
176
+ }
177
+
178
+ export {tagName};
179
+ export type {ElementProps, POSListJSXProps, POSListRow, POSListRowClickEvent};
@@ -7,15 +7,11 @@ export type BlockExtensionComponents =
7
7
  | 'Button'
8
8
  | 'DatePicker'
9
9
  | 'DateSpinner'
10
- | 'Dialog'
11
10
  | 'Heading'
12
11
  | 'Icon'
13
12
  | 'Image'
14
13
  | 'Modal'
15
- | 'POSBlock'
16
14
  | 'PosBlock' // Case is important in 2025-10
17
- | 'POSBlockRow'
18
- | 'PrintPreview'
19
15
  | 'Section'
20
16
  | 'Stack'
21
17
  | 'Text'
@@ -9,5 +9,5 @@ import type {StandardComponents} from './StandardComponents';
9
9
  */
10
10
  export type ResolutionComponents = Exclude<
11
11
  StandardComponents,
12
- 'Page' | 'POSBlock' | 'PosBlock' | 'Tile'
12
+ 'Page' | 'PosBlock' | 'Tile'
13
13
  >;
@@ -23,10 +23,8 @@ export type StandardComponents =
23
23
  | 'Modal'
24
24
  | 'NumberField'
25
25
  | 'Page'
26
- | 'POSBlock'
26
+ | 'POSList'
27
27
  | 'PosBlock' // Case is important in 2025-10
28
- | 'Route'
29
- | 'Router'
30
28
  | 'ScrollBox'
31
29
  | 'SearchField'
32
30
  | 'Section'
@@ -5435,6 +5435,138 @@ declare module 'preact' {
5435
5435
  }
5436
5436
  }
5437
5437
 
5438
+ /**
5439
+ * The serialized template AST carried by `s-pos-list`'s `itemTemplates`
5440
+ * property.
5441
+ *
5442
+ * Templates are authored in the extension sandbox with the `posListTemplate`
5443
+ * tagged template, compiled once into this plain-JSON shape, and shipped
5444
+ * across the bridge as a single property. The host hydrates the AST per
5445
+ * visible row, so no RemoteDOM nodes exist for template content and no
5446
+ * extension code runs while scrolling.
5447
+ */
5448
+ /** A literal string piece or a row-field lookup within interpolated text. */
5449
+ type POSListTemplateSegment =
5450
+ | string
5451
+ | {
5452
+ path: string;
5453
+ };
5454
+ type POSListTemplateProp =
5455
+ /** A static value. Web component attributes yield strings, or `true` when valueless. */
5456
+ | {
5457
+ kind: 'literal';
5458
+ value: string | boolean;
5459
+ }
5460
+ /** The row field at `path`, passed through with its original type (`bind:prop="path"`). */
5461
+ | {
5462
+ kind: 'field';
5463
+ path: string;
5464
+ }
5465
+ /** A string built from literal pieces and `{{path}}` lookups. */
5466
+ | {
5467
+ kind: 'segments';
5468
+ segments: POSListTemplateSegment[];
5469
+ };
5470
+ type POSListTemplateNode =
5471
+ | {
5472
+ kind: 'element';
5473
+ tag: string;
5474
+ props?: Record<string, POSListTemplateProp>;
5475
+ children?: POSListTemplateNode[];
5476
+ }
5477
+ /** Literal text, possibly interpolated with `{{path}}` lookups. */
5478
+ | {
5479
+ kind: 'text';
5480
+ segments: POSListTemplateSegment[];
5481
+ }
5482
+ /** `{{#if path}}…{{/if}}`: children render only when the field is truthy. */
5483
+ | {
5484
+ kind: 'if';
5485
+ path: string;
5486
+ children: POSListTemplateNode[];
5487
+ };
5488
+ /** One `<s-pos-list-item templateId="…">` root. */
5489
+ interface POSListItemTemplate {
5490
+ templateId: string;
5491
+ /** `button` rows fire `rowclick`; `text` rows are static content. */
5492
+ type: 'button' | 'text';
5493
+ children: POSListTemplateNode[];
5494
+ }
5495
+ interface POSListTemplates {
5496
+ templates: POSListItemTemplate[];
5497
+ }
5498
+
5499
+ declare const posListTagName = 's-pos-list';
5500
+ /**
5501
+ * A row supplied to `s-pos-list`. Rows are plain data; every member other than `id` and
5502
+ * `templateFor` is available to the row's item template through `{{path}}`, `bind:prop`,
5503
+ * and `{{#if path}}` bindings.
5504
+ */
5505
+ interface POSListRow {
5506
+ /** A unique identifier for the row. Keys virtualization and identity across incremental loads. */
5507
+ id: string;
5508
+ /** The `templateId` of the item template that renders this row. */
5509
+ templateFor: string;
5510
+ /** Any additional data the row's template reads. */
5511
+ [field: string]: unknown;
5512
+ }
5513
+ /**
5514
+ * The event fired when a `button` row is activated. `event.detail.item` is the activated row, and
5515
+ * `event.detail.index` is its position in `rows`.
5516
+ */
5517
+ type POSListRowClickEvent = CallbackEvent<'s-pos-list'> & {
5518
+ detail: {
5519
+ item: POSListRow;
5520
+ index: number;
5521
+ };
5522
+ };
5523
+ /**
5524
+ * Displays a virtualized list of rows rendered from plain data and item templates compiled with
5525
+ * `posListTemplate`.
5526
+ *
5527
+ * @publicDocs
5528
+ */
5529
+ interface POSListJSXProps {
5530
+ /** A unique identifier for the element. */
5531
+ id?: string;
5532
+ /** An array of POSListRow objects that define the content of each row in the list. */
5533
+ rows?: POSListRow[];
5534
+ /**
5535
+ * Reusable templates that define the layout of list rows. Use `posListTemplate` to define one or
5536
+ * more `<s-pos-list-item>` templates.
5537
+ */
5538
+ itemTemplates?: POSListTemplates;
5539
+ /**
5540
+ * Whether more data is being loaded. Set to `true` when paginating and fetching additional data
5541
+ * for the list. POS shows a progress indicator after the last row.
5542
+ *
5543
+ * @default false
5544
+ */
5545
+ loadingMore?: boolean;
5546
+ /**
5547
+ * Callback when a `button` row is activated. `event.detail.item` is the row and
5548
+ * `event.detail.index` its position in `rows`. Rows rendered by a `text` template never fire it.
5549
+ */
5550
+ onRowClick?: ((event: POSListRowClickEvent) => void) | null;
5551
+ /** Callback when the list has scrolled near its end and more rows should be loaded. */
5552
+ onLoadMore?: ((event: CallbackEvent<typeof posListTagName>) => void) | null;
5553
+ /** Content displayed before the rows as part of the list's scrollable content. */
5554
+ header?: ComponentChild;
5555
+ }
5556
+ type POSListElementProps = Omit<POSListJSXProps, 'header'>;
5557
+ declare global {
5558
+ interface HTMLElementTagNameMap {
5559
+ [posListTagName]: HtmlElementTagNameProps<POSListElementProps>;
5560
+ }
5561
+ }
5562
+ declare module 'preact' {
5563
+ namespace createElement.JSX {
5564
+ interface IntrinsicElements {
5565
+ [posListTagName]: IntrinsicElementProps<POSListElementProps>;
5566
+ }
5567
+ }
5568
+ }
5569
+
5438
5570
  export type {
5439
5571
  BadgeJSXProps,
5440
5572
  BannerJSXProps,
@@ -5457,6 +5589,7 @@ export type {
5457
5589
  ModalJSXProps,
5458
5590
  NumberFieldJSXProps,
5459
5591
  PageJSXProps,
5592
+ POSListJSXProps,
5460
5593
  PosBlockJSXProps,
5461
5594
  QrCodeJSXProps,
5462
5595
  ScrollBoxJSXProps,
@@ -5477,6 +5610,52 @@ export type {
5477
5610
  TimePickerJSXProps,
5478
5611
  };
5479
5612
 
5613
+ /**
5614
+ * The POS list component provides event callbacks for handling user interactions. Learn more about [handling events](/docs/api/polaris/using-polaris-web-components#handling-events).
5615
+ * @publicDocs
5616
+ */
5617
+ interface POSListEvents {
5618
+ /**
5619
+ * Callback when a `button` row is activated. `event.detail.item` is the row and
5620
+ * `event.detail.index` its position in `rows`. Rows rendered by a `text` template never fire it.
5621
+ */
5622
+ rowclick?: (event: POSListRowClickEvent) => void;
5623
+ /** Callback when the list has scrolled near its end and more rows should be loaded. */
5624
+ loadmore?: (event: CallbackEvent<typeof posListTagName>) => void;
5625
+ }
5626
+
5627
+ /**
5628
+ * Content slots for the POS list.
5629
+ * @publicDocs
5630
+ */
5631
+ interface POSListSlots {
5632
+ /** Content displayed before the rows as part of the list's scrollable content. */
5633
+ header?: HTMLElement;
5634
+ }
5635
+
5636
+ /**
5637
+ * Displays a virtualized list of rows rendered from plain data and item templates compiled with
5638
+ * `posListTemplate`.
5639
+ * @publicDocs
5640
+ */
5641
+ interface POSList {
5642
+ /** A unique identifier for the element. */
5643
+ id?: string;
5644
+ /** An array of POSListRow objects that define the content of each row in the list. */
5645
+ rows?: POSListRow[];
5646
+ /**
5647
+ * Reusable templates that define the layout of list rows. Use `posListTemplate` to define one or
5648
+ * more `<s-pos-list-item>` templates.
5649
+ */
5650
+ itemTemplates?: POSListTemplates;
5651
+ /**
5652
+ * Whether more data is being loaded. Set to `true` when paginating and fetching additional data
5653
+ * for the list. POS shows a progress indicator after the last row.
5654
+ * @default false
5655
+ */
5656
+ loadingMore?: boolean;
5657
+ }
5658
+
5480
5659
  /**
5481
5660
  * The link component provides event callbacks for handling user interactions. Learn more about [handling events](/docs/api/polaris/using-polaris-web-components#handling-events).
5482
5661
  * @publicDocs
@@ -7809,3 +7988,18 @@ declare global {
7809
7988
  }
7810
7989
  }
7811
7990
  }
7991
+
7992
+ declare module 'react' {
7993
+ namespace JSX {
7994
+ interface IntrinsicElements {
7995
+ [posListTagName]: IntrinsicElementProps<POSListElementProps>;
7996
+ }
7997
+ }
7998
+ }
7999
+ declare global {
8000
+ namespace JSX {
8001
+ interface IntrinsicElements {
8002
+ [posListTagName]: IntrinsicElementProps<POSListElementProps>;
8003
+ }
8004
+ }
8005
+ }
@@ -4,6 +4,18 @@ import type {
4
4
  Session,
5
5
  } from '../../../point-of-sale';
6
6
 
7
+ /**
8
+ * A snapshot of the POS session provided to receipt targets.
9
+ * @publicDocs
10
+ */
11
+ export interface BaseDataSession extends Session {
12
+ /**
13
+ * The ID of the staff member pinned into POS for this receipt event. This
14
+ * snapshot is separate from the reactive `session.staffMember` on the Session API.
15
+ */
16
+ staffMemberId?: number;
17
+ }
18
+
7
19
  /**
8
20
  * Base data object provided to all extension targets containing device information, session context, and connectivity state. This data is available at extension initialization and provides essential context about the runtime environment.
9
21
  * @publicDocs
@@ -24,5 +36,5 @@ export interface BaseData {
24
36
  /**
25
37
  * Comprehensive information about the current POS session including shop ID and domain, authenticated user, pinned staff member, active location, currency settings, and POS version. This session data remains constant for the session duration and provides critical context for business logic, permissions, API authentication, and transaction processing. Session data updates when users switch locations or change pinned staff members.
26
38
  */
27
- session: Session;
39
+ session: BaseDataSession;
28
40
  }
@@ -1,4 +1,4 @@
1
- export type {BaseData} from './data/BaseData';
1
+ export type {BaseData, BaseDataSession} from './data/BaseData';
2
2
  export type {BaseApi} from './data/BaseApi';
3
3
  export type {ReprintReceiptData} from './data/ReprintReceiptData';
4
4
  export type {TransactionCompleteWithReprintData} from './data/TransactionCompleteData';
@@ -0,0 +1,34 @@
1
+ import type {ScannerSource} from '../api/scanner-api/scanner-api';
2
+
3
+ /**
4
+ * Dispatched once for each successful scan captured by a camera, external,
5
+ * or embedded scanner. Every event carries a decoded `data` value and its
6
+ * `source`; no event is dispatched for initial or empty scanner state.
7
+ *
8
+ * The event is delivered only after POS has finished handling the scan
9
+ * itself.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * shopify.addEventListener('scan', (event) => {
14
+ * handleScan(event.data, event.source);
15
+ * });
16
+ * ```
17
+ * @publicDocs
18
+ */
19
+ export interface ScanEvent {
20
+ /** The event name. */
21
+ readonly type: 'scan';
22
+ /**
23
+ * The decoded string captured by the scan. Contains the scanned barcode, QR code, or other scannable data. Always present: an event is only dispatched for a successful scan.
24
+ */
25
+ readonly data: string;
26
+ /**
27
+ * The scanner source that captured the scan. One of the following scanner types:
28
+ *
29
+ * • `'camera'` - Built-in device camera used for scanning
30
+ * • `'external'` - External scanner hardware connected to the device
31
+ * • `'embedded'` - Embedded scanner hardware built into the device
32
+ */
33
+ readonly source: ScannerSource;
34
+ }
@@ -17,6 +17,10 @@ interface BaseTransactionCompleteEvent {
17
17
  * The unique numeric identifier for the Shopify order created by this transaction. This ID links the POS transaction to the order record in Shopify's system and can be used for order lookups, tracking, and API operations. Returns `undefined` when order creation is pending.
18
18
  */
19
19
  readonly orderId?: number;
20
+ /**
21
+ * The source identifier POS assigned to this transaction. Matches the `sourceIdentifier` of the order this transaction belongs to. Returns `undefined` when POS didn't assign one.
22
+ */
23
+ readonly sourceIdentifier?: string;
20
24
  /**
21
25
  * The customer information if this transaction is associated with a customer account. Contains the customer ID for linking to customer records. Returns `undefined` for guest transactions where no customer was selected or when the transaction doesn't support customer association.
22
26
  */
@@ -29,6 +33,10 @@ interface BaseTransactionCompleteEvent {
29
33
  * The total tax amount charged on this transaction as a `Money` object. This is the sum of all tax lines and represents the combined tax from all applicable tax jurisdictions and rules. Tax calculations are based on the location, products, customer, and tax settings configured in Shopify.
30
34
  */
31
35
  readonly taxTotal: Money;
36
+ /**
37
+ * Whether the prices in this transaction include taxes (tax-inclusive pricing), rather than taxes being added on top. Matches the `taxesIncluded` field on the `Order` object in the GraphQL Admin API. Returns `undefined` when this information isn't available.
38
+ */
39
+ readonly taxesIncluded?: boolean;
32
40
  /**
33
41
  * The subtotal amount before taxes and after discounts are applied, as a `Money` object. This represents the sum of all line item prices (quantity × unit price) minus any discounts, but before tax is added. This is the taxable base amount for most tax calculations.
34
42
  */