@aglyn/plugins-commerce 1.0.0-beta.143

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 (417) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +10 -0
  3. package/package.json +57 -0
  4. package/src/index.d.ts +38 -0
  5. package/src/index.js +38 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/components/account.d.ts +31 -0
  8. package/src/lib/components/account.js +645 -0
  9. package/src/lib/components/account.js.map +1 -0
  10. package/src/lib/components/cart.d.ts +38 -0
  11. package/src/lib/components/cart.js +851 -0
  12. package/src/lib/components/cart.js.map +1 -0
  13. package/src/lib/components/commerce-console-page.d.ts +32 -0
  14. package/src/lib/components/commerce-console-page.js +296 -0
  15. package/src/lib/components/commerce-console-page.js.map +1 -0
  16. package/src/lib/components/commerce-console-sections.d.ts +34 -0
  17. package/src/lib/components/commerce-console-sections.js +62 -0
  18. package/src/lib/components/commerce-console-sections.js.map +1 -0
  19. package/src/lib/components/console/catalog-organization-card.component.d.ts +14 -0
  20. package/src/lib/components/console/catalog-organization-card.component.js +1087 -0
  21. package/src/lib/components/console/catalog-organization-card.component.js.map +1 -0
  22. package/src/lib/components/console/commerce-analytics-card.component.d.ts +27 -0
  23. package/src/lib/components/console/commerce-analytics-card.component.js +310 -0
  24. package/src/lib/components/console/commerce-analytics-card.component.js.map +1 -0
  25. package/src/lib/components/console/commerce-glance-card.component.d.ts +20 -0
  26. package/src/lib/components/console/commerce-glance-card.component.js +340 -0
  27. package/src/lib/components/console/commerce-glance-card.component.js.map +1 -0
  28. package/src/lib/components/console/commerce-stat-tile.component.d.ts +37 -0
  29. package/src/lib/components/console/commerce-stat-tile.component.js +72 -0
  30. package/src/lib/components/console/commerce-stat-tile.component.js.map +1 -0
  31. package/src/lib/components/console/discounts-card.component.d.ts +14 -0
  32. package/src/lib/components/console/discounts-card.component.js +443 -0
  33. package/src/lib/components/console/discounts-card.component.js.map +1 -0
  34. package/src/lib/components/console/entitlement-gate.component.d.ts +76 -0
  35. package/src/lib/components/console/entitlement-gate.component.js +115 -0
  36. package/src/lib/components/console/entitlement-gate.component.js.map +1 -0
  37. package/src/lib/components/console/gift-cards-card.component.d.ts +29 -0
  38. package/src/lib/components/console/gift-cards-card.component.js +379 -0
  39. package/src/lib/components/console/gift-cards-card.component.js.map +1 -0
  40. package/src/lib/components/console/host-coupons-card.component.d.ts +14 -0
  41. package/src/lib/components/console/host-coupons-card.component.js +252 -0
  42. package/src/lib/components/console/host-coupons-card.component.js.map +1 -0
  43. package/src/lib/components/console/host-orders-card.component.d.ts +13 -0
  44. package/src/lib/components/console/host-orders-card.component.js +861 -0
  45. package/src/lib/components/console/host-orders-card.component.js.map +1 -0
  46. package/src/lib/components/console/locations-card.component.d.ts +14 -0
  47. package/src/lib/components/console/locations-card.component.js +256 -0
  48. package/src/lib/components/console/locations-card.component.js.map +1 -0
  49. package/src/lib/components/console/member-posts-card.component.d.ts +8 -0
  50. package/src/lib/components/console/member-posts-card.component.js +283 -0
  51. package/src/lib/components/console/member-posts-card.component.js.map +1 -0
  52. package/src/lib/components/console/newest-site-users-card.component.d.ts +36 -0
  53. package/src/lib/components/console/newest-site-users-card.component.js +126 -0
  54. package/src/lib/components/console/newest-site-users-card.component.js.map +1 -0
  55. package/src/lib/components/console/order-detail-dialog.component.d.ts +28 -0
  56. package/src/lib/components/console/order-detail-dialog.component.js +976 -0
  57. package/src/lib/components/console/order-detail-dialog.component.js.map +1 -0
  58. package/src/lib/components/console/paid-media.d.ts +127 -0
  59. package/src/lib/components/console/paid-media.js +397 -0
  60. package/src/lib/components/console/paid-media.js.map +1 -0
  61. package/src/lib/components/console/payments-settings-card.component.d.ts +13 -0
  62. package/src/lib/components/console/payments-settings-card.component.js +295 -0
  63. package/src/lib/components/console/payments-settings-card.component.js.map +1 -0
  64. package/src/lib/components/console/pos-page.component.d.ts +13 -0
  65. package/src/lib/components/console/pos-page.component.js +916 -0
  66. package/src/lib/components/console/pos-page.component.js.map +1 -0
  67. package/src/lib/components/console/product-editor-dialog.component.d.ts +32 -0
  68. package/src/lib/components/console/product-editor-dialog.component.js +1374 -0
  69. package/src/lib/components/console/product-editor-dialog.component.js.map +1 -0
  70. package/src/lib/components/console/products-hub-card.component.d.ts +16 -0
  71. package/src/lib/components/console/products-hub-card.component.js +1280 -0
  72. package/src/lib/components/console/products-hub-card.component.js.map +1 -0
  73. package/src/lib/components/console/products-hub-zone.component.d.ts +50 -0
  74. package/src/lib/components/console/products-hub-zone.component.js +200 -0
  75. package/src/lib/components/console/products-hub-zone.component.js.map +1 -0
  76. package/src/lib/components/console/recovery-queue-card.component.d.ts +39 -0
  77. package/src/lib/components/console/recovery-queue-card.component.js +262 -0
  78. package/src/lib/components/console/recovery-queue-card.component.js.map +1 -0
  79. package/src/lib/components/console/registers-card.component.d.ts +21 -0
  80. package/src/lib/components/console/registers-card.component.js +296 -0
  81. package/src/lib/components/console/registers-card.component.js.map +1 -0
  82. package/src/lib/components/console/reservations-card.component.d.ts +14 -0
  83. package/src/lib/components/console/reservations-card.component.js +650 -0
  84. package/src/lib/components/console/reservations-card.component.js.map +1 -0
  85. package/src/lib/components/console/reviews-moderation-card.component.d.ts +8 -0
  86. package/src/lib/components/console/reviews-moderation-card.component.js +235 -0
  87. package/src/lib/components/console/reviews-moderation-card.component.js.map +1 -0
  88. package/src/lib/components/console/shipping-settings-card.component.d.ts +38 -0
  89. package/src/lib/components/console/shipping-settings-card.component.js +560 -0
  90. package/src/lib/components/console/shipping-settings-card.component.js.map +1 -0
  91. package/src/lib/components/console/stock-movements-card.component.d.ts +31 -0
  92. package/src/lib/components/console/stock-movements-card.component.js +333 -0
  93. package/src/lib/components/console/stock-movements-card.component.js.map +1 -0
  94. package/src/lib/components/console/store-settings-card.component.d.ts +14 -0
  95. package/src/lib/components/console/store-settings-card.component.js +300 -0
  96. package/src/lib/components/console/store-settings-card.component.js.map +1 -0
  97. package/src/lib/components/console/storefront-tax-summary-card.component.d.ts +73 -0
  98. package/src/lib/components/console/storefront-tax-summary-card.component.js +408 -0
  99. package/src/lib/components/console/storefront-tax-summary-card.component.js.map +1 -0
  100. package/src/lib/components/console/suppliers-card.component.d.ts +8 -0
  101. package/src/lib/components/console/suppliers-card.component.js +328 -0
  102. package/src/lib/components/console/suppliers-card.component.js.map +1 -0
  103. package/src/lib/components/console/tax-settings-card.component.d.ts +14 -0
  104. package/src/lib/components/console/tax-settings-card.component.js +473 -0
  105. package/src/lib/components/console/tax-settings-card.component.js.map +1 -0
  106. package/src/lib/components/gate.d.ts +39 -0
  107. package/src/lib/components/gate.js +202 -0
  108. package/src/lib/components/gate.js.map +1 -0
  109. package/src/lib/components/gated-video.d.ts +40 -0
  110. package/src/lib/components/gated-video.js +366 -0
  111. package/src/lib/components/gated-video.js.map +1 -0
  112. package/src/lib/components/member-feed.d.ts +32 -0
  113. package/src/lib/components/member-feed.js +198 -0
  114. package/src/lib/components/member-feed.js.map +1 -0
  115. package/src/lib/components/member-recovery.d.ts +35 -0
  116. package/src/lib/components/member-recovery.js +313 -0
  117. package/src/lib/components/member-recovery.js.map +1 -0
  118. package/src/lib/components/member-signin.d.ts +35 -0
  119. package/src/lib/components/member-signin.js +257 -0
  120. package/src/lib/components/member-signin.js.map +1 -0
  121. package/src/lib/components/member-signup.d.ts +34 -0
  122. package/src/lib/components/member-signup.js +287 -0
  123. package/src/lib/components/member-signup.js.map +1 -0
  124. package/src/lib/components/newsletter-signup.d.ts +39 -0
  125. package/src/lib/components/newsletter-signup.js +229 -0
  126. package/src/lib/components/newsletter-signup.js.map +1 -0
  127. package/src/lib/components/product-detail.d.ts +38 -0
  128. package/src/lib/components/product-detail.js +1022 -0
  129. package/src/lib/components/product-detail.js.map +1 -0
  130. package/src/lib/components/product-grid.d.ts +67 -0
  131. package/src/lib/components/product-grid.js +909 -0
  132. package/src/lib/components/product-grid.js.map +1 -0
  133. package/src/lib/components/product-reviews.d.ts +32 -0
  134. package/src/lib/components/product-reviews.js +349 -0
  135. package/src/lib/components/product-reviews.js.map +1 -0
  136. package/src/lib/components/related-products.d.ts +33 -0
  137. package/src/lib/components/related-products.js +232 -0
  138. package/src/lib/components/related-products.js.map +1 -0
  139. package/src/lib/components/reservation-widget.d.ts +33 -0
  140. package/src/lib/components/reservation-widget.js +418 -0
  141. package/src/lib/components/reservation-widget.js.map +1 -0
  142. package/src/lib/components/storefront-payment-element-fallback.d.ts +18 -0
  143. package/src/lib/components/storefront-payment-element-fallback.js +51 -0
  144. package/src/lib/components/storefront-payment-element-fallback.js.map +1 -0
  145. package/src/lib/components/storefront-payment-element.d.ts +78 -0
  146. package/src/lib/components/storefront-payment-element.js +156 -0
  147. package/src/lib/components/storefront-payment-element.js.map +1 -0
  148. package/src/lib/components/wishlist.d.ts +46 -0
  149. package/src/lib/components/wishlist.js +304 -0
  150. package/src/lib/components/wishlist.js.map +1 -0
  151. package/src/lib/constants/bundle-common.d.ts +18 -0
  152. package/src/lib/constants/bundle-common.js +18 -0
  153. package/src/lib/constants/bundle-common.js.map +1 -0
  154. package/src/lib/constants/product-filters.d.ts +35 -0
  155. package/src/lib/constants/product-filters.js +109 -0
  156. package/src/lib/constants/product-filters.js.map +1 -0
  157. package/src/lib/model/commerce-cart.d.ts +52 -0
  158. package/src/lib/model/commerce-cart.js +102 -0
  159. package/src/lib/model/commerce-cart.js.map +1 -0
  160. package/src/lib/model/commerce-connect-transfer.d.ts +243 -0
  161. package/src/lib/model/commerce-connect-transfer.js +231 -0
  162. package/src/lib/model/commerce-connect-transfer.js.map +1 -0
  163. package/src/lib/model/commerce-discounts.d.ts +164 -0
  164. package/src/lib/model/commerce-discounts.js +231 -0
  165. package/src/lib/model/commerce-discounts.js.map +1 -0
  166. package/src/lib/model/commerce-dispute.d.ts +124 -0
  167. package/src/lib/model/commerce-dispute.js +225 -0
  168. package/src/lib/model/commerce-dispute.js.map +1 -0
  169. package/src/lib/model/commerce-gift-cards.d.ts +107 -0
  170. package/src/lib/model/commerce-gift-cards.js +121 -0
  171. package/src/lib/model/commerce-gift-cards.js.map +1 -0
  172. package/src/lib/model/commerce-io.d.ts +36 -0
  173. package/src/lib/model/commerce-io.js +245 -0
  174. package/src/lib/model/commerce-io.js.map +1 -0
  175. package/src/lib/model/commerce-orders.d.ts +1040 -0
  176. package/src/lib/model/commerce-orders.js +1022 -0
  177. package/src/lib/model/commerce-orders.js.map +1 -0
  178. package/src/lib/model/commerce-promotions.d.ts +188 -0
  179. package/src/lib/model/commerce-promotions.js +199 -0
  180. package/src/lib/model/commerce-promotions.js.map +1 -0
  181. package/src/lib/model/commerce-reservations.d.ts +175 -0
  182. package/src/lib/model/commerce-reservations.js +157 -0
  183. package/src/lib/model/commerce-reservations.js.map +1 -0
  184. package/src/lib/model/commerce-shipping.d.ts +316 -0
  185. package/src/lib/model/commerce-shipping.js +484 -0
  186. package/src/lib/model/commerce-shipping.js.map +1 -0
  187. package/src/lib/model/commerce-stock-holds.d.ts +199 -0
  188. package/src/lib/model/commerce-stock-holds.js +190 -0
  189. package/src/lib/model/commerce-stock-holds.js.map +1 -0
  190. package/src/lib/model/commerce-subscription-status.d.ts +67 -0
  191. package/src/lib/model/commerce-subscription-status.js +76 -0
  192. package/src/lib/model/commerce-subscription-status.js.map +1 -0
  193. package/src/lib/model/commerce-tax-decision.d.ts +222 -0
  194. package/src/lib/model/commerce-tax-decision.js +165 -0
  195. package/src/lib/model/commerce-tax-decision.js.map +1 -0
  196. package/src/lib/model/commerce-tax.d.ts +176 -0
  197. package/src/lib/model/commerce-tax.js +92 -0
  198. package/src/lib/model/commerce-tax.js.map +1 -0
  199. package/src/lib/model/commerce.d.ts +551 -0
  200. package/src/lib/model/commerce.js +739 -0
  201. package/src/lib/model/commerce.js.map +1 -0
  202. package/src/lib/model/index.d.ts +40 -0
  203. package/src/lib/model/index.js +40 -0
  204. package/src/lib/model/index.js.map +1 -0
  205. package/src/lib/model/order-figures.d.ts +48 -0
  206. package/src/lib/model/order-figures.js +74 -0
  207. package/src/lib/model/order-figures.js.map +1 -0
  208. package/src/lib/model/plugin-permissions.d.ts +23 -0
  209. package/src/lib/model/plugin-permissions.js +34 -0
  210. package/src/lib/model/plugin-permissions.js.map +1 -0
  211. package/src/lib/model/purchase-analytics.d.ts +186 -0
  212. package/src/lib/model/purchase-analytics.js +216 -0
  213. package/src/lib/model/purchase-analytics.js.map +1 -0
  214. package/src/lib/plugin-config.d.ts +62 -0
  215. package/src/lib/plugin-config.js +78 -0
  216. package/src/lib/plugin-config.js.map +1 -0
  217. package/src/lib/plugin.d.ts +28 -0
  218. package/src/lib/plugin.js +147 -0
  219. package/src/lib/plugin.js.map +1 -0
  220. package/src/lib/server/billing-webhook.d.ts +26 -0
  221. package/src/lib/server/billing-webhook.js +4011 -0
  222. package/src/lib/server/billing-webhook.js.map +1 -0
  223. package/src/lib/server/cancel-order.d.ts +87 -0
  224. package/src/lib/server/cancel-order.js +368 -0
  225. package/src/lib/server/cancel-order.js.map +1 -0
  226. package/src/lib/server/cart-checkout.d.ts +25 -0
  227. package/src/lib/server/cart-checkout.js +976 -0
  228. package/src/lib/server/cart-checkout.js.map +1 -0
  229. package/src/lib/server/cart-cookie.d.ts +32 -0
  230. package/src/lib/server/cart-cookie.js +77 -0
  231. package/src/lib/server/cart-cookie.js.map +1 -0
  232. package/src/lib/server/cart.d.ts +34 -0
  233. package/src/lib/server/cart.js +181 -0
  234. package/src/lib/server/cart.js.map +1 -0
  235. package/src/lib/server/catalog.d.ts +127 -0
  236. package/src/lib/server/catalog.js +277 -0
  237. package/src/lib/server/catalog.js.map +1 -0
  238. package/src/lib/server/checkout.d.ts +36 -0
  239. package/src/lib/server/checkout.js +915 -0
  240. package/src/lib/server/checkout.js.map +1 -0
  241. package/src/lib/server/connect.d.ts +26 -0
  242. package/src/lib/server/connect.js +238 -0
  243. package/src/lib/server/connect.js.map +1 -0
  244. package/src/lib/server/contact-refund.d.ts +117 -0
  245. package/src/lib/server/contact-refund.js +196 -0
  246. package/src/lib/server/contact-refund.js.map +1 -0
  247. package/src/lib/server/download.d.ts +39 -0
  248. package/src/lib/server/download.js +206 -0
  249. package/src/lib/server/download.js.map +1 -0
  250. package/src/lib/server/draft-order.d.ts +26 -0
  251. package/src/lib/server/draft-order.js +706 -0
  252. package/src/lib/server/draft-order.js.map +1 -0
  253. package/src/lib/server/feed.d.ts +24 -0
  254. package/src/lib/server/feed.js +59 -0
  255. package/src/lib/server/feed.js.map +1 -0
  256. package/src/lib/server/fulfill-order.d.ts +97 -0
  257. package/src/lib/server/fulfill-order.js +235 -0
  258. package/src/lib/server/fulfill-order.js.map +1 -0
  259. package/src/lib/server/gate.d.ts +36 -0
  260. package/src/lib/server/gate.js +112 -0
  261. package/src/lib/server/gate.js.map +1 -0
  262. package/src/lib/server/gift-cards.d.ts +42 -0
  263. package/src/lib/server/gift-cards.js +219 -0
  264. package/src/lib/server/gift-cards.js.map +1 -0
  265. package/src/lib/server/low-stock.d.ts +49 -0
  266. package/src/lib/server/low-stock.js +60 -0
  267. package/src/lib/server/low-stock.js.map +1 -0
  268. package/src/lib/server/manual-tax-rate.d.ts +82 -0
  269. package/src/lib/server/manual-tax-rate.js +113 -0
  270. package/src/lib/server/manual-tax-rate.js.map +1 -0
  271. package/src/lib/server/member-feed.d.ts +24 -0
  272. package/src/lib/server/member-feed.js +72 -0
  273. package/src/lib/server/member-feed.js.map +1 -0
  274. package/src/lib/server/member-name-search.d.ts +37 -0
  275. package/src/lib/server/member-name-search.js +42 -0
  276. package/src/lib/server/member-name-search.js.map +1 -0
  277. package/src/lib/server/member-post.d.ts +23 -0
  278. package/src/lib/server/member-post.js +166 -0
  279. package/src/lib/server/member-post.js.map +1 -0
  280. package/src/lib/server/membership-account.d.ts +37 -0
  281. package/src/lib/server/membership-account.js +148 -0
  282. package/src/lib/server/membership-account.js.map +1 -0
  283. package/src/lib/server/membership-admin-password.d.ts +33 -0
  284. package/src/lib/server/membership-admin-password.js +202 -0
  285. package/src/lib/server/membership-admin-password.js.map +1 -0
  286. package/src/lib/server/membership-content.d.ts +23 -0
  287. package/src/lib/server/membership-content.js +105 -0
  288. package/src/lib/server/membership-content.js.map +1 -0
  289. package/src/lib/server/membership-login.d.ts +19 -0
  290. package/src/lib/server/membership-login.js +137 -0
  291. package/src/lib/server/membership-login.js.map +1 -0
  292. package/src/lib/server/membership-logout.d.ts +19 -0
  293. package/src/lib/server/membership-logout.js +35 -0
  294. package/src/lib/server/membership-logout.js.map +1 -0
  295. package/src/lib/server/membership-recover.d.ts +60 -0
  296. package/src/lib/server/membership-recover.js +244 -0
  297. package/src/lib/server/membership-recover.js.map +1 -0
  298. package/src/lib/server/membership-register.d.ts +22 -0
  299. package/src/lib/server/membership-register.js +241 -0
  300. package/src/lib/server/membership-register.js.map +1 -0
  301. package/src/lib/server/membership-reset.d.ts +26 -0
  302. package/src/lib/server/membership-reset.js +88 -0
  303. package/src/lib/server/membership-reset.js.map +1 -0
  304. package/src/lib/server/membership-wishlist.d.ts +23 -0
  305. package/src/lib/server/membership-wishlist.js +89 -0
  306. package/src/lib/server/membership-wishlist.js.map +1 -0
  307. package/src/lib/server/membership.d.ts +96 -0
  308. package/src/lib/server/membership.js +222 -0
  309. package/src/lib/server/membership.js.map +1 -0
  310. package/src/lib/server/native-checkout.d.ts +170 -0
  311. package/src/lib/server/native-checkout.js +193 -0
  312. package/src/lib/server/native-checkout.js.map +1 -0
  313. package/src/lib/server/newsletter.d.ts +23 -0
  314. package/src/lib/server/newsletter.js +323 -0
  315. package/src/lib/server/newsletter.js.map +1 -0
  316. package/src/lib/server/notify-restock.d.ts +22 -0
  317. package/src/lib/server/notify-restock.js +84 -0
  318. package/src/lib/server/notify-restock.js.map +1 -0
  319. package/src/lib/server/order-analytics.d.ts +134 -0
  320. package/src/lib/server/order-analytics.js +263 -0
  321. package/src/lib/server/order-analytics.js.map +1 -0
  322. package/src/lib/server/order-figures.d.ts +33 -0
  323. package/src/lib/server/order-figures.js +220 -0
  324. package/src/lib/server/order-figures.js.map +1 -0
  325. package/src/lib/server/paid-media-delivery.d.ts +173 -0
  326. package/src/lib/server/paid-media-delivery.js +212 -0
  327. package/src/lib/server/paid-media-delivery.js.map +1 -0
  328. package/src/lib/server/pos-order.d.ts +54 -0
  329. package/src/lib/server/pos-order.js +1137 -0
  330. package/src/lib/server/pos-order.js.map +1 -0
  331. package/src/lib/server/process-abandoned.d.ts +54 -0
  332. package/src/lib/server/process-abandoned.js +222 -0
  333. package/src/lib/server/process-abandoned.js.map +1 -0
  334. package/src/lib/server/process-restock.d.ts +42 -0
  335. package/src/lib/server/process-restock.js +219 -0
  336. package/src/lib/server/process-restock.js.map +1 -0
  337. package/src/lib/server/product-card.d.ts +29 -0
  338. package/src/lib/server/product-card.js +54 -0
  339. package/src/lib/server/product-card.js.map +1 -0
  340. package/src/lib/server/product.d.ts +70 -0
  341. package/src/lib/server/product.js +105 -0
  342. package/src/lib/server/product.js.map +1 -0
  343. package/src/lib/server/promotion-hold.d.ts +144 -0
  344. package/src/lib/server/promotion-hold.js +174 -0
  345. package/src/lib/server/promotion-hold.js.map +1 -0
  346. package/src/lib/server/reconcile-stock.d.ts +106 -0
  347. package/src/lib/server/reconcile-stock.js +349 -0
  348. package/src/lib/server/reconcile-stock.js.map +1 -0
  349. package/src/lib/server/refund.d.ts +45 -0
  350. package/src/lib/server/refund.js +607 -0
  351. package/src/lib/server/refund.js.map +1 -0
  352. package/src/lib/server/related.d.ts +24 -0
  353. package/src/lib/server/related.js +104 -0
  354. package/src/lib/server/related.js.map +1 -0
  355. package/src/lib/server/reservation-availability.d.ts +23 -0
  356. package/src/lib/server/reservation-availability.js +111 -0
  357. package/src/lib/server/reservation-availability.js.map +1 -0
  358. package/src/lib/server/reserve-stock.d.ts +156 -0
  359. package/src/lib/server/reserve-stock.js +146 -0
  360. package/src/lib/server/reserve-stock.js.map +1 -0
  361. package/src/lib/server/reserve.d.ts +25 -0
  362. package/src/lib/server/reserve.js +426 -0
  363. package/src/lib/server/reserve.js.map +1 -0
  364. package/src/lib/server/restock-flag.d.ts +202 -0
  365. package/src/lib/server/restock-flag.js +449 -0
  366. package/src/lib/server/restock-flag.js.map +1 -0
  367. package/src/lib/server/reviews.d.ts +51 -0
  368. package/src/lib/server/reviews.js +132 -0
  369. package/src/lib/server/reviews.js.map +1 -0
  370. package/src/lib/server/site-page-enricher.d.ts +42 -0
  371. package/src/lib/server/site-page-enricher.js +149 -0
  372. package/src/lib/server/site-page-enricher.js.map +1 -0
  373. package/src/lib/server/site-page-resolver.d.ts +26 -0
  374. package/src/lib/server/site-page-resolver.js +223 -0
  375. package/src/lib/server/site-page-resolver.js.map +1 -0
  376. package/src/lib/server/stock-hold.d.ts +127 -0
  377. package/src/lib/server/stock-hold.js +258 -0
  378. package/src/lib/server/stock-hold.js.map +1 -0
  379. package/src/lib/server/storefront-tax-record.d.ts +22 -0
  380. package/src/lib/server/storefront-tax-record.js +218 -0
  381. package/src/lib/server/storefront-tax-record.js.map +1 -0
  382. package/src/lib/server/storefront-tax.d.ts +197 -0
  383. package/src/lib/server/storefront-tax.js +245 -0
  384. package/src/lib/server/storefront-tax.js.map +1 -0
  385. package/src/lib/server/stream.d.ts +25 -0
  386. package/src/lib/server/stream.js +191 -0
  387. package/src/lib/server/stream.js.map +1 -0
  388. package/src/lib/server/subscription-portal.d.ts +24 -0
  389. package/src/lib/server/subscription-portal.js +91 -0
  390. package/src/lib/server/subscription-portal.js.map +1 -0
  391. package/src/lib/server/supplier-outbox.d.ts +190 -0
  392. package/src/lib/server/supplier-outbox.js +342 -0
  393. package/src/lib/server/supplier-outbox.js.map +1 -0
  394. package/src/lib/server/supplier-update.d.ts +23 -0
  395. package/src/lib/server/supplier-update.js +289 -0
  396. package/src/lib/server/supplier-update.js.map +1 -0
  397. package/src/lib/server/tax-profile.d.ts +29 -0
  398. package/src/lib/server/tax-profile.js +40 -0
  399. package/src/lib/server/tax-profile.js.map +1 -0
  400. package/src/lib/server.d.ts +32 -0
  401. package/src/lib/server.js +311 -0
  402. package/src/lib/server.js.map +1 -0
  403. package/src/lib/site.d.ts +27 -0
  404. package/src/lib/site.js +134 -0
  405. package/src/lib/site.js.map +1 -0
  406. package/src/lib/utils/escape-html.d.ts +41 -0
  407. package/src/lib/utils/escape-html.js +41 -0
  408. package/src/lib/utils/escape-html.js.map +1 -0
  409. package/src/lib/utils/generate-preset-id.d.ts +19 -0
  410. package/src/lib/utils/generate-preset-id.js +25 -0
  411. package/src/lib/utils/generate-preset-id.js.map +1 -0
  412. package/src/lib/utils/member-continue.d.ts +45 -0
  413. package/src/lib/utils/member-continue.js +49 -0
  414. package/src/lib/utils/member-continue.js.map +1 -0
  415. package/src/lib/utils/use-storefront-purchase-event.d.ts +60 -0
  416. package/src/lib/utils/use-storefront-purchase-event.js +142 -0
  417. package/src/lib/utils/use-storefront-purchase-event.js.map +1 -0
