@aglyn/plugins-commerce 1.0.0-beta.229 → 1.0.0-beta.231

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 (590) hide show
  1. package/package.json +13 -13
  2. package/src/index.d.ts +0 -1
  3. package/src/index.js +0 -1
  4. package/src/index.js.map +1 -1
  5. package/src/lib/barcode/barcode-decode.d.ts +71 -0
  6. package/src/lib/barcode/barcode-decode.js +498 -0
  7. package/src/lib/barcode/barcode-decode.js.map +1 -0
  8. package/src/lib/barcode/barcode-encode.d.ts +44 -0
  9. package/src/lib/barcode/barcode-encode.js +138 -0
  10. package/src/lib/barcode/barcode-encode.js.map +1 -0
  11. package/src/lib/barcode/barcode-scanner.component.d.ts +23 -0
  12. package/src/lib/barcode/barcode-scanner.component.js +260 -0
  13. package/src/lib/barcode/barcode-scanner.component.js.map +1 -0
  14. package/src/lib/barcode/scan-button.component.d.ts +10 -0
  15. package/src/lib/barcode/scan-button.component.js +62 -0
  16. package/src/lib/barcode/scan-button.component.js.map +1 -0
  17. package/src/lib/barcode/scanner-wedge.d.ts +35 -0
  18. package/src/lib/barcode/scanner-wedge.js +108 -0
  19. package/src/lib/barcode/scanner-wedge.js.map +1 -0
  20. package/src/lib/components/account.js +10 -1
  21. package/src/lib/components/account.js.map +1 -1
  22. package/src/lib/components/cart-extras.d.ts +45 -0
  23. package/src/lib/components/cart-extras.js +127 -0
  24. package/src/lib/components/cart-extras.js.map +1 -0
  25. package/src/lib/components/cart.js +82 -15
  26. package/src/lib/components/cart.js.map +1 -1
  27. package/src/lib/components/checkout-return-notice.d.ts +26 -0
  28. package/src/lib/components/checkout-return-notice.js +48 -0
  29. package/src/lib/components/checkout-return-notice.js.map +1 -0
  30. package/src/lib/components/commerce-console-page.js +124 -0
  31. package/src/lib/components/commerce-console-page.js.map +1 -1
  32. package/src/lib/components/commerce-console-sections.d.ts +1 -1
  33. package/src/lib/components/commerce-console-sections.js +4 -0
  34. package/src/lib/components/commerce-console-sections.js.map +1 -1
  35. package/src/lib/components/console/bulk-fulfill.d.ts +44 -0
  36. package/src/lib/components/console/bulk-fulfill.js +84 -0
  37. package/src/lib/components/console/bulk-fulfill.js.map +1 -0
  38. package/src/lib/components/console/customer-notifications-card.component.d.ts +19 -0
  39. package/src/lib/components/console/customer-notifications-card.component.js +149 -0
  40. package/src/lib/components/console/customer-notifications-card.component.js.map +1 -0
  41. package/src/lib/components/console/host-orders-card.component.js +84 -5
  42. package/src/lib/components/console/host-orders-card.component.js.map +1 -1
  43. package/src/lib/components/console/locations-card.component.js +164 -57
  44. package/src/lib/components/console/locations-card.component.js.map +1 -1
  45. package/src/lib/components/console/order-detail-dialog.component.js +209 -61
  46. package/src/lib/components/console/order-detail-dialog.component.js.map +1 -1
  47. package/src/lib/components/console/order-fulfillment-panel.component.d.ts +48 -0
  48. package/src/lib/components/console/order-fulfillment-panel.component.js +542 -0
  49. package/src/lib/components/console/order-fulfillment-panel.component.js.map +1 -0
  50. package/src/lib/components/console/order-invoice.component.d.ts +33 -0
  51. package/src/lib/components/console/order-invoice.component.js +81 -0
  52. package/src/lib/components/console/order-invoice.component.js.map +1 -0
  53. package/src/lib/components/console/order-receipt-resend.component.d.ts +21 -0
  54. package/src/lib/components/console/order-receipt-resend.component.js +203 -0
  55. package/src/lib/components/console/order-receipt-resend.component.js.map +1 -0
  56. package/src/lib/components/console/order-returns.component.d.ts +36 -0
  57. package/src/lib/components/console/order-returns.component.js +142 -0
  58. package/src/lib/components/console/order-returns.component.js.map +1 -0
  59. package/src/lib/components/console/order-shipping-actions.component.d.ts +54 -0
  60. package/src/lib/components/console/order-shipping-actions.component.js +149 -0
  61. package/src/lib/components/console/order-shipping-actions.component.js.map +1 -0
  62. package/src/lib/components/console/order-webhooks-card.component.d.ts +50 -0
  63. package/src/lib/components/console/order-webhooks-card.component.js +623 -0
  64. package/src/lib/components/console/order-webhooks-card.component.js.map +1 -0
  65. package/src/lib/components/console/order-zones.d.ts +155 -0
  66. package/src/lib/components/console/order-zones.js +40 -0
  67. package/src/lib/components/console/order-zones.js.map +1 -0
  68. package/src/lib/components/console/payment-methods-card.component.d.ts +67 -0
  69. package/src/lib/components/console/payment-methods-card.component.js +395 -0
  70. package/src/lib/components/console/payment-methods-card.component.js.map +1 -0
  71. package/src/lib/components/console/pos/pos-api.d.ts +124 -0
  72. package/src/lib/components/console/pos/pos-api.js +101 -0
  73. package/src/lib/components/console/pos/pos-api.js.map +1 -0
  74. package/src/lib/components/console/pos/pos-cart-panel.component.d.ts +36 -0
  75. package/src/lib/components/console/pos/pos-cart-panel.component.js +160 -0
  76. package/src/lib/components/console/pos/pos-cart-panel.component.js.map +1 -0
  77. package/src/lib/components/console/pos/pos-item-dialog.component.d.ts +39 -0
  78. package/src/lib/components/console/pos/pos-item-dialog.component.js +352 -0
  79. package/src/lib/components/console/pos/pos-item-dialog.component.js.map +1 -0
  80. package/src/lib/components/console/pos/pos-product-grid.component.d.ts +47 -0
  81. package/src/lib/components/console/pos/pos-product-grid.component.js +272 -0
  82. package/src/lib/components/console/pos/pos-product-grid.component.js.map +1 -0
  83. package/src/lib/components/console/pos/pos-receipt-panel.component.d.ts +27 -0
  84. package/src/lib/components/console/pos/pos-receipt-panel.component.js +282 -0
  85. package/src/lib/components/console/pos/pos-receipt-panel.component.js.map +1 -0
  86. package/src/lib/components/console/pos/pos-tender-dialogs.component.d.ts +53 -0
  87. package/src/lib/components/console/pos/pos-tender-dialogs.component.js +445 -0
  88. package/src/lib/components/console/pos/pos-tender-dialogs.component.js.map +1 -0
  89. package/src/lib/components/console/pos/pos-tender-panel.component.d.ts +31 -0
  90. package/src/lib/components/console/pos/pos-tender-panel.component.js +640 -0
  91. package/src/lib/components/console/pos/pos-tender-panel.component.js.map +1 -0
  92. package/src/lib/components/console/pos/use-pos-display.d.ts +43 -0
  93. package/src/lib/components/console/pos/use-pos-display.js +161 -0
  94. package/src/lib/components/console/pos/use-pos-display.js.map +1 -0
  95. package/src/lib/components/console/pos-devices-card.component.d.ts +14 -0
  96. package/src/lib/components/console/pos-devices-card.component.js +546 -0
  97. package/src/lib/components/console/pos-devices-card.component.js.map +1 -0
  98. package/src/lib/components/console/pos-display/brand-screen.d.ts +33 -0
  99. package/src/lib/components/console/pos-display/brand-screen.js +85 -0
  100. package/src/lib/components/console/pos-display/brand-screen.js.map +1 -0
  101. package/src/lib/components/console/pos-display/cart-screen.d.ts +29 -0
  102. package/src/lib/components/console/pos-display/cart-screen.js +166 -0
  103. package/src/lib/components/console/pos-display/cart-screen.js.map +1 -0
  104. package/src/lib/components/console/pos-display/pairing-screen.d.ts +24 -0
  105. package/src/lib/components/console/pos-display/pairing-screen.js +127 -0
  106. package/src/lib/components/console/pos-display/pairing-screen.js.map +1 -0
  107. package/src/lib/components/console/pos-display/pos-display-api.d.ts +90 -0
  108. package/src/lib/components/console/pos-display/pos-display-api.js +140 -0
  109. package/src/lib/components/console/pos-display/pos-display-api.js.map +1 -0
  110. package/src/lib/components/console/pos-display/receipt-screen.d.ts +35 -0
  111. package/src/lib/components/console/pos-display/receipt-screen.js +200 -0
  112. package/src/lib/components/console/pos-display/receipt-screen.js.map +1 -0
  113. package/src/lib/components/console/pos-display/tip-screen.d.ts +36 -0
  114. package/src/lib/components/console/pos-display/tip-screen.js +211 -0
  115. package/src/lib/components/console/pos-display/tip-screen.js.map +1 -0
  116. package/src/lib/components/console/pos-display-page.component.d.ts +16 -0
  117. package/src/lib/components/console/pos-display-page.component.js +407 -0
  118. package/src/lib/components/console/pos-display-page.component.js.map +1 -0
  119. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.d.ts +40 -0
  120. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js +289 -0
  121. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js.map +1 -0
  122. package/src/lib/components/console/pos-ops/pos-last-receipt.component.d.ts +34 -0
  123. package/src/lib/components/console/pos-ops/pos-last-receipt.component.js +61 -0
  124. package/src/lib/components/console/pos-ops/pos-last-receipt.component.js.map +1 -0
  125. package/src/lib/components/console/pos-ops/pos-operations-bar.component.d.ts +38 -0
  126. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js +129 -0
  127. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js.map +1 -0
  128. package/src/lib/components/console/pos-ops/pos-ops-api.d.ts +37 -0
  129. package/src/lib/components/console/pos-ops/pos-ops-api.js +60 -0
  130. package/src/lib/components/console/pos-ops/pos-ops-api.js.map +1 -0
  131. package/src/lib/components/console/pos-ops/pos-pin-pad.component.d.ts +48 -0
  132. package/src/lib/components/console/pos-ops/pos-pin-pad.component.js +220 -0
  133. package/src/lib/components/console/pos-ops/pos-pin-pad.component.js.map +1 -0
  134. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.d.ts +63 -0
  135. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js +186 -0
  136. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js.map +1 -0
  137. package/src/lib/components/console/pos-ops/pos-receipt.d.ts +39 -0
  138. package/src/lib/components/console/pos-ops/pos-receipt.js +182 -0
  139. package/src/lib/components/console/pos-ops/pos-receipt.js.map +1 -0
  140. package/src/lib/components/console/pos-ops/pos-return-dialog.component.d.ts +40 -0
  141. package/src/lib/components/console/pos-ops/pos-return-dialog.component.js +465 -0
  142. package/src/lib/components/console/pos-ops/pos-return-dialog.component.js.map +1 -0
  143. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.d.ts +29 -0
  144. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js +253 -0
  145. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js.map +1 -0
  146. package/src/lib/components/console/pos-ops/pos-shift-panel.component.d.ts +34 -0
  147. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js +494 -0
  148. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js.map +1 -0
  149. package/src/lib/components/console/pos-ops/pos-shift-report.component.d.ts +37 -0
  150. package/src/lib/components/console/pos-ops/pos-shift-report.component.js +102 -0
  151. package/src/lib/components/console/pos-ops/pos-shift-report.component.js.map +1 -0
  152. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.d.ts +30 -0
  153. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js +277 -0
  154. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js.map +1 -0
  155. package/src/lib/components/console/pos-ops/register-ops.d.ts +28 -0
  156. package/src/lib/components/console/pos-ops/register-ops.js +28 -0
  157. package/src/lib/components/console/pos-ops/register-ops.js.map +1 -0
  158. package/src/lib/components/console/pos-ops/use-pos-cashier.d.ts +46 -0
  159. package/src/lib/components/console/pos-ops/use-pos-cashier.js +128 -0
  160. package/src/lib/components/console/pos-ops/use-pos-cashier.js.map +1 -0
  161. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.d.ts +36 -0
  162. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js +64 -0
  163. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js.map +1 -0
  164. package/src/lib/components/console/pos-page.component.d.ts +13 -5
  165. package/src/lib/components/console/pos-page.component.js +729 -657
  166. package/src/lib/components/console/pos-page.component.js.map +1 -1
  167. package/src/lib/components/console/product-editor-dialog.component.js +51 -7
  168. package/src/lib/components/console/product-editor-dialog.component.js.map +1 -1
  169. package/src/lib/components/console/product-labels-dialog.component.d.ts +13 -0
  170. package/src/lib/components/console/product-labels-dialog.component.js +197 -0
  171. package/src/lib/components/console/product-labels-dialog.component.js.map +1 -0
  172. package/src/lib/components/console/product-register-fields.component.d.ts +19 -0
  173. package/src/lib/components/console/product-register-fields.component.js +241 -0
  174. package/src/lib/components/console/product-register-fields.component.js.map +1 -0
  175. package/src/lib/components/console/product-zones.d.ts +58 -2
  176. package/src/lib/components/console/product-zones.js +10 -2
  177. package/src/lib/components/console/product-zones.js.map +1 -1
  178. package/src/lib/components/console/products-hub-card.component.js +51 -11
  179. package/src/lib/components/console/products-hub-card.component.js.map +1 -1
  180. package/src/lib/components/console/register-hardware-card.component.d.ts +33 -0
  181. package/src/lib/components/console/register-hardware-card.component.js +826 -0
  182. package/src/lib/components/console/register-hardware-card.component.js.map +1 -0
  183. package/src/lib/components/console/registers-card.component.js +24 -5
  184. package/src/lib/components/console/registers-card.component.js.map +1 -1
  185. package/src/lib/components/console/return-actions.d.ts +38 -0
  186. package/src/lib/components/console/return-actions.js +76 -0
  187. package/src/lib/components/console/return-actions.js.map +1 -0
  188. package/src/lib/components/console/return-detail-dialog.component.d.ts +34 -0
  189. package/src/lib/components/console/return-detail-dialog.component.js +718 -0
  190. package/src/lib/components/console/return-detail-dialog.component.js.map +1 -0
  191. package/src/lib/components/console/return-settings-card.component.d.ts +34 -0
  192. package/src/lib/components/console/return-settings-card.component.js +195 -0
  193. package/src/lib/components/console/return-settings-card.component.js.map +1 -0
  194. package/src/lib/components/console/return-zones.d.ts +87 -0
  195. package/src/lib/components/console/return-zones.js +31 -0
  196. package/src/lib/components/console/return-zones.js.map +1 -0
  197. package/src/lib/components/console/returns-card.component.d.ts +45 -0
  198. package/src/lib/components/console/returns-card.component.js +159 -0
  199. package/src/lib/components/console/returns-card.component.js.map +1 -0
  200. package/src/lib/components/console/shipping-settings-card.component.js +161 -5
  201. package/src/lib/components/console/shipping-settings-card.component.js.map +1 -1
  202. package/src/lib/components/console/shippingeasy-card.component.d.ts +59 -0
  203. package/src/lib/components/console/shippingeasy-card.component.js +378 -0
  204. package/src/lib/components/console/shippingeasy-card.component.js.map +1 -0
  205. package/src/lib/components/console/shipstation-card.component.d.ts +35 -0
  206. package/src/lib/components/console/shipstation-card.component.js +345 -0
  207. package/src/lib/components/console/shipstation-card.component.js.map +1 -0
  208. package/src/lib/components/console/start-return-dialog.component.d.ts +40 -0
  209. package/src/lib/components/console/start-return-dialog.component.js +243 -0
  210. package/src/lib/components/console/start-return-dialog.component.js.map +1 -0
  211. package/src/lib/components/console/stock-movements-card.component.js +2 -1
  212. package/src/lib/components/console/stock-movements-card.component.js.map +1 -1
  213. package/src/lib/components/console/store-settings-card.component.js +2 -66
  214. package/src/lib/components/console/store-settings-card.component.js.map +1 -1
  215. package/src/lib/components/console/store-zones.d.ts +42 -0
  216. package/src/lib/components/console/store-zones.js +39 -0
  217. package/src/lib/components/console/store-zones.js.map +1 -0
  218. package/src/lib/components/order-status.d.ts +36 -0
  219. package/src/lib/components/order-status.js +502 -0
  220. package/src/lib/components/order-status.js.map +1 -0
  221. package/src/lib/components/product-detail.js +44 -2
  222. package/src/lib/components/product-detail.js.map +1 -1
  223. package/src/lib/components/return-request.d.ts +32 -0
  224. package/src/lib/components/return-request.js +576 -0
  225. package/src/lib/components/return-request.js.map +1 -0
  226. package/src/lib/components/storefront-payment-appearance.d.ts +32 -0
  227. package/src/lib/components/storefront-payment-appearance.js +114 -0
  228. package/src/lib/components/storefront-payment-appearance.js.map +1 -0
  229. package/src/lib/components/storefront-payment-element.d.ts +57 -1
  230. package/src/lib/components/storefront-payment-element.js +332 -33
  231. package/src/lib/components/storefront-payment-element.js.map +1 -1
  232. package/src/lib/constants/order-status.d.ts +22 -0
  233. package/src/lib/constants/order-status.js +22 -0
  234. package/src/lib/constants/order-status.js.map +1 -0
  235. package/src/lib/constants/return-request.d.ts +27 -0
  236. package/src/lib/constants/return-request.js +32 -0
  237. package/src/lib/constants/return-request.js.map +1 -0
  238. package/src/lib/constants/stock-movement-query.js +2 -1
  239. package/src/lib/constants/stock-movement-query.js.map +1 -1
  240. package/src/lib/declarations.console-server.js +9 -0
  241. package/src/lib/declarations.console-server.js.map +1 -1
  242. package/src/lib/declarations.server.d.ts +2 -1
  243. package/src/lib/declarations.server.js +47 -1
  244. package/src/lib/declarations.server.js.map +1 -1
  245. package/src/lib/model/buyer-notifications.d.ts +59 -0
  246. package/src/lib/model/buyer-notifications.js +97 -0
  247. package/src/lib/model/buyer-notifications.js.map +1 -0
  248. package/src/lib/model/commerce-orders.d.ts +127 -1
  249. package/src/lib/model/commerce-orders.js +24 -15
  250. package/src/lib/model/commerce-orders.js.map +1 -1
  251. package/src/lib/model/commerce-payment-methods.d.ts +146 -0
  252. package/src/lib/model/commerce-payment-methods.js +247 -0
  253. package/src/lib/model/commerce-payment-methods.js.map +1 -0
  254. package/src/lib/model/commerce-pos-ops.d.ts +437 -0
  255. package/src/lib/model/commerce-pos-ops.js +721 -0
  256. package/src/lib/model/commerce-pos-ops.js.map +1 -0
  257. package/src/lib/model/commerce-pos.d.ts +263 -0
  258. package/src/lib/model/commerce-pos.js +375 -0
  259. package/src/lib/model/commerce-pos.js.map +1 -0
  260. package/src/lib/model/commerce-printers.d.ts +211 -0
  261. package/src/lib/model/commerce-printers.js +181 -0
  262. package/src/lib/model/commerce-printers.js.map +1 -0
  263. package/src/lib/model/commerce-receipt.d.ts +97 -0
  264. package/src/lib/model/commerce-receipt.js +180 -0
  265. package/src/lib/model/commerce-receipt.js.map +1 -0
  266. package/src/lib/model/commerce-returns.d.ts +207 -0
  267. package/src/lib/model/commerce-returns.js +300 -0
  268. package/src/lib/model/commerce-returns.js.map +1 -0
  269. package/src/lib/model/commerce-shipping.d.ts +44 -1
  270. package/src/lib/model/commerce-shipping.js +53 -9
  271. package/src/lib/model/commerce-shipping.js.map +1 -1
  272. package/src/lib/model/commerce-tax-engine.d.ts +90 -0
  273. package/src/lib/model/commerce-tax-engine.js +129 -0
  274. package/src/lib/model/commerce-tax-engine.js.map +1 -0
  275. package/src/lib/model/commerce.d.ts +88 -2
  276. package/src/lib/model/commerce.js +89 -1
  277. package/src/lib/model/commerce.js.map +1 -1
  278. package/src/lib/model/index.d.ts +15 -0
  279. package/src/lib/model/index.js +15 -0
  280. package/src/lib/model/index.js.map +1 -1
  281. package/src/lib/model/order-events.d.ts +154 -0
  282. package/src/lib/model/order-events.js +153 -0
  283. package/src/lib/model/order-events.js.map +1 -0
  284. package/src/lib/model/order-fulfillment.d.ts +117 -0
  285. package/src/lib/model/order-fulfillment.js +217 -0
  286. package/src/lib/model/order-fulfillment.js.map +1 -0
  287. package/src/lib/model/order-history.d.ts +58 -0
  288. package/src/lib/model/order-history.js +22 -0
  289. package/src/lib/model/order-history.js.map +1 -0
  290. package/src/lib/model/order-list-fields.d.ts +9 -1
  291. package/src/lib/model/order-list-fields.js +7 -1
  292. package/src/lib/model/order-list-fields.js.map +1 -1
  293. package/src/lib/model/order-shipping-export.d.ts +91 -0
  294. package/src/lib/model/order-shipping-export.js +192 -0
  295. package/src/lib/model/order-shipping-export.js.map +1 -0
  296. package/src/lib/model/order-status-view.d.ts +103 -0
  297. package/src/lib/model/order-status-view.js +156 -0
  298. package/src/lib/model/order-status-view.js.map +1 -0
  299. package/src/lib/model/order-webhooks.d.ts +142 -0
  300. package/src/lib/model/order-webhooks.js +91 -0
  301. package/src/lib/model/order-webhooks.js.map +1 -0
  302. package/src/lib/model/product-channel.d.ts +56 -0
  303. package/src/lib/model/product-channel.js +86 -0
  304. package/src/lib/model/product-channel.js.map +1 -0
  305. package/src/lib/model/product-modifiers.d.ts +80 -0
  306. package/src/lib/model/product-modifiers.js +140 -0
  307. package/src/lib/model/product-modifiers.js.map +1 -0
  308. package/src/lib/model/shippingeasy.d.ts +94 -0
  309. package/src/lib/model/shippingeasy.js +267 -0
  310. package/src/lib/model/shippingeasy.js.map +1 -0
  311. package/src/lib/model/shipstation.d.ts +125 -0
  312. package/src/lib/model/shipstation.js +399 -0
  313. package/src/lib/model/shipstation.js.map +1 -0
  314. package/src/lib/model/smart-collection-reads.d.ts +32 -0
  315. package/src/lib/model/smart-collection-reads.js +63 -0
  316. package/src/lib/model/smart-collection-reads.js.map +1 -0
  317. package/src/lib/model/tracking-url.d.ts +74 -0
  318. package/src/lib/model/tracking-url.js +159 -0
  319. package/src/lib/model/tracking-url.js.map +1 -0
  320. package/src/lib/plugin-config.d.ts +13 -0
  321. package/src/lib/plugin-config.js +77 -5
  322. package/src/lib/plugin-config.js.map +1 -1
  323. package/src/lib/plugin.js +23 -0
  324. package/src/lib/plugin.js.map +1 -1
  325. package/src/lib/pos-ops-config.d.ts +39 -0
  326. package/src/lib/pos-ops-config.js +88 -0
  327. package/src/lib/pos-ops-config.js.map +1 -0
  328. package/src/lib/printing/print-document.d.ts +106 -0
  329. package/src/lib/printing/print-document.js +464 -0
  330. package/src/lib/printing/print-document.js.map +1 -0
  331. package/src/lib/printing/product-labels.d.ts +58 -0
  332. package/src/lib/printing/product-labels.js +116 -0
  333. package/src/lib/printing/product-labels.js.map +1 -0
  334. package/src/lib/printing/render-epson.d.ts +57 -0
  335. package/src/lib/printing/render-epson.js +135 -0
  336. package/src/lib/printing/render-epson.js.map +1 -0
  337. package/src/lib/printing/render-star.d.ts +45 -0
  338. package/src/lib/printing/render-star.js +100 -0
  339. package/src/lib/printing/render-star.js.map +1 -0
  340. package/src/lib/printing/render-text.d.ts +25 -0
  341. package/src/lib/printing/render-text.js +53 -0
  342. package/src/lib/printing/render-text.js.map +1 -0
  343. package/src/lib/server/api-v1/openapi.js +27 -4
  344. package/src/lib/server/api-v1/openapi.js.map +1 -1
  345. package/src/lib/server/api-v1/order-view.d.ts +67 -0
  346. package/src/lib/server/api-v1/order-view.js +120 -0
  347. package/src/lib/server/api-v1/order-view.js.map +1 -0
  348. package/src/lib/server/api-v1/orders-and-products.js +58 -65
  349. package/src/lib/server/api-v1/orders-and-products.js.map +1 -1
  350. package/src/lib/server/billing-webhook.js +135 -28
  351. package/src/lib/server/billing-webhook.js.map +1 -1
  352. package/src/lib/server/cancel-order.js +29 -0
  353. package/src/lib/server/cancel-order.js.map +1 -1
  354. package/src/lib/server/carrier-rates-availability.d.ts +26 -0
  355. package/src/lib/server/carrier-rates-availability.js +76 -0
  356. package/src/lib/server/carrier-rates-availability.js.map +1 -0
  357. package/src/lib/server/carrier-shipping.d.ts +84 -0
  358. package/src/lib/server/carrier-shipping.js +135 -0
  359. package/src/lib/server/carrier-shipping.js.map +1 -0
  360. package/src/lib/server/cart-checkout.d.ts +2 -0
  361. package/src/lib/server/cart-checkout.js +226 -22
  362. package/src/lib/server/cart-checkout.js.map +1 -1
  363. package/src/lib/server/checkout-extras.d.ts +64 -0
  364. package/src/lib/server/checkout-extras.js +157 -0
  365. package/src/lib/server/checkout-extras.js.map +1 -0
  366. package/src/lib/server/{feed.d.ts → checkout-status.d.ts} +2 -7
  367. package/src/lib/server/checkout-status.js +111 -0
  368. package/src/lib/server/checkout-status.js.map +1 -0
  369. package/src/lib/server/checkout.js +86 -9
  370. package/src/lib/server/checkout.js.map +1 -1
  371. package/src/lib/server/draft-order.js +34 -5
  372. package/src/lib/server/draft-order.js.map +1 -1
  373. package/src/lib/server/fulfill-order.d.ts +127 -10
  374. package/src/lib/server/fulfill-order.js +451 -49
  375. package/src/lib/server/fulfill-order.js.map +1 -1
  376. package/src/lib/server/legacy-feed.d.ts +28 -0
  377. package/src/lib/server/legacy-feed.js +52 -0
  378. package/src/lib/server/legacy-feed.js.map +1 -0
  379. package/src/lib/server/native-checkout.d.ts +34 -15
  380. package/src/lib/server/native-checkout.js +32 -17
  381. package/src/lib/server/native-checkout.js.map +1 -1
  382. package/src/lib/server/order-event-host-emit.d.ts +23 -0
  383. package/src/lib/server/order-event-host-emit.js +30 -0
  384. package/src/lib/server/order-event-host-emit.js.map +1 -0
  385. package/src/lib/server/order-event-triggers.d.ts +37 -0
  386. package/src/lib/server/order-event-triggers.js +119 -0
  387. package/src/lib/server/order-event-triggers.js.map +1 -0
  388. package/src/lib/server/order-events.d.ts +62 -0
  389. package/src/lib/server/order-events.js +109 -0
  390. package/src/lib/server/order-events.js.map +1 -0
  391. package/src/lib/server/order-history.d.ts +23 -0
  392. package/src/lib/server/order-history.js +65 -0
  393. package/src/lib/server/order-history.js.map +1 -0
  394. package/src/lib/server/order-notifications.d.ts +185 -0
  395. package/src/lib/server/order-notifications.js +567 -0
  396. package/src/lib/server/order-notifications.js.map +1 -0
  397. package/src/lib/server/order-receipt-send.d.ts +39 -0
  398. package/src/lib/server/order-receipt-send.js +151 -0
  399. package/src/lib/server/order-receipt-send.js.map +1 -0
  400. package/src/lib/server/order-status-token.d.ts +31 -0
  401. package/src/lib/server/order-status-token.js +75 -0
  402. package/src/lib/server/order-status-token.js.map +1 -0
  403. package/src/lib/server/order-status.d.ts +58 -0
  404. package/src/lib/server/order-status.js +141 -0
  405. package/src/lib/server/order-status.js.map +1 -0
  406. package/src/lib/server/order-webhooks.d.ts +108 -0
  407. package/src/lib/server/order-webhooks.js +622 -0
  408. package/src/lib/server/order-webhooks.js.map +1 -0
  409. package/src/lib/server/orders-shipping-prepare.d.ts +26 -0
  410. package/src/lib/server/orders-shipping-prepare.js +121 -0
  411. package/src/lib/server/orders-shipping-prepare.js.map +1 -0
  412. package/src/lib/server/payment-method-domains.d.ts +209 -0
  413. package/src/lib/server/payment-method-domains.js +444 -0
  414. package/src/lib/server/payment-method-domains.js.map +1 -0
  415. package/src/lib/server/payment-methods.d.ts +77 -0
  416. package/src/lib/server/payment-methods.js +284 -0
  417. package/src/lib/server/payment-methods.js.map +1 -0
  418. package/src/lib/server/pos-auth.d.ts +50 -0
  419. package/src/lib/server/pos-auth.js +121 -0
  420. package/src/lib/server/pos-auth.js.map +1 -0
  421. package/src/lib/server/pos-customer.d.ts +49 -0
  422. package/src/lib/server/pos-customer.js +257 -0
  423. package/src/lib/server/pos-customer.js.map +1 -0
  424. package/src/lib/server/pos-display.d.ts +57 -0
  425. package/src/lib/server/pos-display.js +419 -0
  426. package/src/lib/server/pos-display.js.map +1 -0
  427. package/src/lib/server/pos-fee-month.d.ts +34 -0
  428. package/src/lib/server/pos-fee-month.js +36 -0
  429. package/src/lib/server/pos-fee-month.js.map +1 -0
  430. package/src/lib/server/pos-ops-gate.d.ts +161 -0
  431. package/src/lib/server/pos-ops-gate.js +295 -0
  432. package/src/lib/server/pos-ops-gate.js.map +1 -0
  433. package/src/lib/server/pos-ops-routes.d.ts +22 -0
  434. package/src/lib/server/pos-ops-routes.js +36 -0
  435. package/src/lib/server/pos-ops-routes.js.map +1 -0
  436. package/src/lib/server/pos-order.d.ts +1 -18
  437. package/src/lib/server/pos-order.js +222 -42
  438. package/src/lib/server/pos-order.js.map +1 -1
  439. package/src/lib/server/pos-payment.d.ts +39 -0
  440. package/src/lib/server/pos-payment.js +922 -0
  441. package/src/lib/server/pos-payment.js.map +1 -0
  442. package/src/lib/server/pos-print.d.ts +82 -0
  443. package/src/lib/server/pos-print.js +193 -0
  444. package/src/lib/server/pos-print.js.map +1 -0
  445. package/src/lib/server/pos-readers.d.ts +27 -0
  446. package/src/lib/server/pos-readers.js +276 -0
  447. package/src/lib/server/pos-readers.js.map +1 -0
  448. package/src/lib/server/pos-refund-authority.d.ts +60 -0
  449. package/src/lib/server/pos-refund-authority.js +72 -0
  450. package/src/lib/server/pos-refund-authority.js.map +1 -0
  451. package/src/lib/server/pos-return.d.ts +58 -0
  452. package/src/lib/server/pos-return.js +891 -0
  453. package/src/lib/server/pos-return.js.map +1 -0
  454. package/src/lib/server/pos-sale-stamp.d.ts +66 -0
  455. package/src/lib/server/pos-sale-stamp.js +84 -0
  456. package/src/lib/server/pos-sale-stamp.js.map +1 -0
  457. package/src/lib/server/pos-sale.d.ts +170 -0
  458. package/src/lib/server/pos-sale.js +461 -0
  459. package/src/lib/server/pos-sale.js.map +1 -0
  460. package/src/lib/server/pos-shift.d.ts +45 -0
  461. package/src/lib/server/pos-shift.js +484 -0
  462. package/src/lib/server/pos-shift.js.map +1 -0
  463. package/src/lib/server/pos-staff-pin.d.ts +26 -0
  464. package/src/lib/server/pos-staff-pin.js +339 -0
  465. package/src/lib/server/pos-staff-pin.js.map +1 -0
  466. package/src/lib/server/pos-stripe.d.ts +91 -0
  467. package/src/lib/server/pos-stripe.js +129 -0
  468. package/src/lib/server/pos-stripe.js.map +1 -0
  469. package/src/lib/server/pos-terminal-connection-token.d.ts +48 -0
  470. package/src/lib/server/pos-terminal-connection-token.js +166 -0
  471. package/src/lib/server/pos-terminal-connection-token.js.map +1 -0
  472. package/src/lib/server/pos-terminal.d.ts +218 -0
  473. package/src/lib/server/pos-terminal.js +1014 -0
  474. package/src/lib/server/pos-terminal.js.map +1 -0
  475. package/src/lib/server/print-queue.d.ts +124 -0
  476. package/src/lib/server/print-queue.js +301 -0
  477. package/src/lib/server/print-queue.js.map +1 -0
  478. package/src/lib/server/printer-poll.d.ts +75 -0
  479. package/src/lib/server/printer-poll.js +325 -0
  480. package/src/lib/server/printer-poll.js.map +1 -0
  481. package/src/lib/server/printer-secret.d.ts +39 -0
  482. package/src/lib/server/printer-secret.js +56 -0
  483. package/src/lib/server/printer-secret.js.map +1 -0
  484. package/src/lib/server/printers.d.ts +114 -0
  485. package/src/lib/server/printers.js +546 -0
  486. package/src/lib/server/printers.js.map +1 -0
  487. package/src/lib/server/product-ai-capability.d.ts +42 -0
  488. package/src/lib/server/product-ai-capability.js +159 -0
  489. package/src/lib/server/product-ai-capability.js.map +1 -0
  490. package/src/lib/server/product-catalog.d.ts +42 -0
  491. package/src/lib/server/product-catalog.js +305 -0
  492. package/src/lib/server/product-catalog.js.map +1 -0
  493. package/src/lib/server/product-drafts.d.ts +119 -0
  494. package/src/lib/server/product-drafts.js +384 -0
  495. package/src/lib/server/product-drafts.js.map +1 -0
  496. package/src/lib/server/refund.js +110 -45
  497. package/src/lib/server/refund.js.map +1 -1
  498. package/src/lib/server/reserve.js +2 -0
  499. package/src/lib/server/reserve.js.map +1 -1
  500. package/src/lib/server/return-status-action.d.ts +37 -0
  501. package/src/lib/server/return-status-action.js +57 -0
  502. package/src/lib/server/return-status-action.js.map +1 -0
  503. package/src/lib/server/returns.d.ts +119 -0
  504. package/src/lib/server/returns.js +938 -0
  505. package/src/lib/server/returns.js.map +1 -0
  506. package/src/lib/server/shipment-records.d.ts +36 -0
  507. package/src/lib/server/shipment-records.js +289 -0
  508. package/src/lib/server/shipment-records.js.map +1 -0
  509. package/src/lib/server/shipping-connector-gates.d.ts +40 -0
  510. package/src/lib/server/shipping-connector-gates.js +97 -0
  511. package/src/lib/server/shipping-connector-gates.js.map +1 -0
  512. package/src/lib/server/shipping-connectors.d.ts +29 -0
  513. package/src/lib/server/shipping-connectors.js +236 -0
  514. package/src/lib/server/shipping-connectors.js.map +1 -0
  515. package/src/lib/server/shippingeasy.d.ts +238 -0
  516. package/src/lib/server/shippingeasy.js +787 -0
  517. package/src/lib/server/shippingeasy.js.map +1 -0
  518. package/src/lib/server/shipstation.d.ts +129 -0
  519. package/src/lib/server/shipstation.js +483 -0
  520. package/src/lib/server/shipstation.js.map +1 -0
  521. package/src/lib/server/site-page-resolver.d.ts +5 -0
  522. package/src/lib/server/site-page-resolver.js +156 -1
  523. package/src/lib/server/site-page-resolver.js.map +1 -1
  524. package/src/lib/server/stock-levels.d.ts +21 -0
  525. package/src/lib/server/stock-levels.js +263 -0
  526. package/src/lib/server/stock-levels.js.map +1 -0
  527. package/src/lib/server/stripe-refund.d.ts +47 -0
  528. package/src/lib/server/stripe-refund.js +87 -0
  529. package/src/lib/server/stripe-refund.js.map +1 -0
  530. package/src/lib/server/supplier-update.js +46 -5
  531. package/src/lib/server/supplier-update.js.map +1 -1
  532. package/src/lib/server/tax-engine-quote.d.ts +47 -0
  533. package/src/lib/server/tax-engine-quote.js +105 -0
  534. package/src/lib/server/tax-engine-quote.js.map +1 -0
  535. package/src/lib/server.js +146 -2
  536. package/src/lib/server.js.map +1 -1
  537. package/src/lib/site.js +12 -0
  538. package/src/lib/site.js.map +1 -1
  539. package/src/lib/subprocessors.d.ts +26 -0
  540. package/src/lib/subprocessors.js +50 -0
  541. package/src/lib/subprocessors.js.map +1 -0
  542. package/src/lib/tenant-emails.js +461 -3
  543. package/src/lib/tenant-emails.js.map +1 -1
  544. package/src/lib/testing/fake-firestore.d.ts +45 -0
  545. package/src/lib/testing/fake-firestore.js +189 -0
  546. package/src/lib/testing/fake-firestore.js.map +1 -0
  547. package/src/lib/testing/memory-firestore.d.ts +123 -0
  548. package/src/lib/testing/memory-firestore.js +274 -0
  549. package/src/lib/testing/memory-firestore.js.map +1 -0
  550. package/src/lib/testing/pos-ops-harness.d.ts +50 -0
  551. package/src/lib/testing/pos-ops-harness.js +184 -0
  552. package/src/lib/testing/pos-ops-harness.js.map +1 -0
  553. package/src/lib/testing/pos-ops-memory-firestore.d.ts +55 -0
  554. package/src/lib/testing/pos-ops-memory-firestore.js +376 -0
  555. package/src/lib/testing/pos-ops-memory-firestore.js.map +1 -0
  556. package/src/lib/transfer/records-transfer.d.ts +11 -1
  557. package/src/lib/transfer/records-transfer.js +127 -5
  558. package/src/lib/transfer/records-transfer.js.map +1 -1
  559. package/src/lib/transfer/records.server.d.ts +9 -2
  560. package/src/lib/transfer/records.server.js +58 -7
  561. package/src/lib/transfer/records.server.js.map +1 -1
  562. package/src/lib/transfer/register-transfer-resources.js +40 -1
  563. package/src/lib/transfer/register-transfer-resources.js.map +1 -1
  564. package/src/lib/transfer/register-transfer-ui.js +4 -1
  565. package/src/lib/transfer/register-transfer-ui.js.map +1 -1
  566. package/src/lib/transfer/shipping-presets.d.ts +23 -0
  567. package/src/lib/transfer/shipping-presets.js +156 -0
  568. package/src/lib/transfer/shipping-presets.js.map +1 -0
  569. package/src/lib/transfer/tracking-transfer.d.ts +101 -0
  570. package/src/lib/transfer/tracking-transfer.js +546 -0
  571. package/src/lib/transfer/tracking-transfer.js.map +1 -0
  572. package/src/lib/transfer/tracking.server.d.ts +37 -0
  573. package/src/lib/transfer/tracking.server.js +393 -0
  574. package/src/lib/transfer/tracking.server.js.map +1 -0
  575. package/src/lib/transfer/transfer-keys.d.ts +2 -1
  576. package/src/lib/transfer/transfer-keys.js +6 -2
  577. package/src/lib/transfer/transfer-keys.js.map +1 -1
  578. package/src/lib/utils/code128.d.ts +37 -0
  579. package/src/lib/utils/code128.js +199 -0
  580. package/src/lib/utils/code128.js.map +1 -0
  581. package/src/lib/utils/order-invoice.d.ts +55 -0
  582. package/src/lib/utils/order-invoice.js +127 -0
  583. package/src/lib/utils/order-invoice.js.map +1 -0
  584. package/src/lib/utils/use-checkout-return-notice.d.ts +34 -0
  585. package/src/lib/utils/use-checkout-return-notice.js +78 -0
  586. package/src/lib/utils/use-checkout-return-notice.js.map +1 -0
  587. package/src/lib/utils/use-storefront-purchase-event.js +4 -0
  588. package/src/lib/utils/use-storefront-purchase-event.js.map +1 -1
  589. package/src/lib/server/feed.js +0 -69
  590. package/src/lib/server/feed.js.map +0 -1
