@mercurjs/vendor 2.0.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/dist/[id]-23D3HY3G.js +444 -0
  2. package/dist/[id]-2VBOAZM4.js +1215 -0
  3. package/dist/[id]-A4FSDRER.js +325 -0
  4. package/dist/[id]-E45G2SDA.js +213 -0
  5. package/dist/[id]-FXKSI52D.js +477 -0
  6. package/dist/[id]-HHZ3BSXV.js +1166 -0
  7. package/dist/[id]-MIV4U5UW.js +137 -0
  8. package/dist/[id]-QSRIPPIP.js +612 -0
  9. package/dist/[id]-RGDXOC7T.js +499 -0
  10. package/dist/[id]-TI2MOR2C.js +377 -0
  11. package/dist/[id]-U5DT2ZLS.js +301 -0
  12. package/dist/[id]-UMFGLDM2.js +354 -0
  13. package/dist/[id]-VTFOP3BF.js +97 -0
  14. package/dist/[id]-ZYF75L6G.js +479 -0
  15. package/dist/[location_id]-4UIEW5KM.js +685 -0
  16. package/dist/[province_id]-ZCHPXXQN.js +205 -0
  17. package/dist/add-KNDQL6YN.js +660 -0
  18. package/dist/add-customer-groups-JA346MTF.js +275 -0
  19. package/dist/add-products-2VB57KXV.js +273 -0
  20. package/dist/add-promotions-KVKEP6EO.js +260 -0
  21. package/dist/add-to-campaign-V6D7JKRS.js +44 -0
  22. package/dist/additional-attributes-E36EZX4V.js +219 -0
  23. package/dist/adjust-inventory-P7AB7VIB.js +228 -0
  24. package/dist/allocate-items-QAS5PZLR.js +529 -0
  25. package/dist/areas-Y7VDWH7G.js +151 -0
  26. package/dist/attributes-UEM2VJKV.js +277 -0
  27. package/dist/breadcrumb-3QTVWXZB.js +27 -0
  28. package/dist/breadcrumb-5OTOCYNL.js +38 -0
  29. package/dist/breadcrumb-6NAAOPIY.js +11 -0
  30. package/dist/breadcrumb-ASB2YCNV.js +25 -0
  31. package/dist/breadcrumb-CIGKLKKS.js +28 -0
  32. package/dist/breadcrumb-EOYLR3IQ.js +22 -0
  33. package/dist/breadcrumb-LENACUAA.js +22 -0
  34. package/dist/breadcrumb-LIXGWUQF.js +44 -0
  35. package/dist/breadcrumb-MOQ7GI3Z.js +27 -0
  36. package/dist/breadcrumb-NCBGPQML.js +23 -0
  37. package/dist/breadcrumb-OVMEC5OZ.js +33 -0
  38. package/dist/breadcrumb-RIXJ5QSX.js +45 -0
  39. package/dist/breadcrumb-TZB6EWNC.js +31 -0
  40. package/dist/breadcrumb-WP34OXGQ.js +23 -0
  41. package/dist/campaigns-PMVKUFEA.js +28 -0
  42. package/dist/categories-CKKIUMYG.js +27 -0
  43. package/dist/chunk-26OOAKQ6.js +18 -0
  44. package/dist/chunk-2C3HUJ3Z.js +222 -0
  45. package/dist/chunk-2F3H6ORE.js +36 -0
  46. package/dist/chunk-2ZFELO2L.js +13 -0
  47. package/dist/chunk-3CK6OINO.js +448 -0
  48. package/dist/chunk-3EF54XFY.js +64 -0
  49. package/dist/chunk-3LPVUPZZ.js +74 -0
  50. package/dist/chunk-3QSRE5LS.js +161 -0
  51. package/dist/chunk-3SIDRPKT.js +185 -0
  52. package/dist/chunk-4F5GP7J7.js +45 -0
  53. package/dist/chunk-4GPAS5GW.js +36 -0
  54. package/dist/chunk-4MFMCZEJ.js +70 -0
  55. package/dist/chunk-4TBDDMFP.js +425 -0
  56. package/dist/chunk-4TLP3TAA.js +34 -0
  57. package/dist/chunk-54TMLQH3.js +9 -0
  58. package/dist/chunk-5NF4OTVV.js +169 -0
  59. package/dist/chunk-66V3GFSW.js +138 -0
  60. package/dist/chunk-6EYGH3TB.js +26 -0
  61. package/dist/chunk-6IJMSVC6.js +16 -0
  62. package/dist/chunk-6YA3C4NB.js +55 -0
  63. package/dist/chunk-7AV5EJJ5.js +29 -0
  64. package/dist/chunk-7RPRNVBS.js +45 -0
  65. package/dist/chunk-A2SY5L5G.js +183 -0
  66. package/dist/chunk-A5DJIOHN.js +4 -0
  67. package/dist/chunk-AIFLEWO2.js +56 -0
  68. package/dist/chunk-ASVMGV2B.js +80 -0
  69. package/dist/chunk-AW77UWCZ.js +363 -0
  70. package/dist/chunk-AYUG34XF.js +84 -0
  71. package/dist/chunk-AYVH6Q5O.js +31 -0
  72. package/dist/chunk-B2RVONU7.js +160 -0
  73. package/dist/chunk-BCU3FKP2.js +18 -0
  74. package/dist/chunk-BDGZ4EQO.js +86 -0
  75. package/dist/chunk-BDZOSMAX.js +23 -0
  76. package/dist/chunk-C6SUTRP2.js +13 -0
  77. package/dist/chunk-CDIZEXFJ.js +145 -0
  78. package/dist/chunk-CFETU5BI.js +261 -0
  79. package/dist/chunk-CMHI2RPL.js +20 -0
  80. package/dist/chunk-CP5IL4P6.js +98 -0
  81. package/dist/chunk-CUO22GTM.js +96 -0
  82. package/dist/chunk-CVVYQI5F.js +41 -0
  83. package/dist/chunk-DARJTN4I.js +60 -0
  84. package/dist/chunk-DB6ANJBO.js +35 -0
  85. package/dist/chunk-DC2K6CFQ.js +86 -0
  86. package/dist/chunk-DDEIH66R.js +123 -0
  87. package/dist/chunk-DY3XQPHC.js +31 -0
  88. package/dist/chunk-DYUTYBAQ.js +67 -0
  89. package/dist/chunk-E3MNEQID.js +24 -0
  90. package/dist/chunk-FBZHM2QZ.js +247 -0
  91. package/dist/chunk-FDZC3TFZ.js +717 -0
  92. package/dist/chunk-FGCKXH45.js +263 -0
  93. package/dist/chunk-FMFVTERD.js +0 -0
  94. package/dist/chunk-FOMEBUX6.js +89 -0
  95. package/dist/chunk-FQERBIVS.js +0 -0
  96. package/dist/chunk-GC33DBKG.js +143 -0
  97. package/dist/chunk-GDMNHL7E.js +144 -0
  98. package/dist/chunk-GTUR4HSV.js +53 -0
  99. package/dist/chunk-H35HHFTB.js +225 -0
  100. package/dist/chunk-HB3BP55W.js +25 -0
  101. package/dist/chunk-HHD2VUED.js +29 -0
  102. package/dist/chunk-HUNGNEPY.js +312 -0
  103. package/dist/chunk-HUZG6A3X.js +127 -0
  104. package/dist/chunk-INNFZYX2.js +183 -0
  105. package/dist/chunk-IQPN4PZJ.js +749 -0
  106. package/dist/chunk-IZ5RG5XI.js +72 -0
  107. package/dist/chunk-J2XP7VRG.js +1080 -0
  108. package/dist/chunk-JHIMVLB2.js +42 -0
  109. package/dist/chunk-JKXAL7WR.js +92 -0
  110. package/dist/chunk-JRTZWK77.js +1764 -0
  111. package/dist/chunk-JVBLYMY2.js +268 -0
  112. package/dist/chunk-JXP5YZ77.js +86 -0
  113. package/dist/chunk-KAZ5BYTQ.js +132 -0
  114. package/dist/chunk-KHHY7EEM.js +267 -0
  115. package/dist/chunk-LAVHRER2.js +17 -0
  116. package/dist/chunk-LQSLDDPT.js +67 -0
  117. package/dist/chunk-LWVBKUUL.js +77 -0
  118. package/dist/chunk-LYUCDASZ.js +115 -0
  119. package/dist/chunk-LZ7QV42C.js +37 -0
  120. package/dist/chunk-MAEP2UCK.js +110 -0
  121. package/dist/chunk-MG4GKUJW.js +31 -0
  122. package/dist/chunk-N2TQXB44.js +1280 -0
  123. package/dist/chunk-N3T24SEK.js +32 -0
  124. package/dist/chunk-NANYVBFI.js +106 -0
  125. package/dist/chunk-NCMUZ6BQ.js +0 -0
  126. package/dist/chunk-NCYTM57J.js +160 -0
  127. package/dist/chunk-NX26QE2O.js +47 -0
  128. package/dist/chunk-NYDJTWRL.js +389 -0
  129. package/dist/chunk-O5LRZEG6.js +253 -0
  130. package/dist/chunk-O6PRBSFL.js +115 -0
  131. package/dist/chunk-OJCDB3N5.js +539 -0
  132. package/dist/chunk-OSFOX7MG.js +176 -0
  133. package/dist/chunk-OVPAOBZB.js +110 -0
  134. package/dist/chunk-PADOWAXM.js +118 -0
  135. package/dist/chunk-PHOCVOZ5.js +9 -0
  136. package/dist/chunk-PKBMQBKP.js +7 -0
  137. package/dist/chunk-PLSJ74T2.js +298 -0
  138. package/dist/chunk-PVZBDWLK.js +41 -0
  139. package/dist/chunk-PWZKFTJS.js +247 -0
  140. package/dist/chunk-PXYDR7WQ.js +48 -0
  141. package/dist/chunk-PYQJ5N25.js +191 -0
  142. package/dist/chunk-Q4UVXS46.js +14 -0
  143. package/dist/chunk-QDPLZDMX.js +17 -0
  144. package/dist/chunk-QSGR43JM.js +30 -0
  145. package/dist/chunk-QUNDGPF7.js +92801 -0
  146. package/dist/chunk-R65A4P4H.js +136 -0
  147. package/dist/chunk-RE7YXVFG.js +128 -0
  148. package/dist/chunk-RETT6WME.js +37 -0
  149. package/dist/chunk-RHKRREUU.js +15 -0
  150. package/dist/chunk-RIILGKYR.js +32 -0
  151. package/dist/chunk-RM5RSDYP.js +353 -0
  152. package/dist/chunk-RNC4NFVK.js +170 -0
  153. package/dist/chunk-RSMZHZI2.js +2078 -0
  154. package/dist/chunk-RXM4B6HR.js +8 -0
  155. package/dist/chunk-S2WEYEQR.js +14 -0
  156. package/dist/chunk-S3PQKKNV.js +49 -0
  157. package/dist/chunk-S5GQ2SES.js +276 -0
  158. package/dist/chunk-SECZTXSU.js +31 -0
  159. package/dist/chunk-SI4ALL7W.js +180 -0
  160. package/dist/chunk-SID3COTK.js +21 -0
  161. package/dist/chunk-SMQT3ZNO.js +8 -0
  162. package/dist/chunk-SOZMJA7V.js +61 -0
  163. package/dist/chunk-TG3TCIL6.js +207 -0
  164. package/dist/chunk-THHRRYRS.js +16 -0
  165. package/dist/chunk-TKGWSUEI.js +0 -0
  166. package/dist/chunk-TTFCO5HU.js +173 -0
  167. package/dist/chunk-TXEPCJEQ.js +430 -0
  168. package/dist/chunk-U2EI2ZLM.js +32 -0
  169. package/dist/chunk-U2ZFCAPX.js +34 -0
  170. package/dist/chunk-U3X4DNV6.js +179 -0
  171. package/dist/chunk-UXKKD4AD.js +437 -0
  172. package/dist/chunk-UYJ65N46.js +261 -0
  173. package/dist/chunk-VDWGP2U6.js +71 -0
  174. package/dist/chunk-VGJTARSA.js +89 -0
  175. package/dist/chunk-VHMGJUYN.js +28 -0
  176. package/dist/chunk-VKC3XKFF.js +283 -0
  177. package/dist/chunk-VKOE5J66.js +31 -0
  178. package/dist/chunk-VOHEQ7B5.js +31 -0
  179. package/dist/chunk-VW56KWO2.js +9 -0
  180. package/dist/chunk-W4KHJ4D6.js +74 -0
  181. package/dist/chunk-W6Y3PPU5.js +73 -0
  182. package/dist/chunk-W6ZVQJYB.js +311 -0
  183. package/dist/chunk-WA3IVAUC.js +123 -0
  184. package/dist/chunk-WHTS4G5K.js +1551 -0
  185. package/dist/chunk-WIYFXWRI.js +30 -0
  186. package/dist/chunk-WPFTRRWV.js +455 -0
  187. package/dist/chunk-WQZ4ONQV.js +6 -0
  188. package/dist/chunk-WS652CCV.js +893 -0
  189. package/dist/chunk-XG4PTPRM.js +0 -0
  190. package/dist/chunk-XRNDVICA.js +85 -0
  191. package/dist/chunk-XXZJISPX.js +48 -0
  192. package/dist/chunk-Y224F4UU.js +81 -0
  193. package/dist/chunk-Y3FR5JC7.js +437 -0
  194. package/dist/chunk-Y4VBOHAP.js +111 -0
  195. package/dist/chunk-Y7QKP6QU.js +35 -0
  196. package/dist/chunk-YVCBMOJG.js +50 -0
  197. package/dist/chunk-Z2WPXJ6J.js +146 -0
  198. package/dist/chunk-ZA2KFUFR.js +19 -0
  199. package/dist/chunk-ZEKV7LGF.js +6 -0
  200. package/dist/chunk-ZFFA36DB.js +186 -0
  201. package/dist/chunk-ZPGWTLF2.js +499 -0
  202. package/dist/chunk-ZVT2QSWR.js +263 -0
  203. package/dist/chunk-ZZ7VKT2S.js +4113 -0
  204. package/dist/collections-TREF67TO.js +63 -0
  205. package/dist/configuration-KWAL2QZ5.js +152 -0
  206. package/dist/configuration-RNWBTRAH.js +205 -0
  207. package/dist/create-7UEEO5TM.js +125 -0
  208. package/dist/create-DTCDJMIT.js +634 -0
  209. package/dist/create-DYDRAY6V.js +622 -0
  210. package/dist/create-EJM5C2XP.js +27 -0
  211. package/dist/create-F7OMPGZV.js +853 -0
  212. package/dist/create-G4UJOJJ6.js +69 -0
  213. package/dist/create-IE6MYOIY.js +170 -0
  214. package/dist/create-L23TGTBH.js +225 -0
  215. package/dist/create-LOBCFTCT.js +583 -0
  216. package/dist/create-MKBBF2V3.js +150 -0
  217. package/dist/create-TFDUNJSI.js +163 -0
  218. package/dist/create-TMTZDKII.js +711 -0
  219. package/dist/create-XGF6DB5F.js +239 -0
  220. package/dist/create-YAAK7JQ3.js +1052 -0
  221. package/dist/create-YPCVTXAK.js +194 -0
  222. package/dist/create-ZU362U3B.js +310 -0
  223. package/dist/customers-4QWR5UOL.js +27 -0
  224. package/dist/edit-2QA5BVOY.js +735 -0
  225. package/dist/edit-47I7VVNB.js +167 -0
  226. package/dist/edit-5BUGSOTL.js +255 -0
  227. package/dist/edit-7LQATDUD.js +193 -0
  228. package/dist/edit-AQAPYMDY.js +260 -0
  229. package/dist/edit-BQLSTFTQ.js +138 -0
  230. package/dist/edit-BYXHU3IG.js +308 -0
  231. package/dist/edit-DG3MY3ZH.js +244 -0
  232. package/dist/edit-J3LD76JS.js +192 -0
  233. package/dist/edit-J6WCPHDS.js +205 -0
  234. package/dist/edit-KCZVZLSZ.js +131 -0
  235. package/dist/edit-LOKLQGM2.js +181 -0
  236. package/dist/edit-MDTTTB33.js +104 -0
  237. package/dist/edit-NFSU2K3O.js +413 -0
  238. package/dist/edit-RHNZWNXD.js +89 -0
  239. package/dist/edit-XU33IVZH.js +204 -0
  240. package/dist/edit-ZMINDMGM.js +116 -0
  241. package/dist/edit-budget-Z5USV462.js +145 -0
  242. package/dist/edit-inventory-item-YFW2AFRD.js +128 -0
  243. package/dist/edit-inventory-item-attributes-IYAMJDTB.js +278 -0
  244. package/dist/fulfillment-SKXAF3BZ.js +545 -0
  245. package/dist/fulfillment-providers-ACERVITQ.js +279 -0
  246. package/dist/home-PP7YYCSB.js +16 -0
  247. package/dist/index.css +6 -0
  248. package/dist/index.d.ts +39 -0
  249. package/dist/index.js +3656 -0
  250. package/dist/inventory-AIRQ2KNS.js +26 -0
  251. package/dist/locations-SQKM7JWN.js +23 -0
  252. package/dist/login-LKFCRHXN.js +35 -0
  253. package/dist/manage-locations-4PQS4QY7.js +195 -0
  254. package/dist/media-PL477QJO.js +703 -0
  255. package/dist/metadata-42MU3H7T.js +60 -0
  256. package/dist/metadata-DIJTVDF7.js +45 -0
  257. package/dist/metadata-NX3LEEB3.js +64 -0
  258. package/dist/metadata-RBDSM567.js +65 -0
  259. package/dist/metadata-VZTWNZPG.js +66 -0
  260. package/dist/metadata-X3XGQ563.js +67 -0
  261. package/dist/no-match-BO2NNLCM.js +33 -0
  262. package/dist/orders-2KHCHNO5.js +59 -0
  263. package/dist/organization-VQXCKHCN.js +233 -0
  264. package/dist/organize-3F5ZUIGB.js +23 -0
  265. package/dist/organize-WPWEPCF7.js +23 -0
  266. package/dist/pages/index.d.ts +1153 -0
  267. package/dist/pages/index.js +198 -0
  268. package/dist/payouts-3BY73LZ3.js +27 -0
  269. package/dist/price-lists-G256JJN7.js +34 -0
  270. package/dist/prices-EW7KBY6R.js +269 -0
  271. package/dist/pricing-3PUJDOZN.js +313 -0
  272. package/dist/product-tags-PI3RENEX.js +80 -0
  273. package/dist/product-types-WJPLJI7H.js +32 -0
  274. package/dist/product-variant-detail-EYTE7PHL.js +377 -0
  275. package/dist/product-variant-edit-PW7W5J5E.js +402 -0
  276. package/dist/products-GSN4I7BT.js +272 -0
  277. package/dist/products-RFYNEY57.js +85 -0
  278. package/dist/promotions-CIZIDQ64.js +31 -0
  279. package/dist/reset-password-OFUSH363.js +299 -0
  280. package/dist/return-reasons-4V2KVSRI.js +52 -0
  281. package/dist/sales-channels-MBWVM3X2.js +184 -0
  282. package/dist/sales-channels-ZKA62EAW.js +156 -0
  283. package/dist/seller-ZFDLKF5Y.js +36 -0
  284. package/dist/settings-NP2IAID5.js +111 -0
  285. package/dist/shipping-profile-7FTHSPY2.js +145 -0
  286. package/dist/shipping-profiles-7R6L65WG.js +43 -0
  287. package/dist/stock-ENMBCZRY.js +502 -0
  288. package/dist/stock-VYDJY46S.js +278 -0
  289. package/dist/tax-regions-V6G6244H.js +87 -0
  290. package/package.json +87 -0