@@ -0,0 +1,328 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ 'use client';
17
+ import { _ as _extends } from "@swc/helpers/_/_extends";
18
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
+ import * as Aglyn from "@aglyn/aglyn";
21
+ import { CardDisplay, useConfirmationContext } from "@aglyn/shared-ui-jsx";
22
+ import { useSnackbar } from "@aglyn/shared-ui-snackstack";
23
+ import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Stack, TextField, Typography } from "@mui/material";
24
+ import { collection, deleteDoc, doc, setDoc } from "firebase/firestore";
25
+ import { useCallback, useState } from "react";
26
+ import { useFirestore } from "@aglyn/tenant-feature-instance";
27
+ import { collectionPage, usePagedCollection, writeGuardedBySeed } from "@aglyn/tenant-feature-instance";
28
+ import { ListPagination } from "@aglyn/shared-ui-jsx/components/list-pagination.component";
29
+ import { EntitlementGatedCard } from "./entitlement-gate.component.js";
30
+ import { pluginDocsHelp } from "@aglyn/aglyn";
31
+ /**
32
+ * Dropship suppliers (AGL-289): paid orders whose product points at a
33
+ * supplier notify it by email and/or HMAC-signed webhook, and the
34
+ * supplier posts tracking back through a token link — no Aglyn account
35
+ * needed. Assign suppliers per product in the product editor.
36
+ *
37
+ * Gated on `dropshipRouting` since AGL-2080. `server/billing-webhook.ts:2474`
38
+ * enforces it, so an unentitled org could create suppliers, assign them to
39
+ * products, and watch every paid order silently fail to route — a supplier
40
+ * that looks configured and never hears about an order.
41
+ */ const suppliersHelp = pluginDocsHelp('commerce', {
42
+ anchor: '#dropshipping'
43
+ });
44
+ export function SuppliersCard(props) {
45
+ var _ref, _ref1, _ref2, _ref3;
46
+ const { hostId } = props;
47
+ const firestore = useFirestore();
48
+ const { enqueueSnackbar } = useSnackbar();
49
+ const { confirm } = useConfirmationContext();
50
+ const { status: suppliersStatus, /**
51
+ * The list this dialog is seeded from is unconfirmed by the server
52
+ * (AGL-1358). Editing a supplier copies the whole stored row into
53
+ * `draft` and writes all of it back, so a cached seed can restore a
54
+ * ROTATED `webhookSecret` — the supplier keeps signing with a key we
55
+ * meant to retire, and nothing anywhere reports it.
56
+ */ fromCache: suppliersFromCache, rows: suppliers, hasMore, page, setPage, pageSize, setPageSize } = usePagedCollection(/*
57
+ * SERVER-PAGED, and ordered (AGL-2501).
58
+ *
59
+ * `limit(50)` alone is answered in DOCUMENT-ID order, and suppliers are
60
+ * created with a generated id — so the fifty were a pseudo-random sample
61
+ * and the fifty-first was not merely unrendered, it was UNREACHABLE. A
62
+ * merchant with sixty fulfillment partners saw fifty of them and nothing
63
+ * said which.
64
+ *
65
+ * This one really can be paged by the query, unlike the cards that carry a
66
+ * duplicate-name check or a count over the whole set: nothing here is
67
+ * derived from rows off the page. Suppliers are assigned to products by
68
+ * document id in the product editor, and the empty state and the row list
69
+ * are the only consumers.
70
+ *
71
+ * `collectionPage` orders on the document NAME, which cannot be absent —
72
+ * `orderBy('name')` would HIDE every supplier saved without one rather
73
+ * than mis-sorting the list, and `/api/hosts/resources` validates no field
74
+ * for presence.
75
+ */ (pageLimit)=>collectionPage(collection(firestore, 'hosts', hostId, 'suppliers'), pageLimit), [
76
+ firestore,
77
+ hostId
78
+ ], {
79
+ idField: '$id'
80
+ });
81
+ const [draft, setDraft] = useState(null);
82
+ const handleSave = useCallback(async ()=>{
83
+ if (!(draft == null ? void 0 : draft.name.trim())) return;
84
+ const { id } = draft, data = _object_without_properties_loose(draft, [
85
+ "id"
86
+ ]);
87
+ /**
88
+ * Refuse an EDIT whose seed the server never confirmed (AGL-1358).
89
+ *
90
+ * This write has no options argument at all, so it is a full document
91
+ * replace of a payload copied wholesale off the listener — `merge`
92
+ * would not have helped anyway, since every field is present. The one
93
+ * that matters is `webhookSecret`: rotate it somewhere else, come back
94
+ * to a console still serving the old row out of `persistentLocalCache`,
95
+ * rename the supplier, and the retired secret is stored again.
96
+ *
97
+ * Only the edit path is guarded. A NEW supplier is built from blanks at
98
+ * a fresh uid and can overwrite nothing, so refusing it would be a false
99
+ * positive on a path that is never unsafe — and this guard stands in
100
+ * front of the ordinary save.
101
+ *
102
+ * The guard WRAPS the write: an early return is a shape you can keep
103
+ * while losing the protection.
104
+ */ const verdict = await writeGuardedBySeed({
105
+ subject: 'supplier',
106
+ unreadable: Boolean(id) && suppliersStatus === 'error',
107
+ fromCache: Boolean(id) && suppliersFromCache
108
+ }, async ()=>{
109
+ await setDoc(doc(firestore, 'hosts', hostId, 'suppliers', id != null ? id : Aglyn.createResourceUid()), _extends({}, data, {
110
+ name: draft.name.trim().slice(0, 80)
111
+ }));
112
+ });
113
+ // A refusal keeps the dialog open with what was typed. A save that
114
+ // silently does nothing sends the user back to retype a form that will
115
+ // be refused again just as quietly.
116
+ if (!verdict.ok) {
117
+ return void enqueueSnackbar(verdict.message, {
118
+ variant: 'warning',
119
+ persist: false
120
+ });
121
+ }
122
+ setDraft(null);
123
+ enqueueSnackbar('Supplier saved', {
124
+ variant: 'success',
125
+ persist: false
126
+ });
127
+ }, [
128
+ draft,
129
+ firestore,
130
+ hostId,
131
+ enqueueSnackbar,
132
+ suppliersFromCache,
133
+ suppliersStatus
134
+ ]);
135
+ const handleDelete = useCallback((supplier)=>async ()=>{
136
+ const confirmed = await confirm({
137
+ title: 'Remove this supplier?',
138
+ description: `Products assigned to "${supplier.name}" stop routing; orders ` + 'already sent are unaffected.',
139
+ confirmationText: 'Remove',
140
+ confirmationButtonProps: {
141
+ color: 'error'
142
+ }
143
+ }).then(()=>true).catch(()=>false);
144
+ if (!confirmed) return;
145
+ await deleteDoc(doc(firestore, 'hosts', hostId, 'suppliers', supplier.$id));
146
+ }, [
147
+ confirm,
148
+ firestore,
149
+ hostId
150
+ ]);
151
+ return /*#__PURE__*/ _jsx(EntitlementGatedCard, {
152
+ help: suppliersHelp,
153
+ hostId: hostId,
154
+ feature: "dropshipRouting",
155
+ header: 'Dropship suppliers',
156
+ upsell: 'Dropship routing forwards each paid order to the right supplier ' + 'by email or signed webhook, and takes tracking numbers back ' + `without the supplier needing an ${Aglyn.PLATFORM_BRAND_NAME} account.`,
157
+ children: /*#__PURE__*/ _jsxs(CardDisplay, {
158
+ header: 'Dropship suppliers',
159
+ help: suppliersHelp,
160
+ contentGutterX: true,
161
+ contentGutterY: true,
162
+ children: [
163
+ /*#__PURE__*/ _jsxs(Stack, {
164
+ spacing: 1,
165
+ children: [
166
+ suppliers.length === 0 && page === 0 ? /*#__PURE__*/ _jsx(Typography, {
167
+ variant: "body2",
168
+ color: "text.secondary",
169
+ children: 'Route paid orders straight to a fulfillment partner: add a ' + 'supplier, then assign it on products.'
170
+ }) : suppliers.map((supplier)=>/*#__PURE__*/ _jsxs(Stack, {
171
+ direction: "row",
172
+ spacing: 1,
173
+ sx: {
174
+ alignItems: 'center'
175
+ },
176
+ children: [
177
+ /*#__PURE__*/ _jsxs(Stack, {
178
+ sx: {
179
+ flex: 1,
180
+ minWidth: 0
181
+ },
182
+ children: [
183
+ /*#__PURE__*/ _jsx(Typography, {
184
+ variant: "body2",
185
+ noWrap: true,
186
+ children: supplier.name
187
+ }),
188
+ /*#__PURE__*/ _jsx(Typography, {
189
+ variant: "caption",
190
+ color: "text.secondary",
191
+ noWrap: true,
192
+ children: [
193
+ supplier.email,
194
+ supplier.webhookUrl
195
+ ].filter(Boolean).join(' · ') || 'No delivery method set'
196
+ })
197
+ ]
198
+ }),
199
+ /*#__PURE__*/ _jsx(Button, {
200
+ size: "small",
201
+ onClick: ()=>{
202
+ var _supplier_name, _supplier_email, _supplier_webhookUrl, _supplier_webhookSecret;
203
+ return setDraft({
204
+ id: supplier.$id,
205
+ name: (_supplier_name = supplier.name) != null ? _supplier_name : '',
206
+ email: (_supplier_email = supplier.email) != null ? _supplier_email : '',
207
+ webhookUrl: (_supplier_webhookUrl = supplier.webhookUrl) != null ? _supplier_webhookUrl : '',
208
+ webhookSecret: (_supplier_webhookSecret = supplier.webhookSecret) != null ? _supplier_webhookSecret : ''
209
+ });
210
+ },
211
+ children: 'Edit'
212
+ }),
213
+ /*#__PURE__*/ _jsx(Button, {
214
+ size: "small",
215
+ color: "error",
216
+ onClick: handleDelete(supplier),
217
+ children: 'Remove'
218
+ })
219
+ ]
220
+ }, supplier.$id)),
221
+ suppliers.length === 0 && page === 0 ? null : /*#__PURE__*/ _jsx(ListPagination, {
222
+ page: page,
223
+ pageSize: pageSize,
224
+ rowCount: suppliers.length,
225
+ // No `count`: this is a server window, and nobody knows the total
226
+ // without paying to read it. `hasMore` is the probe row's answer.
227
+ hasMore: hasMore,
228
+ onPageChange: setPage,
229
+ onPageSizeChange: setPageSize
230
+ }),
231
+ /*#__PURE__*/ _jsx(Button, {
232
+ size: "small",
233
+ sx: {
234
+ alignSelf: 'flex-start'
235
+ },
236
+ onClick: ()=>setDraft({
237
+ id: null,
238
+ name: '',
239
+ email: '',
240
+ webhookUrl: '',
241
+ webhookSecret: ''
242
+ }),
243
+ children: 'Add supplier'
244
+ })
245
+ ]
246
+ }),
247
+ /*#__PURE__*/ _jsxs(Dialog, {
248
+ open: Boolean(draft),
249
+ onClose: ()=>setDraft(null),
250
+ maxWidth: "xs",
251
+ fullWidth: true,
252
+ children: [
253
+ /*#__PURE__*/ _jsx(DialogTitle, {
254
+ children: (draft == null ? void 0 : draft.id) ? 'Edit supplier' : 'New supplier'
255
+ }),
256
+ /*#__PURE__*/ _jsxs(DialogContent, {
257
+ sx: {
258
+ display: 'flex',
259
+ flexDirection: 'column',
260
+ gap: 2
261
+ },
262
+ children: [
263
+ /*#__PURE__*/ _jsx(TextField, {
264
+ label: "Name",
265
+ value: (_ref = draft == null ? void 0 : draft.name) != null ? _ref : '',
266
+ onChange: (event)=>setDraft((prev)=>prev ? _extends({}, prev, {
267
+ name: event.target.value
268
+ }) : prev),
269
+ size: "small",
270
+ autoFocus: true,
271
+ sx: {
272
+ mt: 1
273
+ }
274
+ }),
275
+ /*#__PURE__*/ _jsx(TextField, {
276
+ label: "Notification email",
277
+ value: (_ref1 = draft == null ? void 0 : draft.email) != null ? _ref1 : '',
278
+ onChange: (event)=>setDraft((prev)=>prev ? _extends({}, prev, {
279
+ email: event.target.value
280
+ }) : prev),
281
+ size: "small",
282
+ helperText: "Gets order details + a tracking link per sale"
283
+ }),
284
+ /*#__PURE__*/ _jsx(TextField, {
285
+ label: "Webhook URL",
286
+ value: (_ref2 = draft == null ? void 0 : draft.webhookUrl) != null ? _ref2 : '',
287
+ onChange: (event)=>setDraft((prev)=>prev ? _extends({}, prev, {
288
+ webhookUrl: event.target.value
289
+ }) : prev),
290
+ size: "small",
291
+ placeholder: "https://…"
292
+ }),
293
+ /*#__PURE__*/ _jsx(TextField, {
294
+ label: "Webhook secret",
295
+ value: (_ref3 = draft == null ? void 0 : draft.webhookSecret) != null ? _ref3 : '',
296
+ onChange: (event)=>setDraft((prev)=>prev ? _extends({}, prev, {
297
+ webhookSecret: event.target.value
298
+ }) : prev),
299
+ size: "small",
300
+ helperText: "Payloads carry an x-aglyn-signature HMAC header"
301
+ })
302
+ ]
303
+ }),
304
+ /*#__PURE__*/ _jsxs(DialogActions, {
305
+ children: [
306
+ /*#__PURE__*/ _jsx(Button, {
307
+ onClick: ()=>setDraft(null),
308
+ children: 'Cancel'
309
+ }),
310
+ /*#__PURE__*/ _jsx(Button, {
311
+ variant: "contained",
312
+ color: "primary",
313
+ disabled: !(draft == null ? void 0 : draft.name.trim()),
314
+ onClick: handleSave,
315
+ children: 'Save'
316
+ })
317
+ ]
318
+ })
319
+ ]
320
+ })
321
+ ]
322
+ })
323
+ });
324
+ }
325
+ SuppliersCard.displayName = 'SuppliersCard';
326
+ export default SuppliersCard;
327
+
328
+ //# sourceMappingURL=suppliers-card.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../libs/plugins/commerce/src/lib/components/console/suppliers-card.component.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'use client'\n\nimport * as Aglyn from '@aglyn/aglyn'\nimport * as CommerceModel from '../../model'\nimport { CardDisplay, useConfirmationContext } from '@aglyn/shared-ui-jsx'\nimport { useSnackbar } from '@aglyn/shared-ui-snackstack'\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport { collection, deleteDoc, doc, setDoc } from 'firebase/firestore'\nimport { useCallback, useState } from 'react'\nimport { useFirestore } from '@aglyn/tenant-feature-instance'\nimport {\n collectionPage,\n usePagedCollection,\n writeGuardedBySeed,\n} from '@aglyn/tenant-feature-instance'\nimport { ListPagination } from '@aglyn/shared-ui-jsx/components/list-pagination.component'\nimport { EntitlementGatedCard } from './entitlement-gate.component'\nimport { pluginDocsHelp } from '@aglyn/aglyn'\n\nexport interface SuppliersCardProps {\n hostId: string\n}\n\n/**\n * Dropship suppliers (AGL-289): paid orders whose product points at a\n * supplier notify it by email and/or HMAC-signed webhook, and the\n * supplier posts tracking back through a token link — no Aglyn account\n * needed. Assign suppliers per product in the product editor.\n *\n * Gated on `dropshipRouting` since AGL-2080. `server/billing-webhook.ts:2474`\n * enforces it, so an unentitled org could create suppliers, assign them to\n * products, and watch every paid order silently fail to route — a supplier\n * that looks configured and never hears about an order.\n */\n\nconst suppliersHelp = pluginDocsHelp('commerce', { anchor: '#dropshipping' })\n\nexport function SuppliersCard(props: SuppliersCardProps) {\n const { hostId } = props\n const firestore = useFirestore()\n const { enqueueSnackbar } = useSnackbar()\n const { confirm } = useConfirmationContext()\n const {\n status: suppliersStatus,\n /**\n * The list this dialog is seeded from is unconfirmed by the server\n * (AGL-1358). Editing a supplier copies the whole stored row into\n * `draft` and writes all of it back, so a cached seed can restore a\n * ROTATED `webhookSecret` — the supplier keeps signing with a key we\n * meant to retire, and nothing anywhere reports it.\n */\n fromCache: suppliersFromCache,\n rows: suppliers,\n hasMore,\n page,\n setPage,\n pageSize,\n setPageSize,\n } = usePagedCollection<any>(\n /*\n * SERVER-PAGED, and ordered (AGL-2501).\n *\n * `limit(50)` alone is answered in DOCUMENT-ID order, and suppliers are\n * created with a generated id — so the fifty were a pseudo-random sample\n * and the fifty-first was not merely unrendered, it was UNREACHABLE. A\n * merchant with sixty fulfillment partners saw fifty of them and nothing\n * said which.\n *\n * This one really can be paged by the query, unlike the cards that carry a\n * duplicate-name check or a count over the whole set: nothing here is\n * derived from rows off the page. Suppliers are assigned to products by\n * document id in the product editor, and the empty state and the row list\n * are the only consumers.\n *\n * `collectionPage` orders on the document NAME, which cannot be absent —\n * `orderBy('name')` would HIDE every supplier saved without one rather\n * than mis-sorting the list, and `/api/hosts/resources` validates no field\n * for presence.\n */\n (pageLimit) =>\n collectionPage(\n collection(firestore, 'hosts', hostId, 'suppliers'),\n pageLimit,\n ),\n [firestore, hostId],\n { idField: '$id' },\n )\n const [draft, setDraft] = useState<\n (CommerceModel.HostSupplier & { id: string | null }) | null\n >(null)\n\n const handleSave = useCallback(async () => {\n if (!draft?.name.trim()) return\n const { id, ...data } = draft\n /**\n * Refuse an EDIT whose seed the server never confirmed (AGL-1358).\n *\n * This write has no options argument at all, so it is a full document\n * replace of a payload copied wholesale off the listener — `merge`\n * would not have helped anyway, since every field is present. The one\n * that matters is `webhookSecret`: rotate it somewhere else, come back\n * to a console still serving the old row out of `persistentLocalCache`,\n * rename the supplier, and the retired secret is stored again.\n *\n * Only the edit path is guarded. A NEW supplier is built from blanks at\n * a fresh uid and can overwrite nothing, so refusing it would be a false\n * positive on a path that is never unsafe — and this guard stands in\n * front of the ordinary save.\n *\n * The guard WRAPS the write: an early return is a shape you can keep\n * while losing the protection.\n */\n const verdict = await writeGuardedBySeed(\n {\n subject: 'supplier',\n unreadable: Boolean(id) && suppliersStatus === 'error',\n fromCache: Boolean(id) && suppliersFromCache,\n },\n async () => {\n await setDoc(\n doc(\n firestore,\n 'hosts',\n hostId,\n 'suppliers',\n id ?? Aglyn.createResourceUid(),\n ),\n {\n ...data,\n name: draft.name.trim().slice(0, 80),\n },\n )\n },\n )\n // A refusal keeps the dialog open with what was typed. A save that\n // silently does nothing sends the user back to retype a form that will\n // be refused again just as quietly.\n if (!verdict.ok) {\n return void enqueueSnackbar(verdict.message, {\n variant: 'warning',\n persist: false,\n })\n }\n setDraft(null)\n enqueueSnackbar('Supplier saved', { variant: 'success', persist: false })\n }, [\n draft,\n firestore,\n hostId,\n enqueueSnackbar,\n suppliersFromCache,\n suppliersStatus,\n ])\n\n const handleDelete = useCallback(\n (supplier: any) => async () => {\n const confirmed = await confirm({\n title: 'Remove this supplier?',\n description:\n `Products assigned to \"${supplier.name}\" stop routing; orders ` +\n 'already sent are unaffected.',\n confirmationText: 'Remove',\n confirmationButtonProps: { color: 'error' },\n })\n .then(() => true)\n .catch(() => false)\n if (!confirmed) return\n await deleteDoc(doc(firestore, 'hosts', hostId, 'suppliers', supplier.$id))\n },\n [confirm, firestore, hostId],\n )\n\n return (\n <EntitlementGatedCard\n help={suppliersHelp}\n hostId={hostId}\n feature=\"dropshipRouting\"\n header={'Dropship suppliers'}\n upsell={\n 'Dropship routing forwards each paid order to the right supplier ' +\n 'by email or signed webhook, and takes tracking numbers back ' +\n `without the supplier needing an ${Aglyn.PLATFORM_BRAND_NAME} account.`\n }\n >\n <CardDisplay\n header={'Dropship suppliers'}\n help={suppliersHelp}\n contentGutterX\n contentGutterY\n >\n <Stack spacing={1}>\n {suppliers.length === 0 && page === 0 ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Route paid orders straight to a fulfillment partner: add a ' +\n 'supplier, then assign it on products.'}\n </Typography>\n ) : (\n suppliers.map((supplier: any) => (\n <Stack\n key={supplier.$id}\n direction=\"row\"\n spacing={1}\n sx={{ alignItems: 'center' }}\n >\n <Stack sx={{ flex: 1, minWidth: 0 }}>\n <Typography variant=\"body2\" noWrap>\n {supplier.name}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\" noWrap>\n {[supplier.email, supplier.webhookUrl]\n .filter(Boolean)\n .join(' · ') || 'No delivery method set'}\n </Typography>\n </Stack>\n <Button\n size=\"small\"\n onClick={() =>\n setDraft({\n id: supplier.$id,\n name: supplier.name ?? '',\n email: supplier.email ?? '',\n webhookUrl: supplier.webhookUrl ?? '',\n webhookSecret: supplier.webhookSecret ?? '',\n })\n }\n >\n {'Edit'}\n </Button>\n <Button size=\"small\" color=\"error\" onClick={handleDelete(supplier)}>\n {'Remove'}\n </Button>\n </Stack>\n ))\n )}\n {suppliers.length === 0 && page === 0 ? null : (\n <ListPagination\n page={page}\n pageSize={pageSize}\n rowCount={suppliers.length}\n // No `count`: this is a server window, and nobody knows the total\n // without paying to read it. `hasMore` is the probe row's answer.\n hasMore={hasMore}\n onPageChange={setPage}\n onPageSizeChange={setPageSize}\n />\n )}\n <Button\n size=\"small\"\n sx={{ alignSelf: 'flex-start' }}\n onClick={() =>\n setDraft({ id: null, name: '', email: '', webhookUrl: '', webhookSecret: '' })\n }\n >\n {'Add supplier'}\n </Button>\n </Stack>\n <Dialog\n open={Boolean(draft)}\n onClose={() => setDraft(null)}\n maxWidth=\"xs\"\n fullWidth\n >\n <DialogTitle>{draft?.id ? 'Edit supplier' : 'New supplier'}</DialogTitle>\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n <TextField\n label=\"Name\"\n value={draft?.name ?? ''}\n onChange={(event) =>\n setDraft((prev) =>\n prev ? { ...prev, name: event.target.value } : prev,\n )\n }\n size=\"small\"\n autoFocus\n sx={{ mt: 1 }}\n />\n <TextField\n label=\"Notification email\"\n value={draft?.email ?? ''}\n onChange={(event) =>\n setDraft((prev) =>\n prev ? { ...prev, email: event.target.value } : prev,\n )\n }\n size=\"small\"\n helperText=\"Gets order details + a tracking link per sale\"\n />\n <TextField\n label=\"Webhook URL\"\n value={draft?.webhookUrl ?? ''}\n onChange={(event) =>\n setDraft((prev) =>\n prev ? { ...prev, webhookUrl: event.target.value } : prev,\n )\n }\n size=\"small\"\n placeholder=\"https://…\"\n />\n <TextField\n label=\"Webhook secret\"\n value={draft?.webhookSecret ?? ''}\n onChange={(event) =>\n setDraft((prev) =>\n prev ? { ...prev, webhookSecret: event.target.value } : prev,\n )\n }\n size=\"small\"\n helperText=\"Payloads carry an x-aglyn-signature HMAC header\"\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setDraft(null)}>{'Cancel'}</Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n disabled={!draft?.name.trim()}\n onClick={handleSave}\n >\n {'Save'}\n </Button>\n </DialogActions>\n </Dialog>\n </CardDisplay>\n </EntitlementGatedCard>\n )\n}\nSuppliersCard.displayName = 'SuppliersCard'\n\nexport default SuppliersCard\n"],"names":["Aglyn","CardDisplay","useConfirmationContext","useSnackbar","Button","Dialog","DialogActions","DialogContent","DialogTitle","Stack","TextField","Typography","collection","deleteDoc","doc","setDoc","useCallback","useState","useFirestore","collectionPage","usePagedCollection","writeGuardedBySeed","ListPagination","EntitlementGatedCard","pluginDocsHelp","suppliersHelp","anchor","SuppliersCard","props","hostId","firestore","enqueueSnackbar","confirm","status","suppliersStatus","fromCache","suppliersFromCache","rows","suppliers","hasMore","page","setPage","pageSize","setPageSize","pageLimit","idField","draft","setDraft","handleSave","name","trim","id","data","verdict","subject","unreadable","Boolean","createResourceUid","slice","ok","message","variant","persist","handleDelete","supplier","confirmed","title","description","confirmationText","confirmationButtonProps","color","then","catch","$id","help","feature","header","upsell","PLATFORM_BRAND_NAME","contentGutterX","contentGutterY","spacing","length","map","direction","sx","alignItems","flex","minWidth","noWrap","email","webhookUrl","filter","join","size","onClick","webhookSecret","rowCount","onPageChange","onPageSizeChange","alignSelf","open","onClose","maxWidth","fullWidth","display","flexDirection","gap","label","value","onChange","event","prev","target","autoFocus","mt","helperText","placeholder","disabled","displayName"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface TaxSettingsCardProps {
2
+ hostId: string;
3
+ }
4
+ /**
5
+ * Tax settings (AGL-285): manual per-region rates (most-specific wins)
6
+ * or Stripe Tax automatic calculation, stored on
7
+ * `hosts/{hostId}/settings/store` under `tax`. The legacy quick-buy
8
+ * checkout taxes by the store origin; Checkout v2 taxes by destination.
9
+ */
10
+ export declare function TaxSettingsCard(props: TaxSettingsCardProps): import("react").JSX.Element;
11
+ export declare namespace TaxSettingsCard {
12
+ var displayName: string;
13
+ }
14
+ export default TaxSettingsCard;