@@ -0,0 +1,576 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ /**
5
+ * @license
6
+ * Copyright 2026 Aglyn LLC
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */ import * as Aglyn from "@aglyn/aglyn";
20
+ import { mdiPackageVariantClosed } from "@aglyn/shared-data-mdi";
21
+ import Alert from "@mui/material/Alert";
22
+ import Box from "@mui/material/Box";
23
+ import Button from "@mui/material/Button";
24
+ import Chip from "@mui/material/Chip";
25
+ import CircularProgress from "@mui/material/CircularProgress";
26
+ import Divider from "@mui/material/Divider";
27
+ import MuiLink from "@mui/material/Link";
28
+ import Stack from "@mui/material/Stack";
29
+ import TextField from "@mui/material/TextField";
30
+ import Typography from "@mui/material/Typography";
31
+ import { forwardRef, useCallback, useEffect, useMemo, useState } from "react";
32
+ import { BUNDLE_ID } from "../constants/bundle-common.js";
33
+ import { RETURN_REQUEST_COMPONENT_ID } from "../constants/return-request.js";
34
+ import { RETURN_NOTE_MAX, RETURN_STATUS_COLOR, RETURN_STATUS_LABELS } from "../model/commerce-returns.js";
35
+ import { generatePresetId } from "../utils/generate-preset-id.js";
36
+ // Component ids are persisted in screen documents; never rename.
37
+ export const ID = RETURN_REQUEST_COMPONENT_ID;
38
+ const ENDPOINT = '/api/commerce/return-request';
39
+ const longDate = (ms)=>new Date(ms).toLocaleDateString('en-US', {
40
+ month: 'long',
41
+ day: 'numeric',
42
+ year: 'numeric'
43
+ });
44
+ const lineName = (line)=>line ? line.variantLabel ? `${line.name} (${line.variantLabel})` : line.name : 'Item';
45
+ /**
46
+ * Request a return (AGL-3611): the buyer picks what goes back, how many and
47
+ * why, from an order they hold the signed status link for or that their
48
+ * site-member session owns. The order is read after hydration, never into
49
+ * the server-rendered page — the page is the same for every visitor and the
50
+ * order is not.
51
+ */ const ReturnRequest = /*#__PURE__*/ forwardRef((props, ref)=>{
52
+ const { heading } = props, rest = _object_without_properties_loose(props, [
53
+ "heading"
54
+ ]);
55
+ // Node styles ride the renderer-merged sx; recompose (stack.ts pattern).
56
+ const nodeSx = Array.isArray(props['sx']) ? props['sx'] : [
57
+ props['sx']
58
+ ];
59
+ const { hostId } = Aglyn.useSite();
60
+ const siteFetch = Aglyn.useSiteFetch();
61
+ const [order, setOrder] = useState(null);
62
+ const [state, setState] = useState({
63
+ phase: 'loading'
64
+ });
65
+ const [quantities, setQuantities] = useState({});
66
+ const [reasons, setReasons] = useState({});
67
+ const [note, setNote] = useState('');
68
+ const [submitting, setSubmitting] = useState(false);
69
+ const [submitError, setSubmitError] = useState('');
70
+ const [submitted, setSubmitted] = useState(false);
71
+ useEffect(()=>{
72
+ var _params_get, _params_get1;
73
+ const params = new URLSearchParams(window.location.search);
74
+ const orderId = (_params_get = params.get('o')) != null ? _params_get : '';
75
+ if (!orderId) {
76
+ setState({
77
+ phase: 'no-order'
78
+ });
79
+ return;
80
+ }
81
+ setOrder({
82
+ orderId,
83
+ token: (_params_get1 = params.get('t')) != null ? _params_get1 : ''
84
+ });
85
+ }, []);
86
+ const load = useCallback(async ()=>{
87
+ if (!hostId || !order) return;
88
+ try {
89
+ const query = new URLSearchParams({
90
+ hostId,
91
+ orderId: order.orderId
92
+ });
93
+ if (order.token) query.set('t', order.token);
94
+ const response = await siteFetch(`${ENDPOINT}?${query.toString()}`);
95
+ const payload = await response.json().catch(()=>({}));
96
+ if (!response.ok) {
97
+ var _ref;
98
+ setState({
99
+ phase: 'error',
100
+ message: String((_ref = payload == null ? void 0 : payload.error) != null ? _ref : 'We could not load this order.')
101
+ });
102
+ return;
103
+ }
104
+ setState({
105
+ phase: 'ready',
106
+ data: payload
107
+ });
108
+ } catch (unused) {
109
+ setState({
110
+ phase: 'error',
111
+ message: 'We could not load this order. Please try again.'
112
+ });
113
+ }
114
+ }, [
115
+ hostId,
116
+ order,
117
+ siteFetch
118
+ ]);
119
+ useEffect(()=>{
120
+ void load();
121
+ }, [
122
+ load
123
+ ]);
124
+ const chosen = useMemo(()=>state.phase === 'ready' ? state.data.lines.filter((line)=>{
125
+ var _quantities_line_lineItemId;
126
+ return ((_quantities_line_lineItemId = quantities[line.lineItemId]) != null ? _quantities_line_lineItemId : 0) > 0;
127
+ }) : [], [
128
+ state,
129
+ quantities
130
+ ]);
131
+ const missingReason = chosen.some((line)=>!reasons[line.lineItemId]);
132
+ const handleSubmit = useCallback(async ()=>{
133
+ if (!hostId || !order || submitting || chosen.length === 0 || missingReason) return;
134
+ setSubmitting(true);
135
+ setSubmitError('');
136
+ try {
137
+ const response = await siteFetch(ENDPOINT, {
138
+ method: 'POST',
139
+ headers: {
140
+ 'Content-Type': 'application/json'
141
+ },
142
+ body: JSON.stringify(_extends({
143
+ hostId,
144
+ orderId: order.orderId
145
+ }, order.token ? {
146
+ t: order.token
147
+ } : {}, {
148
+ lines: chosen.map((line)=>({
149
+ lineItemId: line.lineItemId,
150
+ quantity: quantities[line.lineItemId],
151
+ reason: reasons[line.lineItemId]
152
+ }))
153
+ }, note.trim() ? {
154
+ note: note.trim()
155
+ } : {}))
156
+ });
157
+ const payload = await response.json().catch(()=>({}));
158
+ if (!response.ok) {
159
+ var _ref;
160
+ setSubmitError(String((_ref = payload == null ? void 0 : payload.error) != null ? _ref : 'Your return could not be requested. Please try again.'));
161
+ return;
162
+ }
163
+ setSubmitted(true);
164
+ setQuantities({});
165
+ setReasons({});
166
+ setNote('');
167
+ await load();
168
+ } catch (unused) {
169
+ setSubmitError('Your return could not be requested. Please try again.');
170
+ } finally{
171
+ setSubmitting(false);
172
+ }
173
+ }, [
174
+ hostId,
175
+ order,
176
+ submitting,
177
+ chosen,
178
+ missingReason,
179
+ siteFetch,
180
+ quantities,
181
+ reasons,
182
+ note,
183
+ load
184
+ ]);
185
+ const title = /*#__PURE__*/ _jsx(Typography, {
186
+ variant: "h4",
187
+ component: "h1",
188
+ gutterBottom: true,
189
+ children: heading || 'Request a return'
190
+ });
191
+ if (!hostId) {
192
+ return /*#__PURE__*/ _jsx(Box, _extends({
193
+ ref: ref
194
+ }, rest, {
195
+ sx: [
196
+ {
197
+ p: 3,
198
+ border: 1,
199
+ borderStyle: 'dashed',
200
+ borderColor: 'divider',
201
+ borderRadius: 1
202
+ },
203
+ ...nodeSx
204
+ ],
205
+ children: /*#__PURE__*/ _jsx(Typography, {
206
+ variant: "body2",
207
+ color: "text.secondary",
208
+ children: 'Request a return — the buyer’s order and return form render here'
209
+ })
210
+ }));
211
+ }
212
+ if (state.phase === 'loading') {
213
+ return /*#__PURE__*/ _jsxs(Box, _extends({
214
+ ref: ref
215
+ }, rest, {
216
+ sx: nodeSx,
217
+ children: [
218
+ title,
219
+ /*#__PURE__*/ _jsx(Box, {
220
+ sx: {
221
+ display: 'flex',
222
+ justifyContent: 'center',
223
+ py: 4
224
+ },
225
+ children: /*#__PURE__*/ _jsx(CircularProgress, {
226
+ size: 32,
227
+ "aria-label": "Loading your order"
228
+ })
229
+ })
230
+ ]
231
+ }));
232
+ }
233
+ if (state.phase === 'no-order' || state.phase === 'error') {
234
+ return /*#__PURE__*/ _jsxs(Box, _extends({
235
+ ref: ref
236
+ }, rest, {
237
+ sx: nodeSx,
238
+ children: [
239
+ title,
240
+ /*#__PURE__*/ _jsx(Alert, {
241
+ severity: state.phase === 'error' ? 'error' : 'info',
242
+ children: state.phase === 'error' ? state.message : 'Open this page from the orders in your account.'
243
+ })
244
+ ]
245
+ }));
246
+ }
247
+ const { data } = state;
248
+ const byLine = new Map(data.lines.map((line)=>[
249
+ line.lineItemId,
250
+ line
251
+ ]));
252
+ const anyReturnable = data.lines.some((line)=>line.returnable > 0);
253
+ const canRequest = data.enabled && data.windowOpen && anyReturnable;
254
+ return /*#__PURE__*/ _jsxs(Box, _extends({
255
+ ref: ref
256
+ }, rest, {
257
+ sx: [
258
+ {
259
+ display: 'flex',
260
+ flexDirection: 'column',
261
+ gap: 3
262
+ },
263
+ ...nodeSx
264
+ ],
265
+ children: [
266
+ /*#__PURE__*/ _jsxs(Box, {
267
+ children: [
268
+ title,
269
+ data.windowEndsAtMs !== null && data.enabled ? /*#__PURE__*/ _jsx(Typography, {
270
+ variant: "body2",
271
+ color: "text.secondary",
272
+ children: data.windowOpen ? `Returns are accepted until ${longDate(data.windowEndsAtMs)}.` : `The return window for this order closed on ${longDate(data.windowEndsAtMs)}.`
273
+ }) : null
274
+ ]
275
+ }),
276
+ submitted ? /*#__PURE__*/ _jsx(Alert, {
277
+ severity: "success",
278
+ children: 'Your return request was sent. The store will review it and email you with the next steps.'
279
+ }) : null,
280
+ data.returns.length > 0 ? /*#__PURE__*/ _jsxs(Stack, {
281
+ spacing: 1.5,
282
+ children: [
283
+ /*#__PURE__*/ _jsx(Divider, {
284
+ textAlign: "left",
285
+ children: 'Your returns'
286
+ }),
287
+ data.returns.map((entry)=>{
288
+ var _RETURN_STATUS_LABELS_entry_status, _RETURN_STATUS_COLOR_entry_status;
289
+ var _entry_returnLabel;
290
+ return /*#__PURE__*/ _jsxs(Box, {
291
+ sx: {
292
+ display: 'flex',
293
+ flexDirection: 'column',
294
+ gap: 0.5
295
+ },
296
+ children: [
297
+ /*#__PURE__*/ _jsxs(Box, {
298
+ sx: {
299
+ display: 'flex',
300
+ alignItems: 'center',
301
+ gap: 1,
302
+ flexWrap: 'wrap'
303
+ },
304
+ children: [
305
+ /*#__PURE__*/ _jsx(Typography, {
306
+ variant: "body2",
307
+ sx: {
308
+ flex: 1,
309
+ minWidth: 0
310
+ },
311
+ children: entry.lines.map((line)=>`${line.quantity}× ${lineName(byLine.get(line.lineItemId))}`).join(', ')
312
+ }),
313
+ /*#__PURE__*/ _jsx(Chip, {
314
+ label: (_RETURN_STATUS_LABELS_entry_status = RETURN_STATUS_LABELS[entry.status]) != null ? _RETURN_STATUS_LABELS_entry_status : entry.status,
315
+ color: (_RETURN_STATUS_COLOR_entry_status = RETURN_STATUS_COLOR[entry.status]) != null ? _RETURN_STATUS_COLOR_entry_status : 'default',
316
+ size: "small",
317
+ variant: "outlined"
318
+ })
319
+ ]
320
+ }),
321
+ /*#__PURE__*/ _jsx(Typography, {
322
+ variant: "caption",
323
+ color: "text.secondary",
324
+ children: `Requested ${longDate(entry.createdAtMs)}`
325
+ }),
326
+ ((_entry_returnLabel = entry.returnLabel) == null ? void 0 : _entry_returnLabel.labelUrl) ? /*#__PURE__*/ _jsxs(Typography, {
327
+ variant: "body2",
328
+ children: [
329
+ /*#__PURE__*/ _jsx(MuiLink, {
330
+ href: entry.returnLabel.labelUrl,
331
+ target: "_blank",
332
+ rel: "noopener noreferrer",
333
+ children: 'Print your return label'
334
+ }),
335
+ entry.returnLabel.trackingNumber ? ` · ${[
336
+ entry.returnLabel.carrier,
337
+ entry.returnLabel.trackingNumber
338
+ ].filter(Boolean).join(' ')}` : ''
339
+ ]
340
+ }) : null,
341
+ entry.status === 'declined' && entry.merchantNote ? /*#__PURE__*/ _jsx(Alert, {
342
+ severity: "info",
343
+ variant: "outlined",
344
+ children: `From the store: ${entry.merchantNote}`
345
+ }) : null
346
+ ]
347
+ }, entry.id);
348
+ })
349
+ ]
350
+ }) : null,
351
+ !data.enabled ? /*#__PURE__*/ _jsx(Alert, {
352
+ severity: "info",
353
+ children: 'This store does not take return requests online. Contact the store instead.'
354
+ }) : !data.windowOpen ? /*#__PURE__*/ _jsx(Alert, {
355
+ severity: "info",
356
+ children: 'The return window for this order has closed. Contact the store if you need help.'
357
+ }) : !anyReturnable ? /*#__PURE__*/ _jsx(Alert, {
358
+ severity: "info",
359
+ children: 'Nothing on this order can be returned right now.'
360
+ }) : null,
361
+ canRequest ? /*#__PURE__*/ _jsxs(Stack, {
362
+ spacing: 2,
363
+ component: "form",
364
+ onSubmit: (event)=>{
365
+ event.preventDefault();
366
+ void handleSubmit();
367
+ },
368
+ children: [
369
+ /*#__PURE__*/ _jsx(Divider, {
370
+ textAlign: "left",
371
+ children: 'Choose items to return'
372
+ }),
373
+ data.lines.map((line)=>{
374
+ var _quantities_line_lineItemId, _reasons_line_lineItemId;
375
+ const name = lineName(line);
376
+ const quantity = (_quantities_line_lineItemId = quantities[line.lineItemId]) != null ? _quantities_line_lineItemId : 0;
377
+ const blocked = line.returnable === 0;
378
+ const setQuantity = (next)=>setQuantities((prev)=>_extends({}, prev, {
379
+ [line.lineItemId]: Math.max(0, Math.min(line.returnable, next))
380
+ }));
381
+ return /*#__PURE__*/ _jsxs(Box, {
382
+ "data-line": line.lineItemId,
383
+ sx: {
384
+ display: 'flex',
385
+ flexDirection: 'column',
386
+ gap: 1
387
+ },
388
+ children: [
389
+ /*#__PURE__*/ _jsxs(Box, {
390
+ sx: {
391
+ display: 'flex',
392
+ alignItems: 'center',
393
+ gap: 1,
394
+ flexWrap: 'wrap'
395
+ },
396
+ children: [
397
+ /*#__PURE__*/ _jsxs(Box, {
398
+ sx: {
399
+ flex: 1,
400
+ minWidth: 160
401
+ },
402
+ children: [
403
+ /*#__PURE__*/ _jsx(Typography, {
404
+ variant: "body1",
405
+ color: blocked ? 'text.disabled' : 'text.primary',
406
+ children: name
407
+ }),
408
+ line.blocked ? /*#__PURE__*/ _jsx(Typography, {
409
+ variant: "caption",
410
+ color: "text.secondary",
411
+ children: line.blocked
412
+ }) : /*#__PURE__*/ _jsx(Typography, {
413
+ variant: "caption",
414
+ color: "text.secondary",
415
+ children: `Up to ${line.returnable} can be returned`
416
+ })
417
+ ]
418
+ }),
419
+ /*#__PURE__*/ _jsxs(Box, {
420
+ sx: {
421
+ display: 'flex',
422
+ alignItems: 'center',
423
+ gap: 1
424
+ },
425
+ children: [
426
+ /*#__PURE__*/ _jsx(Button, {
427
+ variant: "outlined",
428
+ size: "small",
429
+ "aria-label": `Fewer of ${name}`,
430
+ disabled: blocked || quantity <= 0,
431
+ onClick: ()=>setQuantity(quantity - 1),
432
+ sx: {
433
+ minWidth: 0
434
+ },
435
+ children: '−'
436
+ }),
437
+ /*#__PURE__*/ _jsx(Typography, {
438
+ variant: "body1",
439
+ "aria-live": "polite",
440
+ sx: {
441
+ minWidth: 24,
442
+ textAlign: 'center'
443
+ },
444
+ children: quantity
445
+ }),
446
+ /*#__PURE__*/ _jsx(Button, {
447
+ variant: "outlined",
448
+ size: "small",
449
+ "aria-label": `More of ${name}`,
450
+ disabled: blocked || quantity >= line.returnable,
451
+ onClick: ()=>setQuantity(quantity + 1),
452
+ sx: {
453
+ minWidth: 0
454
+ },
455
+ children: '+'
456
+ })
457
+ ]
458
+ })
459
+ ]
460
+ }),
461
+ /*#__PURE__*/ _jsxs(TextField, {
462
+ select: true,
463
+ size: "small",
464
+ label: `Reason for returning ${name}`,
465
+ value: (_reasons_line_lineItemId = reasons[line.lineItemId]) != null ? _reasons_line_lineItemId : '',
466
+ disabled: blocked || quantity === 0,
467
+ required: quantity > 0,
468
+ onChange: (event)=>setReasons((prev)=>_extends({}, prev, {
469
+ [line.lineItemId]: event.target.value
470
+ })),
471
+ slotProps: {
472
+ select: {
473
+ native: true
474
+ },
475
+ inputLabel: {
476
+ shrink: true
477
+ }
478
+ },
479
+ sx: {
480
+ maxWidth: 360
481
+ },
482
+ children: [
483
+ /*#__PURE__*/ _jsx("option", {
484
+ value: "",
485
+ children: 'Choose a reason'
486
+ }),
487
+ data.reasons.map((reason)=>/*#__PURE__*/ _jsx("option", {
488
+ value: reason.value,
489
+ children: reason.label
490
+ }, reason.value))
491
+ ]
492
+ })
493
+ ]
494
+ }, line.lineItemId);
495
+ }),
496
+ /*#__PURE__*/ _jsx(TextField, {
497
+ label: "Anything the store should know? (optional)",
498
+ multiline: true,
499
+ minRows: 3,
500
+ value: note,
501
+ onChange: (event)=>setNote(event.target.value.slice(0, RETURN_NOTE_MAX)),
502
+ slotProps: {
503
+ htmlInput: {
504
+ maxLength: RETURN_NOTE_MAX
505
+ }
506
+ },
507
+ helperText: `${note.length}/${RETURN_NOTE_MAX}`
508
+ }),
509
+ submitError ? /*#__PURE__*/ _jsx(Alert, {
510
+ severity: "error",
511
+ children: submitError
512
+ }) : null,
513
+ /*#__PURE__*/ _jsx(Box, {
514
+ children: /*#__PURE__*/ _jsx(Button, {
515
+ type: "submit",
516
+ variant: "contained",
517
+ color: "primary",
518
+ disabled: submitting || chosen.length === 0 || missingReason,
519
+ children: submitting ? 'Sending…' : 'Request return'
520
+ })
521
+ })
522
+ ]
523
+ }) : null
524
+ ]
525
+ }));
526
+ });
527
+ ReturnRequest.displayName = 'AglynReturnRequest';
528
+ export const schema = {
529
+ $id: ID,
530
+ pluginId: BUNDLE_ID,
531
+ displayName: 'Return request',
532
+ description: 'The buyer’s return form for one order, opened from their account or the order’s status page.',
533
+ category: Aglyn.ComponentCategory.COMMERCE,
534
+ icon: {
535
+ path: mdiPackageVariantClosed.path,
536
+ sx: {
537
+ color: 'success.dark'
538
+ }
539
+ },
540
+ flags: {
541
+ selfClosing: Aglyn.FEATURE_FLAG.ENABLED
542
+ },
543
+ attributes: [
544
+ {
545
+ name: 'heading',
546
+ label: 'Heading',
547
+ description: 'Defaults to "Request a return".',
548
+ component: Aglyn.FieldComponentType.TEXT_FIELD
549
+ }
550
+ ]
551
+ };
552
+ export const presets = [
553
+ {
554
+ $id: generatePresetId(ID),
555
+ type: Aglyn.NodeType.PRESET,
556
+ displayName: 'Return request',
557
+ pluginId: BUNDLE_ID,
558
+ description: 'The buyer’s return form for one order',
559
+ category: Aglyn.ComponentCategory.COMMERCE,
560
+ icon: {
561
+ path: mdiPackageVariantClosed.path,
562
+ sx: {
563
+ color: 'success.dark'
564
+ }
565
+ },
566
+ data: {
567
+ $id: null,
568
+ componentId: ID,
569
+ pluginId: BUNDLE_ID,
570
+ props: {}
571
+ }
572
+ }
573
+ ];
574
+ export default ReturnRequest;
575
+
576
+ //# sourceMappingURL=return-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/plugins/commerce/src/lib/components/return-request.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as Aglyn from '@aglyn/aglyn'\nimport { mdiPackageVariantClosed } from '@aglyn/shared-data-mdi'\nimport Alert from '@mui/material/Alert'\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport Chip from '@mui/material/Chip'\nimport CircularProgress from '@mui/material/CircularProgress'\nimport Divider from '@mui/material/Divider'\nimport MuiLink from '@mui/material/Link'\nimport Stack from '@mui/material/Stack'\nimport TextField from '@mui/material/TextField'\nimport Typography from '@mui/material/Typography'\nimport { forwardRef, useCallback, useEffect, useMemo, useState, type FormEvent } from 'react'\nimport { BUNDLE_ID } from '../constants/bundle-common'\nimport { RETURN_REQUEST_COMPONENT_ID } from '../constants/return-request'\nimport {\n RETURN_NOTE_MAX,\n RETURN_STATUS_COLOR,\n RETURN_STATUS_LABELS,\n type ReturnableLine,\n type ReturnStatus,\n} from '../model/commerce-returns'\nimport { generatePresetId } from '../utils/generate-preset-id'\n\n// Component ids are persisted in screen documents; never rename.\nexport const ID: Aglyn.ComponentId = RETURN_REQUEST_COMPONENT_ID\n\nexport interface ReturnRequestProps {\n heading?: string\n}\n\n/** `GET /api/commerce/return-request`, as the buyer's door answers it. */\ninterface ReturnRequestData {\n enabled: boolean\n windowEndsAtMs: number | null\n windowOpen: boolean\n lines: ReturnableLine[]\n reasons: Array<{ value: string; label: string }>\n returns: Array<{\n id: string\n status: ReturnStatus\n lines: Array<{ lineItemId: number; quantity: number; reason: string }>\n createdAtMs: number\n returnLabel?: { labelUrl: string; carrier?: string; trackingNumber?: string }\n merchantNote?: string\n }>\n}\n\ntype LoadState =\n | { phase: 'loading' }\n | { phase: 'no-order' }\n | { phase: 'error'; message: string }\n | { phase: 'ready'; data: ReturnRequestData }\n\nconst ENDPOINT = '/api/commerce/return-request'\n\nconst longDate = (ms: number) =>\n new Date(ms).toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n })\n\nconst lineName = (line: Pick<ReturnableLine, 'name' | 'variantLabel'> | undefined) =>\n line ? (line.variantLabel ? `${line.name} (${line.variantLabel})` : line.name) : 'Item'\n\n/**\n * Request a return (AGL-3611): the buyer picks what goes back, how many and\n * why, from an order they hold the signed status link for or that their\n * site-member session owns. The order is read after hydration, never into\n * the server-rendered page — the page is the same for every visitor and the\n * order is not.\n */\nconst ReturnRequest = forwardRef<HTMLDivElement, ReturnRequestProps>((props, ref) => {\n const { heading, ...rest } = props\n // Node styles ride the renderer-merged sx; recompose (stack.ts pattern).\n const nodeSx = Array.isArray(props['sx']) ? props['sx'] : [props['sx']]\n const { hostId } = Aglyn.useSite()\n const siteFetch = Aglyn.useSiteFetch()\n const [order, setOrder] = useState<{ orderId: string; token: string } | null>(null)\n const [state, setState] = useState<LoadState>({ phase: 'loading' })\n const [quantities, setQuantities] = useState<Record<number, number>>({})\n const [reasons, setReasons] = useState<Record<number, string>>({})\n const [note, setNote] = useState('')\n const [submitting, setSubmitting] = useState(false)\n const [submitError, setSubmitError] = useState('')\n const [submitted, setSubmitted] = useState(false)\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search)\n const orderId = params.get('o') ?? ''\n if (!orderId) {\n setState({ phase: 'no-order' })\n return\n }\n setOrder({ orderId, token: params.get('t') ?? '' })\n }, [])\n\n const load = useCallback(async () => {\n if (!hostId || !order) return\n try {\n const query = new URLSearchParams({ hostId, orderId: order.orderId })\n if (order.token) query.set('t', order.token)\n const response = await siteFetch(`${ENDPOINT}?${query.toString()}`)\n const payload = await response.json().catch(() => ({}))\n if (!response.ok) {\n setState({\n phase: 'error',\n message: String(payload?.error ?? 'We could not load this order.'),\n })\n return\n }\n setState({ phase: 'ready', data: payload as ReturnRequestData })\n } catch {\n setState({ phase: 'error', message: 'We could not load this order. Please try again.' })\n }\n }, [hostId, order, siteFetch])\n\n useEffect(() => {\n void load()\n }, [load])\n\n const chosen = useMemo(\n () =>\n state.phase === 'ready'\n ? state.data.lines.filter((line) => (quantities[line.lineItemId] ?? 0) > 0)\n : [],\n [state, quantities],\n )\n const missingReason = chosen.some((line) => !reasons[line.lineItemId])\n\n const handleSubmit = useCallback(async () => {\n if (!hostId || !order || submitting || chosen.length === 0 || missingReason) return\n setSubmitting(true)\n setSubmitError('')\n try {\n const response = await siteFetch(ENDPOINT, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n hostId,\n orderId: order.orderId,\n ...(order.token ? { t: order.token } : {}),\n lines: chosen.map((line) => ({\n lineItemId: line.lineItemId,\n quantity: quantities[line.lineItemId],\n reason: reasons[line.lineItemId],\n })),\n ...(note.trim() ? { note: note.trim() } : {}),\n }),\n })\n const payload = await response.json().catch(() => ({}))\n if (!response.ok) {\n setSubmitError(\n String(payload?.error ?? 'Your return could not be requested. Please try again.'),\n )\n return\n }\n setSubmitted(true)\n setQuantities({})\n setReasons({})\n setNote('')\n await load()\n } catch {\n setSubmitError('Your return could not be requested. Please try again.')\n } finally {\n setSubmitting(false)\n }\n }, [hostId, order, submitting, chosen, missingReason, siteFetch, quantities, reasons, note, load])\n\n const title = (\n <Typography variant=\"h4\" component=\"h1\" gutterBottom>\n {heading || 'Request a return'}\n </Typography>\n )\n\n if (!hostId) {\n return (\n <Box\n ref={ref}\n {...rest}\n sx={[{ p: 3, border: 1, borderStyle: 'dashed', borderColor: 'divider', borderRadius: 1 }, ...nodeSx]}\n >\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Request a return — the buyer’s order and return form render here'}\n </Typography>\n </Box>\n )\n }\n\n if (state.phase === 'loading') {\n return (\n <Box ref={ref} {...rest} sx={nodeSx}>\n {title}\n <Box sx={{ display: 'flex', justifyContent: 'center', py: 4 }}>\n <CircularProgress size={32} aria-label=\"Loading your order\" />\n </Box>\n </Box>\n )\n }\n\n if (state.phase === 'no-order' || state.phase === 'error') {\n return (\n <Box ref={ref} {...rest} sx={nodeSx}>\n {title}\n <Alert severity={state.phase === 'error' ? 'error' : 'info'}>\n {state.phase === 'error'\n ? state.message\n : 'Open this page from the orders in your account.'}\n </Alert>\n </Box>\n )\n }\n\n const { data } = state\n const byLine = new Map(data.lines.map((line) => [line.lineItemId, line]))\n const anyReturnable = data.lines.some((line) => line.returnable > 0)\n const canRequest = data.enabled && data.windowOpen && anyReturnable\n\n return (\n <Box ref={ref} {...rest} sx={[{ display: 'flex', flexDirection: 'column', gap: 3 }, ...nodeSx]}>\n <Box>\n {title}\n {data.windowEndsAtMs !== null && data.enabled ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {data.windowOpen\n ? `Returns are accepted until ${longDate(data.windowEndsAtMs)}.`\n : `The return window for this order closed on ${longDate(data.windowEndsAtMs)}.`}\n </Typography>\n ) : null}\n </Box>\n\n {submitted ? (\n <Alert severity=\"success\">\n {'Your return request was sent. The store will review it and email you with the next steps.'}\n </Alert>\n ) : null}\n\n {data.returns.length > 0 ? (\n <Stack spacing={1.5}>\n <Divider textAlign=\"left\">{'Your returns'}</Divider>\n {data.returns.map((entry) => (\n <Box key={entry.id} sx={{ display: 'flex', flexDirection: 'column', gap: 0.5 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, flexWrap: 'wrap' }}>\n <Typography variant=\"body2\" sx={{ flex: 1, minWidth: 0 }}>\n {entry.lines\n .map((line) => `${line.quantity}× ${lineName(byLine.get(line.lineItemId))}`)\n .join(', ')}\n </Typography>\n <Chip\n label={RETURN_STATUS_LABELS[entry.status] ?? entry.status}\n color={RETURN_STATUS_COLOR[entry.status] ?? 'default'}\n size=\"small\"\n variant=\"outlined\"\n />\n </Box>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {`Requested ${longDate(entry.createdAtMs)}`}\n </Typography>\n {entry.returnLabel?.labelUrl ? (\n <Typography variant=\"body2\">\n <MuiLink href={entry.returnLabel.labelUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n {'Print your return label'}\n </MuiLink>\n {entry.returnLabel.trackingNumber\n ? ` · ${[entry.returnLabel.carrier, entry.returnLabel.trackingNumber].filter(Boolean).join(' ')}`\n : ''}\n </Typography>\n ) : null}\n {entry.status === 'declined' && entry.merchantNote ? (\n <Alert severity=\"info\" variant=\"outlined\">\n {`From the store: ${entry.merchantNote}`}\n </Alert>\n ) : null}\n </Box>\n ))}\n </Stack>\n ) : null}\n\n {!data.enabled ? (\n <Alert severity=\"info\">\n {'This store does not take return requests online. Contact the store instead.'}\n </Alert>\n ) : !data.windowOpen ? (\n <Alert severity=\"info\">\n {'The return window for this order has closed. Contact the store if you need help.'}\n </Alert>\n ) : !anyReturnable ? (\n <Alert severity=\"info\">{'Nothing on this order can be returned right now.'}</Alert>\n ) : null}\n\n {canRequest ? (\n <Stack\n spacing={2}\n component=\"form\"\n onSubmit={(event: FormEvent) => {\n event.preventDefault()\n void handleSubmit()\n }}\n >\n <Divider textAlign=\"left\">{'Choose items to return'}</Divider>\n {data.lines.map((line) => {\n const name = lineName(line)\n const quantity = quantities[line.lineItemId] ?? 0\n const blocked = line.returnable === 0\n const setQuantity = (next: number) =>\n setQuantities((prev) => ({\n ...prev,\n [line.lineItemId]: Math.max(0, Math.min(line.returnable, next)),\n }))\n return (\n <Box\n key={line.lineItemId}\n data-line={line.lineItemId}\n sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, flexWrap: 'wrap' }}>\n <Box sx={{ flex: 1, minWidth: 160 }}>\n <Typography variant=\"body1\" color={blocked ? 'text.disabled' : 'text.primary'}>\n {name}\n </Typography>\n {line.blocked ? (\n <Typography variant=\"caption\" color=\"text.secondary\">\n {line.blocked}\n </Typography>\n ) : (\n <Typography variant=\"caption\" color=\"text.secondary\">\n {`Up to ${line.returnable} can be returned`}\n </Typography>\n )}\n </Box>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n aria-label={`Fewer of ${name}`}\n disabled={blocked || quantity <= 0}\n onClick={() => setQuantity(quantity - 1)}\n sx={{ minWidth: 0 }}\n >\n {'−'}\n </Button>\n <Typography\n variant=\"body1\"\n aria-live=\"polite\"\n sx={{ minWidth: 24, textAlign: 'center' }}\n >\n {quantity}\n </Typography>\n <Button\n variant=\"outlined\"\n size=\"small\"\n aria-label={`More of ${name}`}\n disabled={blocked || quantity >= line.returnable}\n onClick={() => setQuantity(quantity + 1)}\n sx={{ minWidth: 0 }}\n >\n {'+'}\n </Button>\n </Box>\n </Box>\n <TextField\n select\n size=\"small\"\n label={`Reason for returning ${name}`}\n value={reasons[line.lineItemId] ?? ''}\n disabled={blocked || quantity === 0}\n required={quantity > 0}\n onChange={(event) =>\n setReasons((prev) => ({ ...prev, [line.lineItemId]: event.target.value }))\n }\n slotProps={{ select: { native: true }, inputLabel: { shrink: true } }}\n sx={{ maxWidth: 360 }}\n >\n <option value=\"\">{'Choose a reason'}</option>\n {data.reasons.map((reason) => (\n <option key={reason.value} value={reason.value}>\n {reason.label}\n </option>\n ))}\n </TextField>\n </Box>\n )\n })}\n <TextField\n label=\"Anything the store should know? (optional)\"\n multiline\n minRows={3}\n value={note}\n onChange={(event) => setNote(event.target.value.slice(0, RETURN_NOTE_MAX))}\n slotProps={{ htmlInput: { maxLength: RETURN_NOTE_MAX } }}\n helperText={`${note.length}/${RETURN_NOTE_MAX}`}\n />\n {submitError ? <Alert severity=\"error\">{submitError}</Alert> : null}\n <Box>\n <Button\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n disabled={submitting || chosen.length === 0 || missingReason}\n >\n {submitting ? 'Sending…' : 'Request return'}\n </Button>\n </Box>\n </Stack>\n ) : null}\n </Box>\n )\n})\nReturnRequest.displayName = 'AglynReturnRequest'\n\nexport const schema: Aglyn.ComponentSchema<ReturnRequestProps> = {\n $id: ID,\n pluginId: BUNDLE_ID,\n displayName: 'Return request',\n description:\n 'The buyer’s return form for one order, opened from their account or the order’s status page.',\n category: Aglyn.ComponentCategory.COMMERCE,\n icon: { path: mdiPackageVariantClosed.path, sx: { color: 'success.dark' } },\n flags: { selfClosing: Aglyn.FEATURE_FLAG.ENABLED },\n attributes: [\n {\n name: 'heading',\n label: 'Heading',\n description: 'Defaults to \"Request a return\".',\n component: Aglyn.FieldComponentType.TEXT_FIELD,\n },\n ],\n}\n\nexport const presets: Aglyn.PresetSchema[] = [\n {\n $id: generatePresetId(ID),\n type: Aglyn.NodeType.PRESET,\n displayName: 'Return request',\n pluginId: BUNDLE_ID,\n description: 'The buyer’s return form for one order',\n category: Aglyn.ComponentCategory.COMMERCE,\n icon: { path: mdiPackageVariantClosed.path, sx: { color: 'success.dark' } },\n data: {\n $id: null,\n componentId: ID,\n pluginId: BUNDLE_ID,\n props: {},\n },\n },\n]\n\nexport default ReturnRequest\n"],"names":["Aglyn","mdiPackageVariantClosed","Alert","Box","Button","Chip","CircularProgress","Divider","MuiLink","Stack","TextField","Typography","forwardRef","useCallback","useEffect","useMemo","useState","BUNDLE_ID","RETURN_REQUEST_COMPONENT_ID","RETURN_NOTE_MAX","RETURN_STATUS_COLOR","RETURN_STATUS_LABELS","generatePresetId","ID","ENDPOINT","longDate","ms","Date","toLocaleDateString","month","day","year","lineName","line","variantLabel","name","ReturnRequest","props","ref","heading","rest","nodeSx","Array","isArray","hostId","useSite","siteFetch","useSiteFetch","order","setOrder","state","setState","phase","quantities","setQuantities","reasons","setReasons","note","setNote","submitting","setSubmitting","submitError","setSubmitError","submitted","setSubmitted","params","URLSearchParams","window","location","search","orderId","get","token","load","query","set","response","toString","payload","json","catch","ok","message","String","error","data","chosen","lines","filter","lineItemId","missingReason","some","handleSubmit","length","method","headers","body","JSON","stringify","t","map","quantity","reason","trim","title","variant","component","gutterBottom","sx","p","border","borderStyle","borderColor","borderRadius","color","display","justifyContent","py","size","aria-label","severity","byLine","Map","anyReturnable","returnable","canRequest","enabled","windowOpen","flexDirection","gap","windowEndsAtMs","returns","spacing","textAlign","entry","alignItems","flexWrap","flex","minWidth","join","label","status","createdAtMs","returnLabel","labelUrl","href","target","rel","trackingNumber","carrier","Boolean","merchantNote","id","onSubmit","event","preventDefault","blocked","setQuantity","next","prev","Math","max","min","data-line","disabled","onClick","aria-live","select","value","required","onChange","slotProps","native","inputLabel","shrink","maxWidth","option","multiline","minRows","slice","htmlInput","maxLength","helperText","type","displayName","schema","$id","pluginId","description","category","ComponentCategory","COMMERCE","icon","path","flags","selfClosing","FEATURE_FLAG","ENABLED","attributes","FieldComponentType","TEXT_FIELD","presets","NodeType","PRESET","componentId"],"mappings":"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"}