@@ -0,0 +1,1215 @@
1
+ import {
2
+ DEFAULT_FIELDS
3
+ } from "./chunk-DARJTN4I.js";
4
+ import "./chunk-BCU3FKP2.js";
5
+ import {
6
+ formatProvider
7
+ } from "./chunk-VW56KWO2.js";
8
+ import {
9
+ getCanceledOrderStatus,
10
+ getOrderFulfillmentStatus,
11
+ getOrderPaymentStatus
12
+ } from "./chunk-LQSLDDPT.js";
13
+ import {
14
+ getLocaleAmount,
15
+ getStylizedAmount,
16
+ isAmountLessThenRoundingError
17
+ } from "./chunk-PXYDR7WQ.js";
18
+ import "./chunk-IQPN4PZJ.js";
19
+ import {
20
+ getFormattedAddress,
21
+ isSameAddress
22
+ } from "./chunk-W6Y3PPU5.js";
23
+ import {
24
+ TwoColumnPage
25
+ } from "./chunk-RM5RSDYP.js";
26
+ import {
27
+ Thumbnail
28
+ } from "./chunk-WIYFXWRI.js";
29
+ import {
30
+ ActionMenu
31
+ } from "./chunk-BDGZ4EQO.js";
32
+ import {
33
+ useDate
34
+ } from "./chunk-CFETU5BI.js";
35
+ import "./chunk-JRTZWK77.js";
36
+ import "./chunk-LAVHRER2.js";
37
+ import "./chunk-Y7QKP6QU.js";
38
+ import {
39
+ Skeleton,
40
+ TwoColumnPageSkeleton
41
+ } from "./chunk-INNFZYX2.js";
42
+ import {
43
+ useStockLocation
44
+ } from "./chunk-SI4ALL7W.js";
45
+ import {
46
+ ordersQueryKeys,
47
+ useCancelOrder,
48
+ useCancelOrderFulfillment,
49
+ useCompleteOrder,
50
+ useMarkOrderFulfillmentAsDelivered,
51
+ useOrder
52
+ } from "./chunk-ZFFA36DB.js";
53
+ import "./chunk-WPFTRRWV.js";
54
+ import "./chunk-A5DJIOHN.js";
55
+ import {
56
+ queryClient
57
+ } from "./chunk-RHKRREUU.js";
58
+ import "./chunk-ZA2KFUFR.js";
59
+ import {
60
+ fetchQuery
61
+ } from "./chunk-Y224F4UU.js";
62
+ import "./chunk-PKBMQBKP.js";
63
+
64
+ // src/pages/orders/[id]/loader.tsx
65
+ var orderDetailQuery = (id) => ({
66
+ queryKey: ordersQueryKeys.detail(id),
67
+ queryFn: async () => fetchQuery(`/vendor/orders/${id}`, {
68
+ method: "GET",
69
+ query: { fields: DEFAULT_FIELDS }
70
+ })
71
+ });
72
+ var loader = async ({ params }) => {
73
+ const id = params.id;
74
+ const query = orderDetailQuery(id);
75
+ return queryClient.ensureQueryData(query);
76
+ };
77
+
78
+ // src/pages/orders/[id]/order-detail-page.tsx
79
+ import { Children } from "react";
80
+ import { useLoaderData, useParams } from "react-router-dom";
81
+
82
+ // src/pages/orders/[id]/_components/order-customer-section/order-customer-section.tsx
83
+ import { Container, Heading } from "@medusajs/ui";
84
+ import { useTranslation as useTranslation2 } from "react-i18next";
85
+
86
+ // src/components/common/customer-info/customer-info.tsx
87
+ import { Avatar, Copy, Text } from "@medusajs/ui";
88
+ import { useTranslation } from "react-i18next";
89
+ import { Link } from "react-router-dom";
90
+ import { jsx, jsxs } from "react/jsx-runtime";
91
+ var ID = ({ data }) => {
92
+ const { t } = useTranslation();
93
+ const id = data.customer_id;
94
+ const name = getOrderCustomer(data);
95
+ const email = data.email;
96
+ const fallback = (name || email || "").charAt(0).toUpperCase();
97
+ return /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-center px-6 py-4", children: [
98
+ /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", weight: "plus", children: t("fields.id") }),
99
+ /* @__PURE__ */ jsx(
100
+ Link,
101
+ {
102
+ to: `/customers/${id}`,
103
+ className: "focus:shadow-borders-focus rounded-[4px] outline-none transition-shadow",
104
+ children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-2 overflow-hidden", children: [
105
+ /* @__PURE__ */ jsx(Avatar, { size: "2xsmall", fallback }),
106
+ /* @__PURE__ */ jsx(
107
+ Text,
108
+ {
109
+ size: "small",
110
+ leading: "compact",
111
+ className: "text-ui-fg-subtle hover:text-ui-fg-base transition-fg truncate",
112
+ children: name || email
113
+ }
114
+ )
115
+ ] })
116
+ }
117
+ )
118
+ ] });
119
+ };
120
+ var Company = ({ data }) => {
121
+ const { t } = useTranslation();
122
+ const company = data.shipping_address?.company || data.billing_address?.company;
123
+ if (!company) {
124
+ return null;
125
+ }
126
+ return /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-center px-6 py-4", children: [
127
+ /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", weight: "plus", children: t("fields.company") }),
128
+ /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", className: "truncate", children: company })
129
+ ] });
130
+ };
131
+ var Contact = ({ data }) => {
132
+ const { t } = useTranslation();
133
+ const phone = data.shipping_address?.phone || data.billing_address?.phone;
134
+ const email = data.email || "";
135
+ return /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-start px-6 py-4", children: [
136
+ /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", weight: "plus", children: t("orders.customer.contactLabel") }),
137
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
138
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1fr_20px] items-start gap-x-2", children: [
139
+ /* @__PURE__ */ jsx(
140
+ Text,
141
+ {
142
+ size: "small",
143
+ leading: "compact",
144
+ className: "text-pretty break-all",
145
+ children: email
146
+ }
147
+ ),
148
+ /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(Copy, { content: email, className: "text-ui-fg-muted" }) })
149
+ ] }),
150
+ phone && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1fr_20px] items-start gap-x-2", children: [
151
+ /* @__PURE__ */ jsx(
152
+ Text,
153
+ {
154
+ size: "small",
155
+ leading: "compact",
156
+ className: "text-pretty break-all",
157
+ children: phone
158
+ }
159
+ ),
160
+ /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(Copy, { content: phone, className: "text-ui-fg-muted" }) })
161
+ ] })
162
+ ] })
163
+ ] });
164
+ };
165
+ var AddressPrint = ({
166
+ address,
167
+ type
168
+ }) => {
169
+ const { t } = useTranslation();
170
+ return /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-start px-6 py-4", children: [
171
+ /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", weight: "plus", children: type === "shipping" ? t("addresses.shippingAddress.label") : t("addresses.billingAddress.label") }),
172
+ address ? /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1fr_20px] items-start gap-x-2", children: [
173
+ /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", children: getFormattedAddress({ address }).map((line, i) => {
174
+ return /* @__PURE__ */ jsxs("span", { className: "break-words", children: [
175
+ line,
176
+ /* @__PURE__ */ jsx("br", {})
177
+ ] }, i);
178
+ }) }),
179
+ /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(
180
+ Copy,
181
+ {
182
+ content: getFormattedAddress({ address }).join("\n"),
183
+ className: "text-ui-fg-muted"
184
+ }
185
+ ) })
186
+ ] }) : /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", children: "-" })
187
+ ] });
188
+ };
189
+ var Addresses = ({ data }) => {
190
+ const { t } = useTranslation();
191
+ return /* @__PURE__ */ jsxs("div", { className: "divide-y", children: [
192
+ /* @__PURE__ */ jsx(AddressPrint, { address: data.shipping_address, type: "shipping" }),
193
+ !isSameAddress(data.shipping_address, data.billing_address) ? /* @__PURE__ */ jsx(AddressPrint, { address: data.billing_address, type: "billing" }) : /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 items-center px-6 py-4", children: [
194
+ /* @__PURE__ */ jsx(
195
+ Text,
196
+ {
197
+ size: "small",
198
+ leading: "compact",
199
+ weight: "plus",
200
+ className: "text-ui-fg-subtle",
201
+ children: t("addresses.billingAddress.label")
202
+ }
203
+ ),
204
+ /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", className: "text-ui-fg-muted", children: t("addresses.billingAddress.sameAsShipping") })
205
+ ] })
206
+ ] });
207
+ };
208
+ var CustomerInfo = Object.assign(
209
+ {},
210
+ {
211
+ ID,
212
+ Company,
213
+ Contact,
214
+ Addresses
215
+ }
216
+ );
217
+ var getOrderCustomer = (obj) => {
218
+ const { first_name: sFirstName, last_name: sLastName } = obj.shipping_address || {};
219
+ const { first_name: bFirstName, last_name: bLastName } = obj.billing_address || {};
220
+ const { first_name: cFirstName, last_name: cLastName } = obj.customer || {};
221
+ const customerName = [cFirstName, cLastName].filter(Boolean).join(" ");
222
+ const shippingName = [sFirstName, sLastName].filter(Boolean).join(" ");
223
+ const billingName = [bFirstName, bLastName].filter(Boolean).join(" ");
224
+ const name = customerName || shippingName || billingName;
225
+ return name;
226
+ };
227
+
228
+ // src/pages/orders/[id]/_components/order-customer-section/order-customer-section.tsx
229
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
230
+ var OrderCustomerSection = ({ order }) => {
231
+ return /* @__PURE__ */ jsxs2(Container, { className: "divide-y p-0", children: [
232
+ /* @__PURE__ */ jsx2(Header, {}),
233
+ /* @__PURE__ */ jsx2(CustomerInfo.ID, { data: order }),
234
+ /* @__PURE__ */ jsx2(CustomerInfo.Contact, { data: order }),
235
+ /* @__PURE__ */ jsx2(CustomerInfo.Company, { data: order }),
236
+ /* @__PURE__ */ jsx2(CustomerInfo.Addresses, { data: order })
237
+ ] });
238
+ };
239
+ var Header = () => {
240
+ const { t } = useTranslation2();
241
+ return /* @__PURE__ */ jsx2("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsx2(Heading, { level: "h2", children: t("fields.customer") }) });
242
+ };
243
+
244
+ // src/pages/orders/[id]/_components/order-fulfillment-section/order-fulfillment-section.tsx
245
+ import { XCircle } from "@medusajs/icons";
246
+ import {
247
+ Button,
248
+ Container as Container2,
249
+ Copy as Copy2,
250
+ Heading as Heading2,
251
+ StatusBadge,
252
+ Text as Text2,
253
+ Tooltip,
254
+ toast,
255
+ usePrompt
256
+ } from "@medusajs/ui";
257
+ import { format } from "date-fns";
258
+ import { useTranslation as useTranslation3 } from "react-i18next";
259
+ import { Link as Link2, useNavigate } from "react-router-dom";
260
+ import { Fragment, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
261
+ var OrderFulfillmentSection = ({
262
+ order
263
+ }) => {
264
+ const fulfillments = order.fulfillments || [];
265
+ return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-y-3", children: [
266
+ /* @__PURE__ */ jsx3(UnfulfilledItemBreakdown, { order }),
267
+ fulfillments.map((f, index) => /* @__PURE__ */ jsx3(Fulfillment, { index, fulfillment: f, order }, f.id))
268
+ ] });
269
+ };
270
+ var UnfulfilledItem = ({
271
+ item,
272
+ currencyCode
273
+ }) => {
274
+ return /* @__PURE__ */ jsxs3(
275
+ "div",
276
+ {
277
+ className: "text-ui-fg-subtle grid grid-cols-2 items-start px-6 py-4",
278
+ children: [
279
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-start gap-x-4", children: [
280
+ /* @__PURE__ */ jsx3(Thumbnail, { src: item.thumbnail }),
281
+ /* @__PURE__ */ jsxs3("div", { children: [
282
+ /* @__PURE__ */ jsx3(
283
+ Text2,
284
+ {
285
+ size: "small",
286
+ leading: "compact",
287
+ weight: "plus",
288
+ className: "text-ui-fg-base",
289
+ children: item.title
290
+ }
291
+ ),
292
+ item.variant_sku && /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-x-1", children: [
293
+ /* @__PURE__ */ jsx3(Text2, { size: "small", children: item.variant_sku }),
294
+ /* @__PURE__ */ jsx3(Copy2, { content: item.variant_sku, className: "text-ui-fg-muted" })
295
+ ] }),
296
+ /* @__PURE__ */ jsx3(Text2, { size: "small", children: item.variant?.options?.map((o) => o.value).join(" \xB7 ") })
297
+ ] })
298
+ ] }),
299
+ /* @__PURE__ */ jsxs3("div", { className: "grid grid-cols-3 items-center gap-x-4", children: [
300
+ /* @__PURE__ */ jsx3("div", { className: "flex items-center justify-end", children: /* @__PURE__ */ jsx3(Text2, { size: "small", children: getLocaleAmount(item.unit_price, currencyCode) }) }),
301
+ /* @__PURE__ */ jsx3("div", { className: "flex items-center justify-end", children: /* @__PURE__ */ jsxs3(Text2, { children: [
302
+ /* @__PURE__ */ jsx3("span", { className: "tabular-nums", children: item.quantity - item.detail.fulfilled_quantity }),
303
+ "x"
304
+ ] }) }),
305
+ /* @__PURE__ */ jsx3("div", { className: "flex items-center justify-end", children: /* @__PURE__ */ jsx3(Text2, { size: "small", children: getLocaleAmount(item.subtotal || 0, currencyCode) }) })
306
+ ] })
307
+ ]
308
+ },
309
+ item.id
310
+ );
311
+ };
312
+ var UnfulfilledItemBreakdown = ({ order }) => {
313
+ const unfulfilledItemsWithShipping = order.items.filter(
314
+ (i) => i.requires_shipping && i.detail && i.quantity && i.detail.fulfilled_quantity < i.quantity
315
+ );
316
+ const unfulfilledItemsWithoutShipping = order.items.filter(
317
+ (i) => !i.requires_shipping && i.detail && i.quantity && i.detail.fulfilled_quantity < i.quantity
318
+ );
319
+ return /* @__PURE__ */ jsxs3(Fragment, { children: [
320
+ !!unfulfilledItemsWithShipping.length && /* @__PURE__ */ jsx3(
321
+ UnfulfilledItemDisplay,
322
+ {
323
+ order,
324
+ unfulfilledItems: unfulfilledItemsWithShipping,
325
+ requiresShipping: true
326
+ }
327
+ ),
328
+ !!unfulfilledItemsWithoutShipping.length && /* @__PURE__ */ jsx3(
329
+ UnfulfilledItemDisplay,
330
+ {
331
+ order,
332
+ unfulfilledItems: unfulfilledItemsWithoutShipping,
333
+ requiresShipping: false
334
+ }
335
+ )
336
+ ] });
337
+ };
338
+ var UnfulfilledItemDisplay = ({
339
+ order,
340
+ unfulfilledItems,
341
+ requiresShipping = false
342
+ }) => {
343
+ const { t } = useTranslation3();
344
+ if (order.status === "canceled") {
345
+ return;
346
+ }
347
+ return /* @__PURE__ */ jsxs3(Container2, { className: "divide-y p-0", children: [
348
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between px-6 py-4", children: [
349
+ /* @__PURE__ */ jsx3(Heading2, { level: "h2", children: t("orders.fulfillment.unfulfilledItems") }),
350
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-x-4", children: [
351
+ requiresShipping && /* @__PURE__ */ jsx3(StatusBadge, { color: "red", className: "text-nowrap", children: t("orders.fulfillment.requiresShipping") }),
352
+ /* @__PURE__ */ jsx3(StatusBadge, { color: "red", className: "text-nowrap", children: t("orders.fulfillment.awaitingFulfillmentBadge") })
353
+ ] })
354
+ ] }),
355
+ /* @__PURE__ */ jsx3("div", { children: unfulfilledItems.map((item) => /* @__PURE__ */ jsx3(
356
+ UnfulfilledItem,
357
+ {
358
+ item,
359
+ currencyCode: order.currency_code
360
+ },
361
+ item.id
362
+ )) }),
363
+ /* @__PURE__ */ jsx3("div", { className: "px-6 py-4 flex justify-end", children: /* @__PURE__ */ jsx3(
364
+ Link2,
365
+ {
366
+ to: `/orders/${order.id}/fulfillment?requires_shipping=${requiresShipping}`,
367
+ children: /* @__PURE__ */ jsx3(Button, { children: "Fulfill items" })
368
+ }
369
+ ) })
370
+ ] });
371
+ };
372
+ var Fulfillment = ({
373
+ fulfillment,
374
+ order,
375
+ index
376
+ }) => {
377
+ const { t } = useTranslation3();
378
+ const prompt = usePrompt();
379
+ const navigate = useNavigate();
380
+ const showLocation = !!fulfillment.location_id;
381
+ const isPickUpFulfillment = fulfillment.shipping_option?.service_zone.fulfillment_set.type === "pickup" /* Pickup */;
382
+ const { stock_location, isError, error } = useStockLocation(
383
+ fulfillment.location_id,
384
+ void 0,
385
+ {
386
+ enabled: showLocation
387
+ }
388
+ );
389
+ let statusText = fulfillment.requires_shipping ? isPickUpFulfillment ? "Awaiting pickup" : "Awaiting shipping" : "Awaiting delivery";
390
+ let statusColor = "blue";
391
+ let statusTimestamp = fulfillment.created_at;
392
+ if (fulfillment.canceled_at) {
393
+ statusText = "Canceled";
394
+ statusColor = "red";
395
+ statusTimestamp = fulfillment.canceled_at;
396
+ } else if (fulfillment.delivered_at) {
397
+ statusText = "Delivered";
398
+ statusColor = "green";
399
+ statusTimestamp = fulfillment.delivered_at;
400
+ } else if (fulfillment.shipped_at) {
401
+ statusText = "Shipped";
402
+ statusColor = "green";
403
+ statusTimestamp = fulfillment.shipped_at;
404
+ }
405
+ const { mutateAsync } = useCancelOrderFulfillment(order.id, fulfillment.id);
406
+ const { mutateAsync: markAsDelivered } = useMarkOrderFulfillmentAsDelivered(
407
+ order.id,
408
+ fulfillment.id
409
+ );
410
+ const showShippingButton = !fulfillment.canceled_at && !fulfillment.shipped_at && !fulfillment.delivered_at && fulfillment.requires_shipping && !isPickUpFulfillment;
411
+ const showDeliveryButton = !fulfillment.canceled_at && !fulfillment.delivered_at;
412
+ const handleMarkAsDelivered = async () => {
413
+ const res = await prompt({
414
+ title: t("general.areYouSure"),
415
+ description: t("orders.fulfillment.markAsDeliveredWarning"),
416
+ confirmText: t("actions.continue"),
417
+ cancelText: t("actions.cancel"),
418
+ variant: "confirmation"
419
+ });
420
+ if (res) {
421
+ await markAsDelivered(void 0, {
422
+ onSuccess: () => {
423
+ toast.success(
424
+ t(
425
+ isPickUpFulfillment ? "orders.fulfillment.toast.fulfillmentPickedUp" : "orders.fulfillment.toast.fulfillmentDelivered"
426
+ )
427
+ );
428
+ },
429
+ onError: (e) => {
430
+ toast.error(e.message);
431
+ }
432
+ });
433
+ }
434
+ };
435
+ const handleCancel = async () => {
436
+ if (fulfillment.shipped_at) {
437
+ toast.warning(t("orders.fulfillment.toast.fulfillmentShipped"));
438
+ return;
439
+ }
440
+ const res = await prompt({
441
+ title: t("general.areYouSure"),
442
+ description: t("orders.fulfillment.cancelWarning"),
443
+ confirmText: t("actions.continue"),
444
+ cancelText: t("actions.cancel")
445
+ });
446
+ if (res) {
447
+ await mutateAsync(void 0, {
448
+ onSuccess: () => {
449
+ toast.success(t("orders.fulfillment.toast.canceled"));
450
+ },
451
+ onError: (e) => {
452
+ toast.error(e.message);
453
+ }
454
+ });
455
+ }
456
+ };
457
+ if (isError) {
458
+ throw error;
459
+ }
460
+ return /* @__PURE__ */ jsxs3(Container2, { className: "divide-y p-0", children: [
461
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between px-6 py-4", children: [
462
+ /* @__PURE__ */ jsx3(Heading2, { level: "h2", children: t("orders.fulfillment.number", {
463
+ number: index + 1
464
+ }) }),
465
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-x-4", children: [
466
+ /* @__PURE__ */ jsx3(
467
+ Tooltip,
468
+ {
469
+ content: format(
470
+ new Date(statusTimestamp),
471
+ "dd MMM, yyyy, HH:mm:ss"
472
+ ),
473
+ children: /* @__PURE__ */ jsx3(StatusBadge, { color: statusColor, className: "text-nowrap", children: statusText })
474
+ }
475
+ ),
476
+ /* @__PURE__ */ jsx3(
477
+ ActionMenu,
478
+ {
479
+ groups: [
480
+ {
481
+ actions: [
482
+ {
483
+ label: t("actions.cancel"),
484
+ icon: /* @__PURE__ */ jsx3(XCircle, {}),
485
+ onClick: handleCancel,
486
+ disabled: !!fulfillment.canceled_at
487
+ }
488
+ ]
489
+ }
490
+ ]
491
+ }
492
+ )
493
+ ] })
494
+ ] }),
495
+ /* @__PURE__ */ jsxs3("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-start px-6 py-4", children: [
496
+ /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", weight: "plus", children: t("orders.fulfillment.itemsLabel") }),
497
+ /* @__PURE__ */ jsx3("ul", { children: (fulfillment.items || []).map((f_item) => /* @__PURE__ */ jsx3("li", { children: /* @__PURE__ */ jsxs3(Text2, { size: "small", leading: "compact", children: [
498
+ f_item.quantity,
499
+ "x ",
500
+ f_item.title
501
+ ] }) }, f_item.line_item_id)) })
502
+ ] }),
503
+ showLocation && /* @__PURE__ */ jsxs3("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-center px-6 py-4", children: [
504
+ /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", weight: "plus", children: t("orders.fulfillment.shippingFromLabel") }),
505
+ stock_location ? /* @__PURE__ */ jsx3(
506
+ Link2,
507
+ {
508
+ to: `/settings/locations/${stock_location.id}`,
509
+ className: "text-ui-fg-interactive hover:text-ui-fg-interactive-hover transition-fg",
510
+ children: /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", children: stock_location.name })
511
+ }
512
+ ) : /* @__PURE__ */ jsx3(Skeleton, { className: "w-16" })
513
+ ] }),
514
+ /* @__PURE__ */ jsxs3("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-center px-6 py-4", children: [
515
+ /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", weight: "plus", children: t("fields.provider") }),
516
+ /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", children: formatProvider(fulfillment.provider_id) })
517
+ ] }),
518
+ /* @__PURE__ */ jsxs3("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-start px-6 py-4", children: [
519
+ /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", weight: "plus", children: t("orders.fulfillment.trackingLabel") }),
520
+ /* @__PURE__ */ jsx3("div", { children: fulfillment.labels && fulfillment.labels.length > 0 ? /* @__PURE__ */ jsx3("ul", { children: fulfillment.labels.map((tlink) => {
521
+ const hasUrl = !!tlink.tracking_url?.length && tlink.tracking_url !== "#";
522
+ if (hasUrl) {
523
+ return /* @__PURE__ */ jsx3("li", { children: /* @__PURE__ */ jsx3(
524
+ "a",
525
+ {
526
+ href: tlink.tracking_url || "",
527
+ target: "_blank",
528
+ rel: "noopener noreferrer",
529
+ className: "text-ui-fg-interactive hover:text-ui-fg-interactive-hover transition-fg",
530
+ children: /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", children: tlink.tracking_number })
531
+ }
532
+ ) }, tlink.tracking_number);
533
+ }
534
+ return /* @__PURE__ */ jsx3("li", { children: /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", children: tlink.tracking_number }) }, tlink.tracking_number);
535
+ }) }) : /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", children: "-" }) })
536
+ ] }),
537
+ (showShippingButton || showDeliveryButton) && /* @__PURE__ */ jsxs3("div", { className: "bg-ui-bg-subtle flex items-center justify-end gap-x-2 rounded-b-xl px-4 py-4", children: [
538
+ showDeliveryButton && /* @__PURE__ */ jsx3(Button, { onClick: handleMarkAsDelivered, variant: "secondary", children: t(
539
+ isPickUpFulfillment ? "orders.fulfillment.markAsPickedUp" : "orders.fulfillment.markAsDelivered"
540
+ ) }),
541
+ showShippingButton && /* @__PURE__ */ jsx3(
542
+ Button,
543
+ {
544
+ onClick: () => navigate(`./${fulfillment.id}/create-shipment`),
545
+ variant: "secondary",
546
+ children: t("orders.fulfillment.markAsShipped")
547
+ }
548
+ )
549
+ ] })
550
+ ] });
551
+ };
552
+
553
+ // src/pages/orders/[id]/_components/order-general-section/order-general-section.tsx
554
+ import { CheckCircle, XCircle as XCircle2 } from "@medusajs/icons";
555
+ import {
556
+ Container as Container3,
557
+ Copy as Copy3,
558
+ Heading as Heading3,
559
+ StatusBadge as StatusBadge2,
560
+ Text as Text3,
561
+ toast as toast2,
562
+ usePrompt as usePrompt2
563
+ } from "@medusajs/ui";
564
+ import { useTranslation as useTranslation4 } from "react-i18next";
565
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
566
+ var OrderGeneralSection = ({ order }) => {
567
+ const { t } = useTranslation4();
568
+ const prompt = usePrompt2();
569
+ const { getFullDate } = useDate();
570
+ const { mutateAsync: cancelOrder } = useCancelOrder(order.id);
571
+ const { mutateAsync: completeOrder } = useCompleteOrder(order.id);
572
+ const handleComplete = async () => {
573
+ await completeOrder(void 0, {
574
+ onSuccess: () => {
575
+ toast2.success("Order completed");
576
+ },
577
+ onError: (e) => {
578
+ toast2.error(e.message);
579
+ }
580
+ });
581
+ };
582
+ const handleCancel = async () => {
583
+ const res = await prompt({
584
+ title: t("general.areYouSure"),
585
+ description: t("orders.cancelWarning", {
586
+ id: `#${order.display_id}`
587
+ }),
588
+ confirmText: t("actions.continue"),
589
+ cancelText: t("actions.cancel")
590
+ });
591
+ if (!res) {
592
+ return;
593
+ }
594
+ await cancelOrder(void 0, {
595
+ onSuccess: () => {
596
+ toast2.success(t("orders.orderCanceled"));
597
+ },
598
+ onError: (e) => {
599
+ toast2.error(e.message);
600
+ }
601
+ });
602
+ };
603
+ return /* @__PURE__ */ jsxs4(Container3, { className: "flex items-center justify-between px-6 py-4", children: [
604
+ /* @__PURE__ */ jsxs4("div", { children: [
605
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-x-1", children: [
606
+ /* @__PURE__ */ jsxs4(Heading3, { children: [
607
+ "#",
608
+ order.display_id
609
+ ] }),
610
+ /* @__PURE__ */ jsx4(Copy3, { content: `#${order.display_id}`, className: "text-ui-fg-muted" })
611
+ ] }),
612
+ /* @__PURE__ */ jsx4(Text3, { size: "small", className: "text-ui-fg-subtle", children: t("orders.onDateFromSalesChannel", {
613
+ date: getFullDate({ date: order.created_at, includeTime: true }),
614
+ salesChannel: order.sales_channel?.name
615
+ }) })
616
+ ] }),
617
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-x-4", children: [
618
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-x-1.5", children: [
619
+ /* @__PURE__ */ jsx4(OrderBadge, { order }),
620
+ /* @__PURE__ */ jsx4(PaymentBadge, { order }),
621
+ /* @__PURE__ */ jsx4(FulfillmentBadge, { order })
622
+ ] }),
623
+ /* @__PURE__ */ jsx4(
624
+ ActionMenu,
625
+ {
626
+ groups: [
627
+ {
628
+ actions: [
629
+ {
630
+ label: t("actions.complete"),
631
+ onClick: handleComplete,
632
+ disabled: order.status !== "pending",
633
+ icon: /* @__PURE__ */ jsx4(CheckCircle, {})
634
+ },
635
+ {
636
+ label: t("actions.cancel"),
637
+ onClick: handleCancel,
638
+ //@ts-ignore
639
+ disabled: !!order.canceled_at,
640
+ icon: /* @__PURE__ */ jsx4(XCircle2, {})
641
+ }
642
+ ]
643
+ }
644
+ ]
645
+ }
646
+ )
647
+ ] })
648
+ ] });
649
+ };
650
+ var FulfillmentBadge = ({ order }) => {
651
+ const { t } = useTranslation4();
652
+ if (!order.fulfillment_status) {
653
+ return null;
654
+ }
655
+ const { label, color } = getOrderFulfillmentStatus(
656
+ t,
657
+ order.fulfillment_status
658
+ );
659
+ return /* @__PURE__ */ jsx4(StatusBadge2, { color, className: "text-nowrap", children: label });
660
+ };
661
+ var PaymentBadge = ({ order }) => {
662
+ const { t } = useTranslation4();
663
+ if (!order.payment_status) {
664
+ return null;
665
+ }
666
+ const { label, color } = getOrderPaymentStatus(t, order.payment_status);
667
+ return /* @__PURE__ */ jsx4(StatusBadge2, { color, className: "text-nowrap", children: label });
668
+ };
669
+ var OrderBadge = ({ order }) => {
670
+ const { t } = useTranslation4();
671
+ const orderStatus = getCanceledOrderStatus(t, order.status);
672
+ if (!orderStatus) {
673
+ return null;
674
+ }
675
+ return /* @__PURE__ */ jsx4(StatusBadge2, { color: orderStatus.color, className: "text-nowrap", children: orderStatus.label });
676
+ };
677
+
678
+ // src/pages/orders/[id]/_components/order-payment-section/order-payment-section.tsx
679
+ import { Container as Container4, Heading as Heading4, StatusBadge as StatusBadge3, Text as Text4 } from "@medusajs/ui";
680
+ import { useTranslation as useTranslation5 } from "react-i18next";
681
+
682
+ // src/lib/payment.ts
683
+ var getTotalCaptured = (paymentCollections) => paymentCollections.reduce((acc, paymentCollection) => {
684
+ acc = acc + (paymentCollection.captured_amount - paymentCollection.refunded_amount);
685
+ return acc;
686
+ }, 0);
687
+ var getTotalPending = (paymentCollections) => paymentCollections.filter((pc) => pc.status !== "canceled").reduce((acc, paymentCollection) => {
688
+ acc += paymentCollection.amount - paymentCollection.captured_amount;
689
+ return acc;
690
+ }, 0);
691
+
692
+ // src/pages/orders/[id]/_components/order-payment-section/order-payment-section.tsx
693
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
694
+ var OrderPaymentSection = ({ order }) => {
695
+ return /* @__PURE__ */ jsxs5(Container4, { className: "divide-y divide-dashed p-0", children: [
696
+ /* @__PURE__ */ jsx5(Header2, { order }),
697
+ /* @__PURE__ */ jsx5(Total, { order })
698
+ ] });
699
+ };
700
+ var Header2 = ({ order }) => {
701
+ const { t } = useTranslation5();
702
+ return /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between px-6 py-4", children: [
703
+ /* @__PURE__ */ jsx5(Heading4, { level: "h2", children: t("orders.payment.title") }),
704
+ order.payment_status && /* @__PURE__ */ jsx5(
705
+ StatusBadge3,
706
+ {
707
+ color: getOrderPaymentStatus(t, order.payment_status).color,
708
+ className: "text-nowrap",
709
+ children: getOrderPaymentStatus(t, order.payment_status).label
710
+ }
711
+ )
712
+ ] });
713
+ };
714
+ var Total = ({ order }) => {
715
+ const { t } = useTranslation5();
716
+ if (!order.payment_collections?.length) {
717
+ return null;
718
+ }
719
+ const paymentCollections = order.payment_collections;
720
+ const totalCaptured = getTotalCaptured(paymentCollections);
721
+ const totalPending = getTotalPending(paymentCollections);
722
+ const totalRefunded = paymentCollections.reduce(
723
+ (acc, pc) => acc + (pc.refunded_amount || 0),
724
+ 0
725
+ );
726
+ return /* @__PURE__ */ jsxs5("div", { children: [
727
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between px-6 py-4", children: [
728
+ /* @__PURE__ */ jsx5(Text4, { size: "small", weight: "plus", leading: "compact", children: t("orders.payment.totalPaidByCustomer") }),
729
+ /* @__PURE__ */ jsx5(Text4, { size: "small", weight: "plus", leading: "compact", children: getStylizedAmount(totalCaptured, order.currency_code) })
730
+ ] }),
731
+ totalRefunded > 0 && /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between px-6 py-4", children: [
732
+ /* @__PURE__ */ jsx5(Text4, { size: "small", weight: "plus", leading: "compact", children: "Refunded" }),
733
+ /* @__PURE__ */ jsx5(Text4, { size: "small", weight: "plus", leading: "compact", children: getStylizedAmount(totalRefunded, order.currency_code) })
734
+ ] }),
735
+ order.status !== "canceled" && totalPending > 0 && /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between px-6 py-4", children: [
736
+ /* @__PURE__ */ jsx5(Text4, { size: "small", weight: "plus", leading: "compact", children: "Total pending" }),
737
+ /* @__PURE__ */ jsx5(Text4, { size: "small", weight: "plus", leading: "compact", children: getStylizedAmount(totalPending, order.currency_code) })
738
+ ] })
739
+ ] });
740
+ };
741
+
742
+ // src/pages/orders/[id]/_components/order-summary-section/order-summary-section.tsx
743
+ import { useMemo, useState } from "react";
744
+ import { useTranslation as useTranslation7 } from "react-i18next";
745
+ import { Link as Link3 } from "react-router-dom";
746
+ import {
747
+ ArrowLongRight,
748
+ TriangleDownMini
749
+ } from "@medusajs/icons";
750
+ import {
751
+ Button as Button2,
752
+ clx,
753
+ Container as Container5,
754
+ Copy as Copy4,
755
+ Heading as Heading5,
756
+ Text as Text5
757
+ } from "@medusajs/ui";
758
+
759
+ // src/pages/orders/[id]/_components/order-summary-section/shipping-info-popover.tsx
760
+ import { InformationCircleSolid } from "@medusajs/icons";
761
+ import { Badge, Tooltip as Tooltip2 } from "@medusajs/ui";
762
+ import { useTranslation as useTranslation6 } from "react-i18next";
763
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
764
+ function ShippingInfoPopover({ shippingMethod }) {
765
+ const { t } = useTranslation6();
766
+ const shippingDetail = shippingMethod?.detail;
767
+ if (!shippingDetail) {
768
+ return;
769
+ }
770
+ let rmaType = t("orders.return");
771
+ let rmaId = shippingDetail.return_id;
772
+ if (shippingDetail.claim_id) {
773
+ rmaType = t("orders.claim");
774
+ rmaId = shippingDetail.claim_id;
775
+ }
776
+ if (shippingDetail.exchange_id) {
777
+ rmaType = t("orders.exchange");
778
+ rmaId = shippingDetail.exchange_id;
779
+ }
780
+ if (!rmaId) {
781
+ return;
782
+ }
783
+ return /* @__PURE__ */ jsx6(
784
+ Tooltip2,
785
+ {
786
+ content: /* @__PURE__ */ jsxs6(Badge, { size: "2xsmall", rounded: "full", children: [
787
+ rmaType,
788
+ ": #",
789
+ rmaId.slice(-7)
790
+ ] }),
791
+ children: /* @__PURE__ */ jsx6(InformationCircleSolid, { className: "inline-block text-ui-fg-muted ml-1" })
792
+ }
793
+ );
794
+ }
795
+ var shipping_info_popover_default = ShippingInfoPopover;
796
+
797
+ // src/pages/orders/[id]/_components/order-summary-section/order-summary-section.tsx
798
+ import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
799
+ var OrderSummarySection = ({
800
+ order
801
+ }) => {
802
+ const { t } = useTranslation7();
803
+ const receivableReturns = useMemo(
804
+ () => order.returns?.filter((r) => !r.canceled_at),
805
+ [order]
806
+ );
807
+ const showReturns = !!receivableReturns?.length;
808
+ const unpaidPaymentCollection = order.payment_collections?.find(
809
+ (pc) => pc.status !== "captured" && pc.status !== "canceled"
810
+ );
811
+ const pendingDifference = order.summary?.pending_difference || 0;
812
+ const isAmountSignificant = !isAmountLessThenRoundingError(
813
+ pendingDifference,
814
+ order.currency_code
815
+ );
816
+ const showRefund = unpaidPaymentCollection && pendingDifference < 0 && isAmountSignificant;
817
+ return /* @__PURE__ */ jsxs7(Container5, { className: "divide-y divide-dashed p-0", children: [
818
+ /* @__PURE__ */ jsx7(Header3, {}),
819
+ /* @__PURE__ */ jsx7(ItemBreakdown, { order }),
820
+ /* @__PURE__ */ jsx7(CostBreakdown, { order }),
821
+ /* @__PURE__ */ jsx7(Total2, { order }),
822
+ (showReturns || showRefund) && /* @__PURE__ */ jsxs7("div", { className: "bg-ui-bg-subtle flex items-center justify-end gap-x-2 rounded-b-xl px-4 py-4", children: [
823
+ showReturns && (receivableReturns?.length === 1 ? /* @__PURE__ */ jsx7(Button2, { asChild: true, variant: "secondary", size: "small", children: /* @__PURE__ */ jsx7(
824
+ Link3,
825
+ {
826
+ to: `/orders/${order.id}/returns/${receivableReturns[0].id}/receive`,
827
+ children: t("orders.returns.receive.action")
828
+ }
829
+ ) }) : /* @__PURE__ */ jsx7(
830
+ ActionMenu,
831
+ {
832
+ groups: [
833
+ {
834
+ actions: receivableReturns?.map((r) => {
835
+ let id = r.id;
836
+ let returnType = "Return";
837
+ if (r.exchange_id) {
838
+ id = r.exchange_id;
839
+ returnType = "Exchange";
840
+ }
841
+ if (r.claim_id) {
842
+ id = r.claim_id;
843
+ returnType = "Claim";
844
+ }
845
+ return {
846
+ label: t("orders.returns.receive.receiveItems", {
847
+ id: `#${id?.slice(-7)}`,
848
+ returnType
849
+ }),
850
+ icon: /* @__PURE__ */ jsx7(ArrowLongRight, {}),
851
+ to: `/orders/${order.id}/returns/${r.id}/receive`
852
+ };
853
+ })
854
+ }
855
+ ],
856
+ children: /* @__PURE__ */ jsx7(Button2, { variant: "secondary", size: "small", children: t("orders.returns.receive.action") })
857
+ }
858
+ )),
859
+ showRefund && /* @__PURE__ */ jsx7(Button2, { size: "small", variant: "secondary", asChild: true, children: /* @__PURE__ */ jsx7(Link3, { to: `/orders/${order.id}/refund`, children: t("orders.payment.refundAmount", {
860
+ amount: getStylizedAmount(
861
+ pendingDifference * -1,
862
+ order?.currency_code
863
+ )
864
+ }) }) })
865
+ ] })
866
+ ] });
867
+ };
868
+ var Header3 = () => {
869
+ const { t } = useTranslation7();
870
+ return /* @__PURE__ */ jsx7("div", { className: "flex items-center justify-between px-6 py-4", children: /* @__PURE__ */ jsx7(Heading5, { level: "h2", children: t("fields.summary") }) });
871
+ };
872
+ var Item = ({
873
+ item,
874
+ currencyCode
875
+ }) => {
876
+ const original_price = item.variant?.prices?.find((price2) => price2.currency_code === currencyCode)?.amount || 0;
877
+ const price = item.unit_price;
878
+ return /* @__PURE__ */ jsx7(Fragment2, { children: /* @__PURE__ */ jsxs7(
879
+ "div",
880
+ {
881
+ className: "text-ui-fg-subtle grid grid-cols-2 items-center gap-x-4 px-6 py-4",
882
+ children: [
883
+ /* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-x-4", children: [
884
+ /* @__PURE__ */ jsx7(Thumbnail, { src: item.thumbnail, size: "large" }),
885
+ /* @__PURE__ */ jsxs7("div", { children: [
886
+ /* @__PURE__ */ jsx7(
887
+ Text5,
888
+ {
889
+ size: "small",
890
+ leading: "compact",
891
+ weight: "plus",
892
+ className: "text-ui-fg-base",
893
+ children: item.title || item.product_title
894
+ }
895
+ ),
896
+ item.variant_sku && /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-x-1", children: [
897
+ /* @__PURE__ */ jsx7(Text5, { size: "small", children: item.variant_sku }),
898
+ /* @__PURE__ */ jsx7(Copy4, { content: item.variant_sku, className: "text-ui-fg-muted" })
899
+ ] }),
900
+ /* @__PURE__ */ jsx7(Text5, { size: "small", children: item.variant?.options?.map((o) => o.value).join(" \xB7 ") })
901
+ ] })
902
+ ] }),
903
+ /* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-3 items-center gap-x-4", children: [
904
+ /* @__PURE__ */ jsx7("div", { className: "flex items-center justify-end gap-x-4", children: /* @__PURE__ */ jsxs7(Text5, { size: "small", children: [
905
+ original_price !== price && /* @__PURE__ */ jsx7("span", { className: "line-through text-ui-fg-muted text-xs mr-1", children: getLocaleAmount(original_price, currencyCode) }),
906
+ getLocaleAmount(price, currencyCode)
907
+ ] }) }),
908
+ /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-x-2", children: /* @__PURE__ */ jsx7("div", { className: "w-fit min-w-[27px]", children: /* @__PURE__ */ jsxs7(Text5, { size: "small", children: [
909
+ /* @__PURE__ */ jsx7("span", { className: "tabular-nums", children: item.quantity }),
910
+ "x"
911
+ ] }) }) }),
912
+ /* @__PURE__ */ jsx7("div", { className: "flex items-center justify-end", children: /* @__PURE__ */ jsx7(Text5, { size: "small", className: "pt-[1px]", children: getLocaleAmount(item.original_total || 0, currencyCode) }) })
913
+ ] })
914
+ ]
915
+ },
916
+ item.id
917
+ ) });
918
+ };
919
+ var ItemBreakdown = ({
920
+ order
921
+ }) => {
922
+ return /* @__PURE__ */ jsx7("div", { children: order.items?.map((item) => {
923
+ return /* @__PURE__ */ jsx7(
924
+ Item,
925
+ {
926
+ item,
927
+ currencyCode: order.currency_code
928
+ },
929
+ item.id
930
+ );
931
+ }) });
932
+ };
933
+ var Cost = ({
934
+ label,
935
+ value,
936
+ secondaryValue,
937
+ tooltip
938
+ }) => /* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-3 items-center", children: [
939
+ /* @__PURE__ */ jsxs7(Text5, { size: "small", leading: "compact", children: [
940
+ label,
941
+ " ",
942
+ tooltip
943
+ ] }),
944
+ /* @__PURE__ */ jsx7("div", { className: "text-right", children: /* @__PURE__ */ jsx7(Text5, { size: "small", leading: "compact", children: secondaryValue }) }),
945
+ /* @__PURE__ */ jsx7("div", { className: "text-right", children: /* @__PURE__ */ jsx7(Text5, { size: "small", leading: "compact", children: value }) })
946
+ ] });
947
+ var CostBreakdown = ({
948
+ order
949
+ }) => {
950
+ const { t } = useTranslation7();
951
+ const [isTaxOpen, setIsTaxOpen] = useState(false);
952
+ const [isShippingOpen, setIsShippingOpen] = useState(false);
953
+ const commissionTotal = useMemo(() => {
954
+ return order.items.reduce((acc, item) => {
955
+ const lines = item.commission_lines;
956
+ if (!lines) return acc;
957
+ return acc + lines.reduce((sum, line) => sum + (line.amount ?? 0), 0);
958
+ }, 0);
959
+ }, [order.items]);
960
+ const discountCodes = useMemo(() => {
961
+ const codes = /* @__PURE__ */ new Set();
962
+ order.items.forEach(
963
+ (item) => item.adjustments?.forEach((adj) => {
964
+ codes.add(adj.code);
965
+ })
966
+ );
967
+ return Array.from(codes).sort();
968
+ }, [order]);
969
+ const taxCodes = useMemo(() => {
970
+ const taxCodeMap = {};
971
+ order.items.forEach((item) => {
972
+ item.tax_lines?.forEach((line) => {
973
+ taxCodeMap[line.code] = (taxCodeMap[line.code] || 0) + line.total;
974
+ });
975
+ });
976
+ order.shipping_methods.forEach((sm) => {
977
+ sm.tax_lines?.forEach((line) => {
978
+ taxCodeMap[line.code] = (taxCodeMap[line.code] || 0) + line.total;
979
+ });
980
+ });
981
+ return taxCodeMap;
982
+ }, [order]);
983
+ const automaticTaxesOn = !!order.region?.automatic_taxes;
984
+ const hasTaxLines = !!Object.keys(taxCodes).length;
985
+ const discountTotal = automaticTaxesOn ? order.discount_total : order.discount_subtotal;
986
+ return /* @__PURE__ */ jsxs7("div", { className: "text-ui-fg-subtle flex flex-col gap-y-2 px-6 py-4", children: [
987
+ /* @__PURE__ */ jsx7(
988
+ Cost,
989
+ {
990
+ label: t(
991
+ automaticTaxesOn ? "orders.summary.itemTotal" : "orders.summary.itemSubtotal"
992
+ ),
993
+ value: getLocaleAmount(order.item_total, order.currency_code)
994
+ }
995
+ ),
996
+ /* @__PURE__ */ jsx7(
997
+ Cost,
998
+ {
999
+ label: /* @__PURE__ */ jsxs7(
1000
+ "span",
1001
+ {
1002
+ onClick: () => setIsShippingOpen((o) => !o),
1003
+ className: "flex cursor-pointer items-center gap-1",
1004
+ children: [
1005
+ /* @__PURE__ */ jsx7("span", { children: t(
1006
+ automaticTaxesOn ? "orders.summary.shippingTotal" : "orders.summary.shippingSubtotal"
1007
+ ) }),
1008
+ /* @__PURE__ */ jsx7(
1009
+ TriangleDownMini,
1010
+ {
1011
+ style: {
1012
+ transform: `rotate(${isShippingOpen ? 0 : -90}deg)`
1013
+ }
1014
+ }
1015
+ )
1016
+ ]
1017
+ }
1018
+ ),
1019
+ value: getLocaleAmount(
1020
+ automaticTaxesOn ? order.shipping_total : order.shipping_subtotal,
1021
+ order.currency_code
1022
+ )
1023
+ }
1024
+ ),
1025
+ isShippingOpen && /* @__PURE__ */ jsx7("div", { className: "flex flex-col gap-1 pl-5", children: (order.shipping_methods || []).sort(
1026
+ (m1, m2) => m1.created_at.localeCompare(m2.created_at)
1027
+ ).map((sm, i) => {
1028
+ return /* @__PURE__ */ jsxs7(
1029
+ "div",
1030
+ {
1031
+ className: "flex items-center justify-between gap-x-2",
1032
+ children: [
1033
+ /* @__PURE__ */ jsx7("div", { children: /* @__PURE__ */ jsxs7("span", { className: "txt-small text-ui-fg-subtle font-medium", children: [
1034
+ sm.name,
1035
+ sm.detail?.return_id && ` (${t("fields.returnShipping")})`,
1036
+ " ",
1037
+ /* @__PURE__ */ jsx7(shipping_info_popover_default, { shippingMethod: sm }, i)
1038
+ ] }) }),
1039
+ /* @__PURE__ */ jsx7("div", { className: "relative flex-1", children: /* @__PURE__ */ jsx7("div", { className: "bottom-[calc(50% - 2px)] absolute h-[1px] w-full border-b border-dashed" }) }),
1040
+ /* @__PURE__ */ jsx7("span", { className: "txt-small text-ui-fg-muted", children: getLocaleAmount(
1041
+ automaticTaxesOn ? sm.total : sm.subtotal,
1042
+ order.currency_code
1043
+ ) })
1044
+ ]
1045
+ },
1046
+ sm.id
1047
+ );
1048
+ }) }),
1049
+ /* @__PURE__ */ jsx7(
1050
+ Cost,
1051
+ {
1052
+ label: t(
1053
+ automaticTaxesOn ? "orders.summary.discountTotal" : "orders.summary.discountSubtotal"
1054
+ ),
1055
+ secondaryValue: discountCodes.join(", "),
1056
+ value: discountTotal > 0 ? `- ${getLocaleAmount(discountTotal, order.currency_code)}` : "-"
1057
+ }
1058
+ ),
1059
+ /* @__PURE__ */ jsxs7(Fragment2, { children: [
1060
+ /* @__PURE__ */ jsxs7("div", { className: "flex justify-between", children: [
1061
+ /* @__PURE__ */ jsxs7(
1062
+ "div",
1063
+ {
1064
+ onClick: () => hasTaxLines && setIsTaxOpen((o) => !o),
1065
+ className: clx("flex items-center gap-1", {
1066
+ "cursor-pointer": hasTaxLines
1067
+ }),
1068
+ children: [
1069
+ /* @__PURE__ */ jsx7("span", { className: "txt-small select-none", children: t(
1070
+ automaticTaxesOn ? "orders.summary.taxTotalIncl" : "orders.summary.taxTotal"
1071
+ ) }),
1072
+ hasTaxLines && /* @__PURE__ */ jsx7(
1073
+ TriangleDownMini,
1074
+ {
1075
+ style: {
1076
+ transform: `rotate(${isTaxOpen ? 0 : -90}deg)`
1077
+ }
1078
+ }
1079
+ )
1080
+ ]
1081
+ }
1082
+ ),
1083
+ /* @__PURE__ */ jsx7("div", { className: "text-right", children: /* @__PURE__ */ jsx7(Text5, { size: "small", leading: "compact", children: getLocaleAmount(order.tax_total, order.currency_code) }) })
1084
+ ] }),
1085
+ isTaxOpen && /* @__PURE__ */ jsx7("div", { className: "flex flex-col gap-1 pl-5", children: Object.entries(taxCodes).map(([code, total]) => {
1086
+ return /* @__PURE__ */ jsxs7(
1087
+ "div",
1088
+ {
1089
+ className: "flex items-center justify-between gap-x-2",
1090
+ children: [
1091
+ /* @__PURE__ */ jsx7("div", { children: /* @__PURE__ */ jsx7("span", { className: "txt-small text-ui-fg-subtle font-medium", children: code }) }),
1092
+ /* @__PURE__ */ jsx7("div", { className: "relative flex-1", children: /* @__PURE__ */ jsx7("div", { className: "bottom-[calc(50% - 2px)] absolute h-[1px] w-full border-b border-dashed" }) }),
1093
+ /* @__PURE__ */ jsx7("span", { className: "txt-small text-ui-fg-muted", children: getLocaleAmount(total, order.currency_code) })
1094
+ ]
1095
+ },
1096
+ code
1097
+ );
1098
+ }) })
1099
+ ] }),
1100
+ commissionTotal > 0 && /* @__PURE__ */ jsx7(
1101
+ Cost,
1102
+ {
1103
+ label: "Commission",
1104
+ value: getLocaleAmount(commissionTotal, order.currency_code)
1105
+ }
1106
+ )
1107
+ ] });
1108
+ };
1109
+ var Total2 = ({ order }) => {
1110
+ const { t } = useTranslation7();
1111
+ return /* @__PURE__ */ jsxs7("div", { className: " flex flex-col gap-y-2 px-6 py-4", children: [
1112
+ /* @__PURE__ */ jsxs7("div", { className: "text-ui-fg-base flex items-center justify-between", children: [
1113
+ /* @__PURE__ */ jsx7(
1114
+ Text5,
1115
+ {
1116
+ weight: "plus",
1117
+ className: "text-ui-fg-subtle",
1118
+ size: "small",
1119
+ leading: "compact",
1120
+ children: t("fields.total")
1121
+ }
1122
+ ),
1123
+ /* @__PURE__ */ jsx7(
1124
+ Text5,
1125
+ {
1126
+ weight: "plus",
1127
+ className: "text-ui-fg-subtle",
1128
+ size: "small",
1129
+ leading: "compact",
1130
+ children: getStylizedAmount(order.total, order.currency_code)
1131
+ }
1132
+ )
1133
+ ] }),
1134
+ /* @__PURE__ */ jsxs7("div", { className: "text-ui-fg-base flex items-center justify-between", children: [
1135
+ /* @__PURE__ */ jsx7(
1136
+ Text5,
1137
+ {
1138
+ weight: "plus",
1139
+ className: "text-ui-fg-subtle",
1140
+ size: "small",
1141
+ leading: "compact",
1142
+ children: t("fields.paidTotal")
1143
+ }
1144
+ ),
1145
+ /* @__PURE__ */ jsx7(
1146
+ Text5,
1147
+ {
1148
+ weight: "plus",
1149
+ className: "text-ui-fg-subtle",
1150
+ size: "small",
1151
+ leading: "compact",
1152
+ children: getStylizedAmount(
1153
+ getTotalCaptured(order.payment_collections || []),
1154
+ order.currency_code
1155
+ )
1156
+ }
1157
+ )
1158
+ ] })
1159
+ ] });
1160
+ };
1161
+
1162
+ // src/pages/orders/[id]/order-detail-page.tsx
1163
+ import { Fragment as Fragment3, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1164
+ var Root = ({ children }) => {
1165
+ const initialData = useLoaderData();
1166
+ const { id } = useParams();
1167
+ const { order, isLoading, isError, error } = useOrder(
1168
+ id,
1169
+ {
1170
+ fields: DEFAULT_FIELDS
1171
+ },
1172
+ {
1173
+ initialData
1174
+ }
1175
+ );
1176
+ if (order) {
1177
+ order.items = order.items.sort((itemA, itemB) => {
1178
+ if (itemA.created_at > itemB.created_at) {
1179
+ return 1;
1180
+ }
1181
+ if (itemA.created_at < itemB.created_at) {
1182
+ return -1;
1183
+ }
1184
+ return 0;
1185
+ });
1186
+ }
1187
+ if (isLoading || !order) {
1188
+ return /* @__PURE__ */ jsx8(TwoColumnPageSkeleton, { mainSections: 4, sidebarSections: 2, showJSON: true });
1189
+ }
1190
+ if (isError) {
1191
+ throw error;
1192
+ }
1193
+ return /* @__PURE__ */ jsx8(Fragment3, { children: Children.count(children) > 0 ? children : /* @__PURE__ */ jsxs8(TwoColumnPage, { data: order, hasOutlet: true, children: [
1194
+ /* @__PURE__ */ jsxs8(TwoColumnPage.Main, { children: [
1195
+ /* @__PURE__ */ jsx8(OrderGeneralSection, { order }),
1196
+ /* @__PURE__ */ jsx8(OrderSummarySection, { order }),
1197
+ /* @__PURE__ */ jsx8(OrderPaymentSection, { order }),
1198
+ /* @__PURE__ */ jsx8(OrderFulfillmentSection, { order })
1199
+ ] }),
1200
+ /* @__PURE__ */ jsx8(TwoColumnPage.Sidebar, { children: /* @__PURE__ */ jsx8(OrderCustomerSection, { order }) })
1201
+ ] }) });
1202
+ };
1203
+ var OrderDetailPage = Object.assign(Root, {
1204
+ Main: TwoColumnPage.Main,
1205
+ Sidebar: TwoColumnPage.Sidebar,
1206
+ MainGeneralSection: OrderGeneralSection,
1207
+ MainSummarySection: OrderSummarySection,
1208
+ MainPaymentSection: OrderPaymentSection,
1209
+ MainFulfillmentSection: OrderFulfillmentSection,
1210
+ SidebarCustomerSection: OrderCustomerSection
1211
+ });
1212
+ export {
1213
+ OrderDetailPage,
1214
+ loader
1215
+ };