@mercurjs/admin 2.2.0-canary.9 → 2.2.0-rc.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 (417) hide show
  1. package/dist/{add-campaign-promotions-XANY2FIV.js → add-campaign-promotions-QK73ARX4.js} +14 -14
  2. package/dist/{adjust-inventory-DJRDNU2V.js → adjust-inventory-X45NEQFK.js} +33 -33
  3. package/dist/{api-key-management-create-UD5V7TOU.js → api-key-management-create-LOD37GOQ.js} +5 -5
  4. package/dist/{api-key-management-detail-XJVWUU2C.js → api-key-management-detail-HKNZPPR2.js} +36 -37
  5. package/dist/{api-key-management-edit-4TLKJSAE.js → api-key-management-edit-JP2GUMMJ.js} +5 -5
  6. package/dist/{api-key-management-list-SZUSD6UI.js → api-key-management-list-5RXBJ24C.js} +9 -9
  7. package/dist/{api-key-management-sales-channels-TK6XEGF3.js → api-key-management-sales-channels-4GLVMHU6.js} +9 -10
  8. package/dist/{attribute-create-2COL3PJX.js → attribute-create-VGL7LGIH.js} +56 -66
  9. package/dist/{attribute-create-possible-value-EXVHC272.js → attribute-create-possible-value-QFXKXZM4.js} +2 -2
  10. package/dist/{attribute-detail-7SK3MWGQ.js → attribute-detail-EKDAYT4B.js} +56 -44
  11. package/dist/{attribute-edit-LUY66TG3.js → attribute-edit-OBNLNOJS.js} +7 -7
  12. package/dist/{attribute-edit-possible-value-IOS3625C.js → attribute-edit-possible-value-QDFVWLA3.js} +5 -5
  13. package/dist/{attribute-edit-ranking-7AAAYEC7.js → attribute-edit-ranking-YGR3KCSC.js} +3 -3
  14. package/dist/attribute-list-6A72PBIY.js +61 -0
  15. package/dist/breadcrumb-GHBR74WM.js +27 -0
  16. package/dist/breadcrumb-IEEJTH47.js +26 -0
  17. package/dist/{campaign-budget-edit-WKSYXTBX.js → campaign-budget-edit-NONE5NMV.js} +3 -3
  18. package/dist/{campaign-configuration-ZTK46EB5.js → campaign-configuration-JYSVIQFE.js} +3 -3
  19. package/dist/{campaign-create-7BELREFT.js → campaign-create-6U2PONHA.js} +7 -7
  20. package/dist/{campaign-detail-XL3QCW5Y.js → campaign-detail-RNB3FEJZ.js} +41 -41
  21. package/dist/{campaign-edit-ZGLDY4X4.js → campaign-edit-MAS3DCFB.js} +3 -3
  22. package/dist/{campaign-list-NQGNOFVZ.js → campaign-list-CDV4GWWD.js} +7 -7
  23. package/dist/{categories-metadata-C6HVQRH2.js → categories-metadata-4LXL2PWA.js} +34 -34
  24. package/dist/{category-create-GMCJABRW.js → category-create-AIS2MG7E.js} +9 -6
  25. package/dist/{category-detail-R2VZJEAV.js → category-detail-557376TZ.js} +46 -44
  26. package/dist/{category-edit-GLE4NTFG.js → category-edit-LYR2IOTA.js} +7 -6
  27. package/dist/category-icon-edit-W2TPCSDC.js +117 -0
  28. package/dist/{category-list-SNVOQ64L.js → category-list-XKRI24VN.js} +12 -9
  29. package/dist/category-media-PC4V7YU4.js +655 -0
  30. package/dist/{category-organize-UY4M4N7S.js → category-organize-H4JYCHDA.js} +3 -3
  31. package/dist/{category-products-EWBBAXAH.js → category-products-44PCDDNN.js} +48 -47
  32. package/dist/{chunk-A7JOHU6Q.js → chunk-25U23TXK.js} +2 -2
  33. package/dist/{chunk-JM7MSBWD.js → chunk-2FPQHWJZ.js} +3 -3
  34. package/dist/{chunk-WQFFCK3R.js → chunk-2V74T2WI.js} +1 -1
  35. package/dist/{chunk-37N6S4CU.js → chunk-2Z2M5K5A.js} +4 -4
  36. package/dist/{chunk-26UTIAAZ.js → chunk-32URSQ4F.js} +1 -1
  37. package/dist/{chunk-WTK4MLMF.js → chunk-32ZNZDFT.js} +4 -4
  38. package/dist/{chunk-BSU6VOKG.js → chunk-3BTRS4AA.js} +81 -64
  39. package/dist/{chunk-VKOE5J66.js → chunk-3XOE4NV5.js} +11 -2
  40. package/dist/{chunk-57RZ7ZOK.js → chunk-4346EIRG.js} +5 -5
  41. package/dist/{chunk-SVKQDD7E.js → chunk-4BCUGMOR.js} +2 -2
  42. package/dist/{chunk-CVFVEDMV.js → chunk-4BPQNCF5.js} +2 -2
  43. package/dist/chunk-4C7L7TJT.js +87 -0
  44. package/dist/{chunk-JSMUFZZN.js → chunk-56UFDHNO.js} +1 -1
  45. package/dist/{chunk-5UPOHLBD.js → chunk-5ACJR6WB.js} +5 -5
  46. package/dist/{chunk-JQV7CXEC.js → chunk-5BSSIDW6.js} +17 -2
  47. package/dist/{chunk-CPXK5RSJ.js → chunk-5Y2AIJ2T.js} +1 -1
  48. package/dist/{chunk-BGQ7H2KL.js → chunk-65YE4SVL.js} +5 -4
  49. package/dist/chunk-6BAPAIQM.js +8 -0
  50. package/dist/{chunk-IAWZQKUH.js → chunk-6BWJWA2F.js} +2 -2
  51. package/dist/{chunk-FB7DDNCA.js → chunk-6DJQITWV.js} +4 -4
  52. package/dist/{chunk-IQCUYC42.js → chunk-6KWWJE5P.js} +25 -16
  53. package/dist/{chunk-NQEXDLYH.js → chunk-6ZVV2XHU.js} +28 -9
  54. package/dist/{chunk-EHGCFAN6.js → chunk-7O7LYBHL.js} +8 -8
  55. package/dist/chunk-7OKYEA6I.js +283 -0
  56. package/dist/{chunk-GKGLVDDV.js → chunk-A2F5MDPU.js} +1 -1
  57. package/dist/{chunk-LOIFUOOA.js → chunk-ABS7HMLY.js} +2 -2
  58. package/dist/{chunk-X45JKZYW.js → chunk-AMZ2QSSI.js} +6 -6
  59. package/dist/{chunk-XJ3WC4G7.js → chunk-BF7X4JQT.js} +2 -2
  60. package/dist/{chunk-3VTAK3S6.js → chunk-BFUHW56P.js} +4 -4
  61. package/dist/{chunk-LEG67A2R.js → chunk-BILFRATX.js} +1 -10
  62. package/dist/{chunk-2OF7GB7J.js → chunk-BLR3NTU6.js} +74 -21
  63. package/dist/{chunk-Z5T5EPLF.js → chunk-BNFTJW4L.js} +2 -2
  64. package/dist/{chunk-CVFX57MN.js → chunk-BTJR5RSV.js} +11 -11
  65. package/dist/chunk-BVIIRGSW.js +204 -0
  66. package/dist/chunk-BW7BDHZV.js +34 -0
  67. package/dist/{chunk-LYZT5REU.js → chunk-C4XKPQ6T.js} +14 -1
  68. package/dist/{chunk-N6SI4IIT.js → chunk-CARSKIPW.js} +1 -1
  69. package/dist/chunk-CGIVQ7D2.js +115 -0
  70. package/dist/{chunk-HR7TFO2X.js → chunk-CHMIK6PK.js} +7 -7
  71. package/dist/{chunk-DRJAKRTI.js → chunk-CNODWD3F.js} +5 -5
  72. package/dist/chunk-CU4UVEHX.js +121 -0
  73. package/dist/{chunk-TE4IF3MM.js → chunk-CW3HYGS5.js} +1 -1
  74. package/dist/{chunk-WPVDACTL.js → chunk-DI2M3J5Q.js} +1 -1
  75. package/dist/{chunk-YYMACYP6.js → chunk-DL7ENIQB.js} +1 -1
  76. package/dist/{chunk-W2QNDZTH.js → chunk-DPG4AWSG.js} +3 -3
  77. package/dist/{chunk-UCYSCKZV.js → chunk-DSTHXHJ5.js} +2114 -1699
  78. package/dist/{chunk-Y6NDT26D.js → chunk-EGHDC6K6.js} +6 -6
  79. package/dist/{chunk-FXWKGNRV.js → chunk-EJY35WBK.js} +2 -2
  80. package/dist/{chunk-3JSAS7QP.js → chunk-EOSJHPHN.js} +22 -6
  81. package/dist/{chunk-46M463BR.js → chunk-EWFOFSF7.js} +1 -1
  82. package/dist/{chunk-PMWLTPYR.js → chunk-EX4AGESR.js} +81 -77
  83. package/dist/{chunk-XLE7EDWR.js → chunk-F2SZ4LPF.js} +347 -39
  84. package/dist/{chunk-533GMKEG.js → chunk-F5NW4XBU.js} +23 -3
  85. package/dist/{chunk-5AZCIOS4.js → chunk-F6NPDZHW.js} +2 -2
  86. package/dist/chunk-FICKHCWL.js +279 -0
  87. package/dist/{chunk-OKDODCIP.js → chunk-FLFE6HXW.js} +1 -1
  88. package/dist/{chunk-CMHI2RPL.js → chunk-FMJBQE56.js} +21 -0
  89. package/dist/{chunk-4LXBQTFN.js → chunk-FREUYHMS.js} +1 -1
  90. package/dist/{chunk-OHOWEMHO.js → chunk-G5KNNOXX.js} +32 -26
  91. package/dist/{chunk-ZN7LWXVC.js → chunk-GCEOEV6P.js} +1 -1
  92. package/dist/chunk-GCU4LHGY.js +1238 -0
  93. package/dist/{chunk-2YE5K2D7.js → chunk-GISFIAGQ.js} +6 -6
  94. package/dist/{chunk-P5XVG4PY.js → chunk-GLZLBHFC.js} +2 -2
  95. package/dist/{chunk-PVZBDWLK.js → chunk-GRH7C3QN.js} +1 -1
  96. package/dist/{chunk-BFT3CN5L.js → chunk-GWSRWILC.js} +3 -3
  97. package/dist/{chunk-VDKOJ5WD.js → chunk-GYRTURN7.js} +1 -1
  98. package/dist/{chunk-LYZDVZWA.js → chunk-H7NIKMPE.js} +2 -2
  99. package/dist/{chunk-7MMLCMV3.js → chunk-HB3KRNZM.js} +1 -1
  100. package/dist/{chunk-I5THQVYP.js → chunk-HGTPUAHD.js} +1 -1
  101. package/dist/{chunk-FDD7TANX.js → chunk-HI7NZVSJ.js} +6 -6
  102. package/dist/{chunk-YFRC6GEN.js → chunk-HLL6GLZO.js} +3 -3
  103. package/dist/chunk-HQM7D57C.js +474 -0
  104. package/dist/{chunk-MVNO35S5.js → chunk-HRDVGFS7.js} +2 -2
  105. package/dist/chunk-HT34QVZR.js +184 -0
  106. package/dist/{chunk-WJJXUXSO.js → chunk-IC2PLPRP.js} +1 -1
  107. package/dist/{chunk-6IXCZ3FF.js → chunk-IVBNI2QE.js} +228 -97
  108. package/dist/chunk-IWBQZK6E.js +166 -0
  109. package/dist/chunk-IZDTQFCP.js +65 -0
  110. package/dist/{chunk-HEGPAGJT.js → chunk-J3L2FUIA.js} +6 -5
  111. package/dist/{chunk-AEMDNTW5.js → chunk-J54BZXZX.js} +2 -2
  112. package/dist/{chunk-CVBPTNG7.js → chunk-JEDX4KBB.js} +3 -3
  113. package/dist/{chunk-THZ5Q2UG.js → chunk-JHBNG7OD.js} +16 -0
  114. package/dist/{chunk-LYD3C73Z.js → chunk-JI7HMGMO.js} +1 -1
  115. package/dist/{chunk-NUC27ELX.js → chunk-JLCA6PWC.js} +5 -5
  116. package/dist/chunk-JSVYNNPF.js +101 -0
  117. package/dist/{chunk-SV5YQGFE.js → chunk-JU2O2H7I.js} +16 -15
  118. package/dist/{chunk-KT7X72J4.js → chunk-JXSXBSV6.js} +9 -1
  119. package/dist/{chunk-DN2K5EAH.js → chunk-JZJT26E3.js} +2 -2
  120. package/dist/{chunk-33BERJSG.js → chunk-K6RZE3F7.js} +1 -1
  121. package/dist/{chunk-FNKBJCNF.js → chunk-K7H77TA5.js} +4 -4
  122. package/dist/{chunk-YGRTRAWX.js → chunk-KDE4HKH2.js} +1 -0
  123. package/dist/{chunk-7MKIOI7P.js → chunk-KFYTUQXT.js} +7 -7
  124. package/dist/{chunk-VT5E7OMM.js → chunk-KGA2XI6W.js} +4 -4
  125. package/dist/chunk-KT4DGVRQ.js +381 -0
  126. package/dist/{chunk-Q2ULPJJ6.js → chunk-KXWN75T2.js} +2 -2
  127. package/dist/{chunk-LAPEZATU.js → chunk-L7DIEO5B.js} +1 -1
  128. package/dist/{chunk-CKD5563X.js → chunk-LQSSUC7W.js} +2 -2
  129. package/dist/{chunk-453BC56K.js → chunk-LSMTJU6Y.js} +3 -3
  130. package/dist/{chunk-45CPSFTO.js → chunk-LVRCEGL7.js} +176 -48
  131. package/dist/{chunk-ZBWL72TB.js → chunk-LXZXXOJ3.js} +1 -11
  132. package/dist/{chunk-KXHYJGAV.js → chunk-ML7UVBKL.js} +1 -1
  133. package/dist/{chunk-DAXXLQKB.js → chunk-MO7TNIVQ.js} +1 -1
  134. package/dist/{chunk-GU52ZMNY.js → chunk-MOG7LT73.js} +13 -13
  135. package/dist/{chunk-6FHQCLHQ.js → chunk-MW47LDBT.js} +2 -2
  136. package/dist/{chunk-W6V2L2FX.js → chunk-MZOINNCV.js} +3 -3
  137. package/dist/{chunk-UXGLM3B4.js → chunk-NEGOGYEO.js} +4 -4
  138. package/dist/{chunk-SFSD57M5.js → chunk-NISAIYSW.js} +7 -7
  139. package/dist/{chunk-GP4J42UD.js → chunk-NOKCLBAL.js} +1 -1
  140. package/dist/{chunk-YNHS5G26.js → chunk-NQ2RDSI3.js} +2 -2
  141. package/dist/{chunk-LDQY7K5W.js → chunk-NWSKT55Z.js} +3 -3
  142. package/dist/{chunk-6PLDJPQ3.js → chunk-NZVS6B77.js} +598 -775
  143. package/dist/{chunk-XODBX3LN.js → chunk-OAN4CZKX.js} +12 -19
  144. package/dist/{chunk-QUPUWR42.js → chunk-OPSGADQI.js} +10 -8
  145. package/dist/{chunk-C4JUURO5.js → chunk-OT5X3VOQ.js} +1 -1
  146. package/dist/{chunk-OMBP3YSV.js → chunk-OYZIFLLC.js} +19 -72
  147. package/dist/{chunk-634XVU3D.js → chunk-PAYQJPGK.js} +8 -1
  148. package/dist/{chunk-PASEZJC7.js → chunk-PFBJWWUA.js} +9 -9
  149. package/dist/{chunk-PT5G44WJ.js → chunk-PMVWIBTI.js} +8 -8
  150. package/dist/{chunk-VYMODH6P.js → chunk-PYF5EER5.js} +1 -1
  151. package/dist/{chunk-4AU37UL5.js → chunk-PYZ7VL5X.js} +3 -3
  152. package/dist/{chunk-X7H7TIOT.js → chunk-Q4R2O7XF.js} +9 -9
  153. package/dist/{chunk-5TRY5IMZ.js → chunk-Q6GUA5VE.js} +2 -2
  154. package/dist/{chunk-LGL4QSGB.js → chunk-Q6QXFLUY.js} +6 -6
  155. package/dist/{chunk-X2T3AU67.js → chunk-QCIDV3AP.js} +3 -3
  156. package/dist/{chunk-SJGIQGEC.js → chunk-QDUZCJ7F.js} +1 -1
  157. package/dist/{chunk-3B6HI32S.js → chunk-QE4R2KT3.js} +1 -1
  158. package/dist/chunk-QJCUPZZQ.js +356 -0
  159. package/dist/chunk-QR3GYYX6.js +0 -0
  160. package/dist/{chunk-3B6MTW5G.js → chunk-QUHSHIAC.js} +3 -0
  161. package/dist/{chunk-OH4AABUT.js → chunk-R325CPYC.js} +1 -1
  162. package/dist/{chunk-JPNPTILP.js → chunk-R4O667NT.js} +1 -1
  163. package/dist/{chunk-PRBE5CM3.js → chunk-RGS5ZOY7.js} +32 -1
  164. package/dist/{chunk-D4PQL46N.js → chunk-RIO2IHPE.js} +1 -1
  165. package/dist/{chunk-2FGRDEAD.js → chunk-RQQ53CQJ.js} +1 -1
  166. package/dist/{chunk-U2ZFCAPX.js → chunk-SITRHMZZ.js} +11 -8
  167. package/dist/{chunk-AWCVVFEY.js → chunk-TDJSZ73V.js} +3 -3
  168. package/dist/{chunk-3VDLE5GA.js → chunk-TH26CWVG.js} +5 -5
  169. package/dist/{chunk-FFNSWUDC.js → chunk-THPXRTE5.js} +12 -5
  170. package/dist/{chunk-BPCU5QJE.js → chunk-TZM63FZ4.js} +3 -3
  171. package/dist/{chunk-X4EKVL5F.js → chunk-UZ452ISX.js} +254 -54
  172. package/dist/{chunk-K4WU4PVL.js → chunk-VBKFXL2Q.js} +3 -3
  173. package/dist/{chunk-UCX2T4BQ.js → chunk-VGXJXU7X.js} +8 -8
  174. package/dist/{chunk-ESPLVOFC.js → chunk-VHCDSNXF.js} +2 -2
  175. package/dist/{chunk-WM2BRJCJ.js → chunk-VJ4LQXMA.js} +127 -61
  176. package/dist/chunk-VM56ZITS.js +356 -0
  177. package/dist/{chunk-KXIA66EJ.js → chunk-VPYI4X6C.js} +9 -5
  178. package/dist/{chunk-4KX6CBJ4.js → chunk-VSLHL2AZ.js} +2 -0
  179. package/dist/{chunk-EPHVGD5Z.js → chunk-VXW3BCN2.js} +1 -1
  180. package/dist/{chunk-N7OVIX55.js → chunk-VY72NX26.js} +8 -8
  181. package/dist/{chunk-NJ7V6YWI.js → chunk-VYQ6ASFF.js} +70 -125
  182. package/dist/{chunk-CYGCCNIC.js → chunk-W3P3RP5R.js} +17 -5
  183. package/dist/{chunk-TLDLOE27.js → chunk-W7CJSBDM.js} +37 -9
  184. package/dist/{chunk-2WHSCEKX.js → chunk-WF3ZDT5Z.js} +11 -95
  185. package/dist/{chunk-MR3MLNWV.js → chunk-WKDHY2DJ.js} +1 -1
  186. package/dist/{chunk-WYA62MUL.js → chunk-X5PMVI7H.js} +3 -3
  187. package/dist/{chunk-VY7PT4SI.js → chunk-XW2BES72.js} +13 -13
  188. package/dist/{chunk-IMR3MZDP.js → chunk-YHEH25IE.js} +1 -1
  189. package/dist/{chunk-5NHDF6SM.js → chunk-YMOP6JKN.js} +7 -7
  190. package/dist/{chunk-NJP3DEE5.js → chunk-YNN2YNSE.js} +2 -2
  191. package/dist/{chunk-PAJ335VB.js → chunk-YRINVEI3.js} +2 -2
  192. package/dist/{chunk-VMEJGGXA.js → chunk-YRUCTB6M.js} +5 -5
  193. package/dist/{chunk-S4SVK5DE.js → chunk-YVLANFBK.js} +29 -1
  194. package/dist/{chunk-YDBPAHWU.js → chunk-YXKHBSQJ.js} +14 -188
  195. package/dist/{chunk-KAZ5BYTQ.js → chunk-ZAOEFQ6K.js} +5 -4
  196. package/dist/{chunk-H3MAUKL7.js → chunk-ZKHF75MZ.js} +204 -224
  197. package/dist/{chunk-5FFZQPTT.js → chunk-ZU74CNL4.js} +7 -7
  198. package/dist/{chunk-COP7NFSJ.js → chunk-ZVPTNPLI.js} +3 -3
  199. package/dist/{collection-add-products-6JY2OYKB.js → collection-add-products-JFUIZEZI.js} +45 -45
  200. package/dist/{collection-create-BRMP6SIZ.js → collection-create-5IGFVQKE.js} +87 -16
  201. package/dist/{collection-detail-PDR53MV5.js → collection-detail-2WOLOVWF.js} +45 -43
  202. package/dist/{collection-edit-YLWUEU4C.js → collection-edit-UMZN5JZ6.js} +4 -4
  203. package/dist/collection-icon-edit-WCSKUDXE.js +117 -0
  204. package/dist/collection-list-B3Y2ALLZ.js +85 -0
  205. package/dist/collection-media-YIV5BV3Y.js +655 -0
  206. package/dist/{collection-metadata-PBSEIVJ6.js → collection-metadata-SBK6SL4C.js} +34 -34
  207. package/dist/commission-rule-commission-edit-V5JVRNZN.js +195 -0
  208. package/dist/commission-rule-create-EZ2C6AWK.js +464 -0
  209. package/dist/commission-rule-detail-ZQ3OHFA2.js +45 -0
  210. package/dist/commission-rule-edit-NQ5EYCGO.js +352 -0
  211. package/dist/commissions-list-M5WLJD2P.js +36 -0
  212. package/dist/{constants-Bahlh59D.d.ts → constants-CBhKGpBZ.d.ts} +12 -5
  213. package/dist/{customer-create-QHA4KM6N.js → customer-create-ZQ4RTXBA.js} +3 -3
  214. package/dist/{customer-create-address-TYWVWNUE.js → customer-create-address-P2QYUZJ5.js} +3 -3
  215. package/dist/{customer-detail-PZ4RLCCE.js → customer-detail-ZGDPIWA4.js} +42 -45
  216. package/dist/{customer-edit-JZ4PQTIN.js → customer-edit-D55FJLIN.js} +3 -3
  217. package/dist/customer-edit-address-R5RXDUNZ.js +302 -0
  218. package/dist/{customer-group-add-customers-VJUBEN7M.js → customer-group-add-customers-O6A5ZFPM.js} +13 -13
  219. package/dist/{customer-group-create-NA2UKCF6.js → customer-group-create-44R3DDOT.js} +3 -3
  220. package/dist/{customer-group-detail-CQ7GI3CJ.js → customer-group-detail-FXUICFYC.js} +39 -39
  221. package/dist/{customer-group-edit-3O6HAYYN.js → customer-group-edit-NZ5SUPFQ.js} +3 -3
  222. package/dist/customer-group-list-R2DP2D42.js +57 -0
  223. package/dist/{customer-group-metadata-FBZAMX7J.js → customer-group-metadata-JX7ZBXLJ.js} +34 -34
  224. package/dist/{customer-list-MB6WZFMA.js → customer-list-Z4DUQHCH.js} +9 -9
  225. package/dist/{customer-metadata-DNCPK22Y.js → customer-metadata-JT5GGCRV.js} +34 -34
  226. package/dist/{customers-add-customer-group-AJJG2XEW.js → customers-add-customer-group-KX3XNNMU.js} +46 -45
  227. package/dist/{edit-inventory-item-MXA5NEWW.js → edit-inventory-item-73BY4I5T.js} +33 -33
  228. package/dist/{edit-inventory-item-attributes-M2NUNSM7.js → edit-inventory-item-attributes-ZMB343AB.js} +33 -33
  229. package/dist/{edit-reservation-6KA372WV.js → edit-reservation-BC5IOLK6.js} +5 -5
  230. package/dist/{edit-rules-2GVJU6O7.js → edit-rules-4PPNBI7B.js} +34 -34
  231. package/dist/global-commission-edit-TRSS5JBH.js +203 -0
  232. package/dist/index.css +5187 -3
  233. package/dist/index.d.ts +10 -3
  234. package/dist/index.js +351 -307
  235. package/dist/inventory-create-XQKH3HZQ.js +58 -0
  236. package/dist/{inventory-detail-47UAVORN.js → inventory-detail-RZJNTJDF.js} +38 -38
  237. package/dist/{inventory-list-2JGX6BRI.js → inventory-list-SPSBDJXO.js} +8 -8
  238. package/dist/{inventory-metadata-N2PZACPZ.js → inventory-metadata-W2E4KYG3.js} +34 -34
  239. package/dist/{inventory-stock-6JUYSL3S.js → inventory-stock-D2BNT2UL.js} +38 -38
  240. package/dist/{invite-VQ2HR2OM.js → invite-25CGHT4W.js} +3 -3
  241. package/dist/loader-HRFMJ5TM.js +36 -0
  242. package/dist/loader-TIPLOZF7.js +32 -0
  243. package/dist/{location-create-ZMNB7YKR.js → location-create-GKORXOYD.js} +3 -3
  244. package/dist/{location-detail-OET2D2VX.js → location-detail-CNETNX3M.js} +36 -36
  245. package/dist/{location-edit-DMBF3CYZ.js → location-edit-T2CWF6N2.js} +3 -3
  246. package/dist/{location-fulfillment-providers-K6OKN6AY.js → location-fulfillment-providers-XXZ7AIUF.js} +46 -46
  247. package/dist/location-list-RHUT7IRA.js +54 -0
  248. package/dist/{location-sales-channels-GKIWX6B2.js → location-sales-channels-ZQBQ3VDH.js} +9 -10
  249. package/dist/{location-service-zone-create-ZS3UWJAA.js → location-service-zone-create-O6GYRZEE.js} +11 -11
  250. package/dist/{location-service-zone-edit-MTGU2O4C.js → location-service-zone-edit-7ZTB45TD.js} +5 -5
  251. package/dist/{location-service-zone-manage-areas-S7QZTIFT.js → location-service-zone-manage-areas-DBP3P27I.js} +11 -11
  252. package/dist/location-service-zone-shipping-option-create-3PQ2EYD7.js +60 -0
  253. package/dist/{location-service-zone-shipping-option-edit-3PGSNKYT.js → location-service-zone-shipping-option-edit-SLQM4GSH.js} +7 -7
  254. package/dist/{location-service-zone-shipping-option-pricing-POBJOF3Z.js → location-service-zone-shipping-option-pricing-UZ577SNK.js} +9 -9
  255. package/dist/{login-LTCJJFDI.js → login-OKBXMSKY.js} +32 -32
  256. package/dist/{manage-locations-TKLOHP3D.js → manage-locations-SUJNIWWF.js} +3 -3
  257. package/dist/{marketplace-add-currencies-6ANNBGZM.js → marketplace-add-currencies-IPE5RJF6.js} +13 -13
  258. package/dist/marketplace-detail-IHGJXVZS.js +75 -0
  259. package/dist/{marketplace-edit-6Q3G2OY5.js → marketplace-edit-WG6LMQ2P.js} +5 -5
  260. package/dist/{marketplace-metadata-KUUCCF4P.js → marketplace-metadata-STYABOTX.js} +34 -34
  261. package/dist/offer-detail-page-2G5BUOIB.js +585 -0
  262. package/dist/offer-variant-detail-page-V6TKNYZL.js +143 -0
  263. package/dist/offers-2QQFKGAX.js +183 -0
  264. package/dist/{order-create-claim-QWSJZUEM.js → order-create-claim-Y7ESDXLI.js} +281 -256
  265. package/dist/{order-create-edit-M4YFR6U7.js → order-create-edit-6L5S7KQM.js} +215 -120
  266. package/dist/{order-create-exchange-RD7VOZSB.js → order-create-exchange-WHO3K2MW.js} +299 -271
  267. package/dist/{order-create-refund-XHQREMTG.js → order-create-refund-4ZO73NWS.js} +37 -37
  268. package/dist/{order-create-return-EOKSXD2G.js → order-create-return-R5WJBQ5W.js} +53 -26
  269. package/dist/{order-detail-QUPHQYYD.js → order-detail-QUGH2GXH.js} +45 -46
  270. package/dist/{order-edit-billing-address-WAG2HYJP.js → order-edit-billing-address-BEOKFNLZ.js} +35 -35
  271. package/dist/{order-edit-email-BVINKRKO.js → order-edit-email-GLAQZCIT.js} +34 -34
  272. package/dist/{order-edit-shipping-address-ZC5HY26W.js → order-edit-shipping-address-PF54SFAG.js} +34 -34
  273. package/dist/{order-list-2PKEFG4L.js → order-list-GMUOLGZY.js} +19 -18
  274. package/dist/{order-metadata-NI65ZEFX.js → order-metadata-VQOA3DOL.js} +34 -34
  275. package/dist/{order-request-transfer-X7D3T6YH.js → order-request-transfer-BLQQ66IF.js} +34 -34
  276. package/dist/pages/index.d.ts +599 -489
  277. package/dist/pages/index.js +192 -184
  278. package/dist/{payout-detail-TWO6HN4E.js → payout-detail-6U2ANWOH.js} +3 -3
  279. package/dist/{payout-list-7WJZFNW5.js → payout-list-3GQJQSVU.js} +8 -8
  280. package/dist/{price-list-configuration-Q5H22ZE2.js → price-list-configuration-BLHIGDSV.js} +14 -13
  281. package/dist/price-list-create-HKN72A6Q.js +77 -0
  282. package/dist/{price-list-detail-6M2QQ63Q.js → price-list-detail-6JAMNNJW.js} +44 -44
  283. package/dist/{price-list-edit-YY4SXEI3.js → price-list-edit-RZQMPHXU.js} +5 -5
  284. package/dist/{price-list-list-OIOY43TF.js → price-list-list-HLWCOORV.js} +11 -11
  285. package/dist/price-list-prices-add-ST6WNQNH.js +72 -0
  286. package/dist/{price-list-prices-edit-GS7L2BYX.js → price-list-prices-edit-ZQE3Z3NK.js} +35 -35
  287. package/dist/{product-add-existing-attributes-3Q2LGRQO.js → product-add-existing-attributes-J6MML6MT.js} +52 -49
  288. package/dist/{product-attributes-C3KHQF2I.js → product-attributes-4EPKS6MP.js} +4 -4
  289. package/dist/{product-bulk-edit-J3CMBZN2.js → product-bulk-edit-TRI2KKHW.js} +4 -4
  290. package/dist/product-create-B4DTC2OM.js +71 -0
  291. package/dist/{product-create-attribute-XARMC6FJ.js → product-create-attribute-BP6NN4GO.js} +21 -11
  292. package/dist/{product-create-variant-6VUKYLWE.js → product-create-variant-VDQQNHAK.js} +8 -8
  293. package/dist/{product-detail-OKHNAVKL.js → product-detail-MFJ3AIU6.js} +41 -37
  294. package/dist/{product-edit-F4CKOIUO.js → product-edit-26AWYWUU.js} +4 -4
  295. package/dist/product-edit-attribute-AXPTES26.js +336 -0
  296. package/dist/product-list-DMQSLXM4.js +87 -0
  297. package/dist/{product-media-PKIQO5ZS.js → product-media-XRBLOV7D.js} +14 -17
  298. package/dist/{product-metadata-HMRYPUVS.js → product-metadata-LOF6TSJQ.js} +35 -35
  299. package/dist/{product-organization-BFWDCHP4.js → product-organization-ISVMEWQG.js} +86 -10
  300. package/dist/{product-sales-channels-WKQSYOEX.js → product-sales-channels-C6UUHWGB.js} +8 -9
  301. package/dist/{product-shipping-profile-WDLKA2SN.js → product-shipping-profile-VTYQ22E4.js} +4 -4
  302. package/dist/{product-tag-create-JPRBCLRG.js → product-tag-create-AHG3Y4GE.js} +33 -33
  303. package/dist/{product-tag-detail-KAVDX34C.js → product-tag-detail-4FL4CU5S.js} +58 -56
  304. package/dist/{product-tag-edit-HZSUOL64.js → product-tag-edit-ACHNVZZP.js} +33 -33
  305. package/dist/{product-tag-list-FECZ4YS2.js → product-tag-list-YPTIDXPX.js} +58 -56
  306. package/dist/{product-tag-metadata-YP4SOBCH.js → product-tag-metadata-BXC7GMBB.js} +34 -34
  307. package/dist/{product-type-create-RHG4KEAV.js → product-type-create-PPTAW3DW.js} +3 -3
  308. package/dist/{product-type-detail-BWAJ2JO5.js → product-type-detail-RAYCHYAF.js} +44 -44
  309. package/dist/{product-type-edit-CABB7R7Y.js → product-type-edit-55AH3P7G.js} +3 -3
  310. package/dist/{product-type-list-TM26QMHR.js → product-type-list-JN4SKTFE.js} +8 -8
  311. package/dist/{product-type-metadata-EJOBRGZ6.js → product-type-metadata-24JU4JNK.js} +34 -34
  312. package/dist/{product-variant-detail-VXWES7XS.js → product-variant-detail-7CFNAI3A.js} +33 -33
  313. package/dist/{product-variant-edit-XH4R6M3D.js → product-variant-edit-C4HXFQFW.js} +35 -35
  314. package/dist/{product-variant-metadata-Y6SO5UJI.js → product-variant-metadata-5PUBLPDN.js} +34 -34
  315. package/dist/{profile-detail-ZRL5SERS.js → profile-detail-PABUO545.js} +3 -3
  316. package/dist/{profile-edit-HQTWYWZ7.js → profile-edit-O6Z3XJ4U.js} +3 -3
  317. package/dist/{promotion-add-campaign-S3JJSFHT.js → promotion-add-campaign-WK36UMSF.js} +7 -7
  318. package/dist/promotion-create-7VBA6JFM.js +57 -0
  319. package/dist/{promotion-detail-KTPZUDXT.js → promotion-detail-KXXWEFHW.js} +36 -36
  320. package/dist/{promotion-edit-details-TKRC5HES.js → promotion-edit-details-YM5JPGEC.js} +5 -10
  321. package/dist/{promotion-list-SSWK44YZ.js → promotion-list-56ZDROMH.js} +10 -10
  322. package/dist/{refund-reason-create-XDJFPVZL.js → refund-reason-create-UA3XS6DP.js} +33 -33
  323. package/dist/{refund-reason-edit-VI5DSC7T.js → refund-reason-edit-3TAGKV3U.js} +33 -33
  324. package/dist/{refund-reason-list-3PYLHTJZ.js → refund-reason-list-PBLA5HYO.js} +49 -47
  325. package/dist/{region-add-countries-COXN4LP3.js → region-add-countries-UO5A42HM.js} +12 -12
  326. package/dist/{region-create-P66Q65XY.js → region-create-7NA6RKWS.js} +13 -13
  327. package/dist/{region-detail-P2HHBYFV.js → region-detail-636IAPYK.js} +9 -9
  328. package/dist/{region-edit-XFE54SAO.js → region-edit-Z4VYO3TQ.js} +5 -5
  329. package/dist/{region-list-2XXKCDDX.js → region-list-GIU6NFI4.js} +9 -9
  330. package/dist/{region-metadata-6RR2SU5H.js → region-metadata-NRV3L42D.js} +34 -34
  331. package/dist/{reservation-create-LRSOJH6K.js → reservation-create-ANLVF7EC.js} +5 -5
  332. package/dist/{reservation-detail-L4B27AVM.js → reservation-detail-MAWHNY2H.js} +33 -33
  333. package/dist/{reservation-list-YWCTHZUL.js → reservation-list-UWZRPRPH.js} +9 -9
  334. package/dist/{reservation-metadata-W6IYXGPB.js → reservation-metadata-ZFKKAOWG.js} +34 -34
  335. package/dist/{reset-password-EBZ65YXV.js → reset-password-UDA5ZMTZ.js} +3 -3
  336. package/dist/{return-reason-create-KED7446I.js → return-reason-create-DYJCGEOK.js} +3 -3
  337. package/dist/{return-reason-edit-57EU3XSE.js → return-reason-edit-A7ATUTCD.js} +3 -3
  338. package/dist/{return-reason-list-74IYCLLS.js → return-reason-list-NPAAMB5H.js} +23 -21
  339. package/dist/{sales-channel-add-products-6UPTDZPP.js → sales-channel-add-products-2BBIMN6N.js} +46 -46
  340. package/dist/{sales-channel-create-XBR3QESI.js → sales-channel-create-OC2BB67N.js} +4 -4
  341. package/dist/{sales-channel-detail-H6XNWIK6.js → sales-channel-detail-D5R7HPC7.js} +43 -43
  342. package/dist/{sales-channel-edit-ILBZBQP4.js → sales-channel-edit-V62TBRC4.js} +4 -4
  343. package/dist/sales-channel-list-LVW7XE7K.js +52 -0
  344. package/dist/{sales-channel-metadata-ILMPQGG3.js → sales-channel-metadata-5W4OZZYI.js} +34 -34
  345. package/dist/{shipping-option-type-create-6JJFI3KO.js → shipping-option-type-create-GHOCZT64.js} +33 -33
  346. package/dist/{shipping-option-type-detail-QOQ4EE2K.js → shipping-option-type-detail-W32EHTBS.js} +34 -34
  347. package/dist/{shipping-option-type-edit-OQWZ7PWX.js → shipping-option-type-edit-KRIP6HTC.js} +33 -33
  348. package/dist/shipping-option-type-list-4FML2ZX5.js +60 -0
  349. package/dist/{shipping-profile-create-UJNCCKKK.js → shipping-profile-create-HKYX4FKJ.js} +3 -3
  350. package/dist/{shipping-profile-detail-YAKZHWZI.js → shipping-profile-detail-UFGQ3CCH.js} +3 -3
  351. package/dist/{shipping-profile-metadata-TFG6BEVX.js → shipping-profile-metadata-52ZW757T.js} +34 -34
  352. package/dist/{shipping-profiles-list-JF2SQIQ7.js → shipping-profiles-list-PZQVMKR4.js} +7 -7
  353. package/dist/{store-address-edit-PKIBRFH4.js → store-address-edit-IJ2UW6WC.js} +4 -4
  354. package/dist/{store-bulk-edit-BNF3HH5K.js → store-bulk-edit-OIYKZ6AZ.js} +5 -5
  355. package/dist/{store-closure-edit-OK7MTUHY.js → store-closure-edit-H3EKROXP.js} +3 -3
  356. package/dist/{store-create-MIMJEBST.js → store-create-Y3BGG5P5.js} +36 -36
  357. package/dist/{store-details-TGB2GFLX.js → store-details-56IHJJQV.js} +51 -51
  358. package/dist/{store-edit-XNZRRLYY.js → store-edit-HWOGEOCH.js} +14 -10
  359. package/dist/store-list-5DRW6QZF.js +82 -0
  360. package/dist/{store-member-invite-J5XSPWMW.js → store-member-invite-7ORIMT73.js} +6 -6
  361. package/dist/{store-payment-details-edit-HOGHZMZC.js → store-payment-details-edit-ERRJDLBO.js} +3 -3
  362. package/dist/{store-professional-details-edit-DPJ4ZFDR.js → store-professional-details-edit-VD2J4VYV.js} +3 -3
  363. package/dist/{tax-region-create-FN4W4SQK.js → tax-region-create-GGDCD2VU.js} +34 -34
  364. package/dist/tax-region-detail-L7STT6C7.js +69 -0
  365. package/dist/{tax-region-edit-RCGY5D3G.js → tax-region-edit-6JOV3POI.js} +33 -33
  366. package/dist/{tax-region-list-FIBHEFVD.js → tax-region-list-NIAT626R.js} +8 -8
  367. package/dist/{tax-region-metadata-NKJXZ4SR.js → tax-region-metadata-4P667IOY.js} +34 -34
  368. package/dist/{tax-region-province-create-OVLIZPNP.js → tax-region-province-create-7YT2LNJG.js} +3 -3
  369. package/dist/{tax-region-province-detail-L2TWOQ7H.js → tax-region-province-detail-2GRPOSWS.js} +40 -40
  370. package/dist/{tax-region-tax-override-create-767T73RO.js → tax-region-tax-override-create-R5GKEOK6.js} +61 -61
  371. package/dist/{tax-region-tax-override-edit-T2BK7ZPA.js → tax-region-tax-override-edit-MLJKNLAR.js} +61 -61
  372. package/dist/{tax-region-tax-rate-create-KDN6G52Y.js → tax-region-tax-rate-create-3ZLVL3X3.js} +4 -4
  373. package/dist/{tax-region-tax-rate-edit-D4BFDDJ7.js → tax-region-tax-rate-edit-XVMPIJOF.js} +4 -4
  374. package/dist/{user-detail-MMVBN3AE.js → user-detail-452E7GII.js} +4 -4
  375. package/dist/{user-edit-MXS2DV37.js → user-edit-T3MZKULQ.js} +3 -3
  376. package/dist/{user-invite-HLZJ7FST.js → user-invite-FCWARLW5.js} +11 -11
  377. package/dist/{user-list-TR7RSGUO.js → user-list-OU6WS25V.js} +7 -7
  378. package/dist/{user-metadata-IZCJT3N5.js → user-metadata-CHHV7S3A.js} +34 -34
  379. package/package.json +15 -12
  380. package/dist/[id]-272FUOXG.js +0 -503
  381. package/dist/attribute-list-SK3ZYHDB.js +0 -61
  382. package/dist/chunk-4GFS57XI.js +0 -390
  383. package/dist/chunk-54RTJBYO.js +0 -153
  384. package/dist/chunk-7O6WJTBI.js +0 -139
  385. package/dist/chunk-AKTAFKIU.js +0 -228
  386. package/dist/chunk-CKNQJPAG.js +0 -135
  387. package/dist/chunk-FG4NHVBO.js +0 -1755
  388. package/dist/chunk-GVEF6UDT.js +0 -8
  389. package/dist/chunk-RXM4B6HR.js +0 -8
  390. package/dist/chunk-SWL7ZCP3.js +0 -11
  391. package/dist/chunk-UM7ZR3VU.js +0 -14
  392. package/dist/collection-list-ZAMXJO4H.js +0 -82
  393. package/dist/commission-rate-create-O2TZ56RG.js +0 -782
  394. package/dist/commission-rate-detail-Y5NPDWQN.js +0 -85
  395. package/dist/commission-rate-edit-X5RJS6XC.js +0 -767
  396. package/dist/commission-rate-list-Y5XLEO67.js +0 -26
  397. package/dist/customer-group-list-RGCIS44T.js +0 -57
  398. package/dist/inventory-create-VIIAVANZ.js +0 -58
  399. package/dist/loader-O4EABIXE.js +0 -26
  400. package/dist/location-list-YH3X5HHG.js +0 -54
  401. package/dist/location-service-zone-shipping-option-create-FK447EYC.js +0 -60
  402. package/dist/marketplace-detail-VXY6MKJS.js +0 -75
  403. package/dist/offers-O4BI5PLZ.js +0 -440
  404. package/dist/order-allocate-items-XSJ65QFV.js +0 -563
  405. package/dist/order-create-fulfillment-QT3QP5EE.js +0 -643
  406. package/dist/order-create-shipment-664JCOKN.js +0 -214
  407. package/dist/order-receive-return-KJPDZB5H.js +0 -562
  408. package/dist/price-list-create-W2NKRFCV.js +0 -77
  409. package/dist/price-list-prices-add-KGW5H7JL.js +0 -72
  410. package/dist/product-create-3WA2FHND.js +0 -71
  411. package/dist/product-edit-attribute-LG2ZM6HQ.js +0 -175
  412. package/dist/product-list-OEM73MI2.js +0 -87
  413. package/dist/promotion-create-7HDNJF2T.js +0 -57
  414. package/dist/sales-channel-list-VA2OASCG.js +0 -53
  415. package/dist/shipping-option-type-list-YRDWTDMK.js +0 -60
  416. package/dist/store-list-BLXUWEG3.js +0 -82
  417. package/dist/tax-region-detail-XN4P6VR5.js +0 -69
@@ -0,0 +1,1238 @@
1
+ import {
2
+ ProductMediaSection
3
+ } from "./chunk-BVIIRGSW.js";
4
+ import {
5
+ SectionRow
6
+ } from "./chunk-3XPXUIK3.js";
7
+ import {
8
+ PRODUCT_DETAIL_QUERY
9
+ } from "./chunk-6BAPAIQM.js";
10
+ import {
11
+ TwoColumnPage
12
+ } from "./chunk-E74OUNA3.js";
13
+ import {
14
+ Thumbnail
15
+ } from "./chunk-WIYFXWRI.js";
16
+ import {
17
+ _DataTable,
18
+ useDataTable
19
+ } from "./chunk-6ZVV2XHU.js";
20
+ import {
21
+ useQueryParams
22
+ } from "./chunk-THHRRYRS.js";
23
+ import {
24
+ require_dist
25
+ } from "./chunk-DSTHXHJ5.js";
26
+ import {
27
+ useSeller
28
+ } from "./chunk-BILFRATX.js";
29
+ import {
30
+ ActionMenu
31
+ } from "./chunk-BDGZ4EQO.js";
32
+ import {
33
+ TwoColumnPageSkeleton
34
+ } from "./chunk-INNFZYX2.js";
35
+ import {
36
+ useCancelProductChange,
37
+ useConfirmProduct,
38
+ useConfirmProductChange,
39
+ useDeleteProduct,
40
+ useDeleteVariantLazy,
41
+ useProduct,
42
+ useProductChange,
43
+ useProductVariants,
44
+ useRejectProduct,
45
+ useRemoveAttributeFromProduct,
46
+ useRequestProductChanges
47
+ } from "./chunk-ZKHF75MZ.js";
48
+ import {
49
+ sdk
50
+ } from "./chunk-LXZXXOJ3.js";
51
+ import {
52
+ __toESM
53
+ } from "./chunk-NBMM2TZK.js";
54
+
55
+ // src/pages/products/product-detail/product-detail.tsx
56
+ import { Children } from "react";
57
+ import { useLoaderData, useParams } from "react-router-dom";
58
+
59
+ // src/pages/products/product-detail/components/product-active-edit-section/product-active-edit-section.tsx
60
+ var import_types = __toESM(require_dist(), 1);
61
+ import { useState as useState2 } from "react";
62
+ import { Button, Text, toast } from "@medusajs/ui";
63
+ import {
64
+ ProductChangePanel
65
+ } from "@mercurjs/dashboard-shared";
66
+ import { useTranslation as useTranslation2 } from "react-i18next";
67
+
68
+ // src/components/common/confirm-prompt/confirm-prompt.tsx
69
+ import { Label, Prompt, Textarea } from "@medusajs/ui";
70
+ import { useEffect, useState } from "react";
71
+ import { useTranslation } from "react-i18next";
72
+ import { jsx, jsxs } from "react/jsx-runtime";
73
+ var ConfirmPrompt = ({
74
+ open,
75
+ onOpenChange,
76
+ variant = "confirmation",
77
+ title,
78
+ description,
79
+ noteLabel,
80
+ noteOptional = false,
81
+ notePlaceholder,
82
+ defaultNote = "",
83
+ cancelLabel,
84
+ confirmLabel,
85
+ isLoading = false,
86
+ onConfirm
87
+ }) => {
88
+ const { t } = useTranslation();
89
+ const [note, setNote] = useState(defaultNote);
90
+ useEffect(() => {
91
+ if (open) {
92
+ setNote(defaultNote);
93
+ }
94
+ }, [open, defaultNote]);
95
+ const showNoteField = typeof noteLabel === "string";
96
+ const handleOpenChange = (next) => {
97
+ if (isLoading) {
98
+ return;
99
+ }
100
+ onOpenChange(next);
101
+ };
102
+ const handleConfirm = async () => {
103
+ const trimmed = note.trim();
104
+ await onConfirm(showNoteField && trimmed ? trimmed : void 0);
105
+ };
106
+ return /* @__PURE__ */ jsx(Prompt, { open, onOpenChange: handleOpenChange, variant, children: /* @__PURE__ */ jsxs(Prompt.Content, { children: [
107
+ /* @__PURE__ */ jsxs(Prompt.Header, { children: [
108
+ /* @__PURE__ */ jsx(Prompt.Title, { children: title }),
109
+ description ? /* @__PURE__ */ jsx(Prompt.Description, { children: description }) : null
110
+ ] }),
111
+ showNoteField ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2 px-6 py-4", children: [
112
+ /* @__PURE__ */ jsxs(Label, { size: "small", weight: "plus", children: [
113
+ noteLabel,
114
+ noteOptional ? /* @__PURE__ */ jsxs("span", { className: "text-ui-fg-muted ml-1 font-normal", children: [
115
+ "(",
116
+ t("fields.optional"),
117
+ ")"
118
+ ] }) : null
119
+ ] }),
120
+ /* @__PURE__ */ jsx(
121
+ Textarea,
122
+ {
123
+ placeholder: notePlaceholder,
124
+ value: note,
125
+ onChange: (e) => setNote(e.target.value),
126
+ disabled: isLoading
127
+ }
128
+ )
129
+ ] }) : null,
130
+ /* @__PURE__ */ jsxs(Prompt.Footer, { children: [
131
+ /* @__PURE__ */ jsx(Prompt.Cancel, { disabled: isLoading, children: cancelLabel ?? t("actions.cancel") }),
132
+ /* @__PURE__ */ jsx(
133
+ Prompt.Action,
134
+ {
135
+ onClick: (e) => {
136
+ e.preventDefault();
137
+ void handleConfirm();
138
+ },
139
+ disabled: isLoading,
140
+ children: confirmLabel ?? t("actions.confirm")
141
+ }
142
+ )
143
+ ] })
144
+ ] }) });
145
+ };
146
+
147
+ // src/pages/products/product-detail/components/product-active-edit-section/product-active-edit-section.tsx
148
+ import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
149
+ var VARIANT_LOOKUP_FIELDS = "id,title,sku,*images";
150
+ var resolversFor = (productId) => ({
151
+ getType: async (id) => {
152
+ const { product_type } = await sdk.admin.productTypes.$id.query({ $id: id });
153
+ return product_type?.value ?? null;
154
+ },
155
+ getCollection: async (id) => {
156
+ const { collection } = await sdk.admin.collections.$id.query({ $id: id });
157
+ return collection?.title ?? null;
158
+ },
159
+ getCategory: async (id) => {
160
+ const { product_category } = await sdk.admin.productCategories.$id.query({
161
+ $id: id
162
+ });
163
+ return product_category?.name ?? null;
164
+ },
165
+ getTag: async (id) => {
166
+ const { product_tag } = await sdk.admin.productTags.$id.query({ $id: id });
167
+ return product_tag?.value ?? null;
168
+ },
169
+ getAttribute: async (id) => {
170
+ const { product_attribute } = await sdk.admin.productAttributes.$id.query({
171
+ $id: id
172
+ });
173
+ if (!product_attribute) return null;
174
+ return {
175
+ name: product_attribute.name ?? id,
176
+ values: (product_attribute.values ?? []).map((v) => ({
177
+ id: v.id,
178
+ name: v.name ?? v.id
179
+ }))
180
+ };
181
+ },
182
+ getVariant: async (variantId) => {
183
+ const { variant } = await sdk.admin.products.$id.variants.$variantId.query({
184
+ $id: productId,
185
+ $variantId: variantId,
186
+ fields: VARIANT_LOOKUP_FIELDS
187
+ });
188
+ return variant ?? null;
189
+ }
190
+ });
191
+ var ProductActiveEditSection = ({
192
+ product
193
+ }) => {
194
+ const { t } = useTranslation2();
195
+ const [confirmOpen, setConfirmOpen] = useState2(false);
196
+ const [rejectOpen, setRejectOpen] = useState2(false);
197
+ const { product_change, isError } = useProductChange(product.id, {
198
+ retry: false
199
+ });
200
+ const requesterId = product_change?.created_by ?? "";
201
+ const { seller: requesterSeller } = useSeller(requesterId, void 0, {
202
+ enabled: !!requesterId
203
+ });
204
+ const { mutateAsync: confirmChange, isPending: isConfirming } = useConfirmProductChange(product_change?.id ?? "", product.id);
205
+ const { mutateAsync: cancelChange, isPending: isRejecting } = useCancelProductChange(product_change?.id ?? "", product.id);
206
+ if (isError || !product_change) {
207
+ return null;
208
+ }
209
+ if (product_change.status !== import_types.ProductChangeStatus.PENDING) {
210
+ return null;
211
+ }
212
+ const handleConfirm = async (note) => {
213
+ try {
214
+ await confirmChange({ internal_note: note });
215
+ toast.success(t("products.edits.toast.confirmedSuccessfully"));
216
+ setConfirmOpen(false);
217
+ } catch (e) {
218
+ toast.error(e.message);
219
+ }
220
+ };
221
+ const handleReject = async (note) => {
222
+ try {
223
+ await cancelChange({ internal_note: note });
224
+ toast.success(t("products.edits.toast.rejectedSuccessfully"));
225
+ setRejectOpen(false);
226
+ } catch (e) {
227
+ toast.error(e.message);
228
+ }
229
+ };
230
+ const panelProduct = {
231
+ id: product.id,
232
+ title: product.title,
233
+ thumbnail: product.thumbnail,
234
+ variants: product.variants,
235
+ attributes: product.attributes
236
+ };
237
+ return /* @__PURE__ */ jsxs2(Fragment, { children: [
238
+ /* @__PURE__ */ jsx2(
239
+ ProductChangePanel,
240
+ {
241
+ product: panelProduct,
242
+ actions: product_change.actions ?? [],
243
+ resolvers: resolversFor(product.id),
244
+ headerDescription: /* @__PURE__ */ jsx2(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: t("products.edits.panel.description", {
245
+ store: requesterSeller?.name ?? t("products.request.fallbackStore")
246
+ }) }),
247
+ footer: /* @__PURE__ */ jsxs2(Fragment, { children: [
248
+ /* @__PURE__ */ jsx2(
249
+ Button,
250
+ {
251
+ size: "small",
252
+ variant: "secondary",
253
+ onClick: () => setConfirmOpen(true),
254
+ "data-testid": "product-active-edit-confirm-button",
255
+ children: t("actions.confirm")
256
+ }
257
+ ),
258
+ /* @__PURE__ */ jsx2(
259
+ Button,
260
+ {
261
+ size: "small",
262
+ variant: "secondary",
263
+ onClick: () => setRejectOpen(true),
264
+ "data-testid": "product-active-edit-reject-button",
265
+ children: t("products.edits.actions.reject")
266
+ }
267
+ )
268
+ ] })
269
+ }
270
+ ),
271
+ /* @__PURE__ */ jsx2(
272
+ ConfirmPrompt,
273
+ {
274
+ open: confirmOpen,
275
+ onOpenChange: setConfirmOpen,
276
+ title: t("products.edits.confirmPrompt.title"),
277
+ description: t("products.edits.confirmPrompt.description"),
278
+ noteLabel: t("products.edits.confirmPrompt.noteLabel"),
279
+ noteOptional: true,
280
+ notePlaceholder: t("products.edits.confirmPrompt.notePlaceholder"),
281
+ isLoading: isConfirming,
282
+ onConfirm: handleConfirm
283
+ }
284
+ ),
285
+ /* @__PURE__ */ jsx2(
286
+ ConfirmPrompt,
287
+ {
288
+ open: rejectOpen,
289
+ onOpenChange: setRejectOpen,
290
+ title: t("products.edits.rejectPrompt.title"),
291
+ description: t("products.edits.rejectPrompt.description"),
292
+ noteLabel: t("products.edits.rejectPrompt.noteLabel"),
293
+ noteOptional: true,
294
+ notePlaceholder: t("products.edits.rejectPrompt.notePlaceholder"),
295
+ confirmLabel: t("products.edits.rejectPrompt.confirm"),
296
+ isLoading: isRejecting,
297
+ onConfirm: handleReject
298
+ }
299
+ )
300
+ ] });
301
+ };
302
+
303
+ // src/pages/products/product-detail/components/product-active-request-section/product-active-request-section.tsx
304
+ var import_types2 = __toESM(require_dist(), 1);
305
+ import { useState as useState3 } from "react";
306
+ import { Button as Button2, Container, Heading, Text as Text2, toast as toast2 } from "@medusajs/ui";
307
+ import { ExclamationCircleSolid } from "@medusajs/icons";
308
+ import { useTranslation as useTranslation3 } from "react-i18next";
309
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
310
+ var ProductActiveRequestSection = ({
311
+ product
312
+ }) => {
313
+ const { t } = useTranslation3();
314
+ const [confirmOpen, setConfirmOpen] = useState3(false);
315
+ const [requestUpdateOpen, setRequestUpdateOpen] = useState3(false);
316
+ const [rejectOpen, setRejectOpen] = useState3(false);
317
+ const { mutateAsync: confirmProduct, isPending: isConfirming } = useConfirmProduct(product.id);
318
+ const { mutateAsync: requestProductChanges, isPending: isRequestingUpdate } = useRequestProductChanges(product.id);
319
+ const { mutateAsync: rejectProduct, isPending: isRejecting } = useRejectProduct(product.id);
320
+ if (product.status !== import_types2.ProductStatus.PROPOSED) {
321
+ return null;
322
+ }
323
+ const handleConfirm = async (note) => {
324
+ try {
325
+ await confirmProduct({ internal_note: note });
326
+ toast2.success(t("products.request.toast.publishedSuccessfully"));
327
+ setConfirmOpen(false);
328
+ } catch (e) {
329
+ toast2.error(e.message);
330
+ }
331
+ };
332
+ const handleRequestUpdate = async (note) => {
333
+ try {
334
+ await requestProductChanges({ message: note });
335
+ toast2.success(t("products.request.toast.updateRequestedSuccessfully"));
336
+ setRequestUpdateOpen(false);
337
+ } catch (e) {
338
+ toast2.error(e.message);
339
+ }
340
+ };
341
+ const handleReject = async (note) => {
342
+ try {
343
+ await rejectProduct({ message: note });
344
+ toast2.success(t("products.request.toast.rejectedSuccessfully"));
345
+ setRejectOpen(false);
346
+ } catch (e) {
347
+ toast2.error(e.message);
348
+ }
349
+ };
350
+ return /* @__PURE__ */ jsxs3(
351
+ Container,
352
+ {
353
+ className: "divide-y p-0",
354
+ "data-testid": "product-active-request-section",
355
+ children: [
356
+ /* @__PURE__ */ jsxs3(
357
+ "div",
358
+ {
359
+ className: "flex items-center gap-2 px-6 py-4",
360
+ "data-testid": "product-active-request-header",
361
+ children: [
362
+ /* @__PURE__ */ jsx3(ExclamationCircleSolid, { className: "text-ui-fg-interactive" }),
363
+ /* @__PURE__ */ jsx3(Heading, { level: "h2", "data-testid": "product-active-request-heading", children: t("products.request.panel.title") })
364
+ ]
365
+ }
366
+ ),
367
+ /* @__PURE__ */ jsx3("div", { className: "px-6 py-4", children: /* @__PURE__ */ jsx3(Text2, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: t("products.request.panel.description", {
368
+ store: product.sellers?.[0]?.name ?? t("products.request.fallbackStore")
369
+ }) }) }),
370
+ /* @__PURE__ */ jsxs3(
371
+ "div",
372
+ {
373
+ className: "bg-ui-bg-subtle flex items-center justify-end gap-x-2 rounded-b-xl px-6 py-4",
374
+ "data-testid": "product-active-request-actions",
375
+ children: [
376
+ /* @__PURE__ */ jsx3(
377
+ Button2,
378
+ {
379
+ size: "small",
380
+ variant: "secondary",
381
+ onClick: () => setConfirmOpen(true),
382
+ "data-testid": "product-active-request-confirm-button",
383
+ children: t("actions.confirm")
384
+ }
385
+ ),
386
+ /* @__PURE__ */ jsx3(
387
+ Button2,
388
+ {
389
+ size: "small",
390
+ variant: "secondary",
391
+ onClick: () => setRequestUpdateOpen(true),
392
+ "data-testid": "product-active-request-request-update-button",
393
+ children: t("products.request.actions.requestUpdate")
394
+ }
395
+ ),
396
+ /* @__PURE__ */ jsx3(
397
+ Button2,
398
+ {
399
+ size: "small",
400
+ variant: "secondary",
401
+ onClick: () => setRejectOpen(true),
402
+ "data-testid": "product-active-request-reject-button",
403
+ children: t("products.request.actions.reject")
404
+ }
405
+ )
406
+ ]
407
+ }
408
+ ),
409
+ /* @__PURE__ */ jsx3(
410
+ ConfirmPrompt,
411
+ {
412
+ open: confirmOpen,
413
+ onOpenChange: setConfirmOpen,
414
+ title: t("products.request.confirmPrompt.title"),
415
+ description: t("products.request.confirmPrompt.description"),
416
+ noteLabel: t("products.request.confirmPrompt.noteLabel"),
417
+ noteOptional: true,
418
+ notePlaceholder: t("products.request.confirmPrompt.notePlaceholder"),
419
+ isLoading: isConfirming,
420
+ onConfirm: handleConfirm
421
+ }
422
+ ),
423
+ /* @__PURE__ */ jsx3(
424
+ ConfirmPrompt,
425
+ {
426
+ open: requestUpdateOpen,
427
+ onOpenChange: setRequestUpdateOpen,
428
+ title: t("products.request.requestUpdatePrompt.title"),
429
+ description: t("products.request.requestUpdatePrompt.description"),
430
+ noteLabel: t("products.request.requestUpdatePrompt.noteLabel"),
431
+ noteOptional: true,
432
+ notePlaceholder: t(
433
+ "products.request.requestUpdatePrompt.notePlaceholder"
434
+ ),
435
+ confirmLabel: t("products.request.requestUpdatePrompt.send"),
436
+ isLoading: isRequestingUpdate,
437
+ onConfirm: handleRequestUpdate
438
+ }
439
+ ),
440
+ /* @__PURE__ */ jsx3(
441
+ ConfirmPrompt,
442
+ {
443
+ open: rejectOpen,
444
+ onOpenChange: setRejectOpen,
445
+ title: t("products.request.rejectPrompt.title"),
446
+ description: t("products.request.rejectPrompt.description"),
447
+ noteLabel: t("products.request.rejectPrompt.noteLabel"),
448
+ noteOptional: true,
449
+ notePlaceholder: t("products.request.rejectPrompt.notePlaceholder"),
450
+ confirmLabel: t("products.request.rejectPrompt.confirm"),
451
+ isLoading: isRejecting,
452
+ onConfirm: handleReject
453
+ }
454
+ )
455
+ ]
456
+ }
457
+ );
458
+ };
459
+
460
+ // src/pages/products/product-detail/components/product-attribute-section/product-attribute-section.tsx
461
+ import {
462
+ Plus,
463
+ Trash,
464
+ Swatch,
465
+ DropCap,
466
+ InformationCircleSolid,
467
+ PencilSquare
468
+ } from "@medusajs/icons";
469
+ import {
470
+ Badge,
471
+ Container as Container2,
472
+ Heading as Heading2,
473
+ Text as Text3,
474
+ toast as toast3,
475
+ Tooltip,
476
+ usePrompt
477
+ } from "@medusajs/ui";
478
+ import { useTranslation as useTranslation4 } from "react-i18next";
479
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
480
+ var AttributeActions = ({
481
+ productId,
482
+ attribute
483
+ }) => {
484
+ const { t } = useTranslation4();
485
+ const prompt = usePrompt();
486
+ const { mutateAsync } = useRemoveAttributeFromProduct(productId, attribute.id);
487
+ const handleDelete = async () => {
488
+ const res = await prompt({
489
+ title: t("general.areYouSure"),
490
+ description: t("products.deleteAttributeWarning", {
491
+ title: attribute.name
492
+ }),
493
+ confirmText: t("actions.delete"),
494
+ cancelText: t("actions.cancel")
495
+ });
496
+ if (!res) {
497
+ return;
498
+ }
499
+ await mutateAsync(void 0, {
500
+ onError: (error) => {
501
+ toast3.error(error.message);
502
+ }
503
+ });
504
+ };
505
+ return /* @__PURE__ */ jsx4(
506
+ ActionMenu,
507
+ {
508
+ groups: [
509
+ {
510
+ actions: [
511
+ {
512
+ label: t("actions.edit"),
513
+ to: `attributes/${attribute.id}/edit`,
514
+ icon: /* @__PURE__ */ jsx4(PencilSquare, {})
515
+ }
516
+ ]
517
+ },
518
+ ...attribute.is_required ? [] : [
519
+ {
520
+ actions: [
521
+ {
522
+ label: t("actions.delete"),
523
+ onClick: handleDelete,
524
+ icon: /* @__PURE__ */ jsx4(Trash, {})
525
+ }
526
+ ]
527
+ }
528
+ ]
529
+ ]
530
+ }
531
+ );
532
+ };
533
+ var AttributeValue = ({
534
+ attribute
535
+ }) => {
536
+ const { t } = useTranslation4();
537
+ const values = attribute.values?.map((v) => v.name) ?? [];
538
+ if (["single_select", "multi_select"].includes(attribute.type)) {
539
+ return /* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-1", children: values.map((val) => /* @__PURE__ */ jsx4(
540
+ Badge,
541
+ {
542
+ size: "2xsmall",
543
+ className: "flex min-w-[20px] items-center justify-center",
544
+ children: val
545
+ },
546
+ val
547
+ )) });
548
+ }
549
+ const textValue = attribute.type === "toggle" ? values.map((val) => val === "true" ? t("general.yes") : t("general.no")).join(", ") || "-" : values.join(", ") || "-";
550
+ return /* @__PURE__ */ jsx4(Tooltip, { content: /* @__PURE__ */ jsx4("span", { className: "break-all", children: textValue }), children: /* @__PURE__ */ jsx4(
551
+ Text3,
552
+ {
553
+ size: "small",
554
+ leading: "compact",
555
+ className: "line-clamp-3 min-w-0 break-words text-ui-fg-subtle",
556
+ children: textValue
557
+ }
558
+ ) });
559
+ };
560
+ var AttributeGroup = ({
561
+ icon,
562
+ title,
563
+ description,
564
+ attributes,
565
+ productId
566
+ }) => {
567
+ const { t } = useTranslation4();
568
+ if (!attributes.length) {
569
+ return null;
570
+ }
571
+ return /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-y-4 px-3 py-4", children: [
572
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-x-3 px-3", children: [
573
+ /* @__PURE__ */ jsx4("div", { className: "text-ui-fg-muted flex h-8 w-8 items-center justify-center rounded-lg border border-ui-border-base bg-ui-bg-component", children: icon }),
574
+ /* @__PURE__ */ jsxs4("div", { children: [
575
+ /* @__PURE__ */ jsx4(Text3, { size: "small", weight: "plus", leading: "compact", children: title }),
576
+ /* @__PURE__ */ jsx4(Text3, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: description })
577
+ ] })
578
+ ] }),
579
+ /* @__PURE__ */ jsx4("div", { className: "flex flex-col gap-y-0", children: /* @__PURE__ */ jsx4("div", { className: "overflow-hidden rounded-xl border border-ui-border-base", children: attributes.map((attr, index) => {
580
+ return /* @__PURE__ */ jsx4(
581
+ "div",
582
+ {
583
+ className: index < attributes.length - 1 ? "border-b border-ui-border-base" : "",
584
+ children: /* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_28px] items-center gap-4 px-4 py-3 bg-ui-bg-component", children: [
585
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-x-2 text-ui-fg-subtle", children: [
586
+ /* @__PURE__ */ jsx4(Text3, { size: "small", weight: "plus", leading: "compact", children: attr.name }),
587
+ attr.description && /* @__PURE__ */ jsx4(Tooltip, { content: attr.description, children: /* @__PURE__ */ jsx4("span", { className: "text-ui-fg-muted flex items-center", children: /* @__PURE__ */ jsx4(InformationCircleSolid, {}) }) }),
588
+ attr.is_required && /* @__PURE__ */ jsx4(Tooltip, { content: t("products.attributeRequiredByMarketplace"), children: /* @__PURE__ */ jsx4("span", { className: "text-ui-fg-muted flex items-center", children: /* @__PURE__ */ jsx4(InformationCircleSolid, {}) }) })
589
+ ] }),
590
+ /* @__PURE__ */ jsx4(AttributeValue, { attribute: attr }),
591
+ /* @__PURE__ */ jsx4(AttributeActions, { productId, attribute: attr })
592
+ ] })
593
+ },
594
+ attr.id
595
+ );
596
+ }) }) })
597
+ ] });
598
+ };
599
+ var ProductAttributeSection = ({
600
+ product
601
+ }) => {
602
+ const { t } = useTranslation4();
603
+ const allAttributes = product.attributes ?? [];
604
+ const variantAttributes = allAttributes.filter((a) => a.is_variant_axis);
605
+ const infoAttributes = allAttributes.filter((a) => !a.is_variant_axis);
606
+ const isEmpty = !variantAttributes.length && !infoAttributes.length;
607
+ return /* @__PURE__ */ jsxs4(Container2, { className: "p-0", children: [
608
+ /* @__PURE__ */ jsxs4(
609
+ "div",
610
+ {
611
+ className: `flex items-center justify-between px-6 py-4${isEmpty ? "" : " border-b border-ui-border-base"}`,
612
+ children: [
613
+ /* @__PURE__ */ jsx4(Heading2, { level: "h2", children: t("products.attributes") }),
614
+ /* @__PURE__ */ jsx4(
615
+ ActionMenu,
616
+ {
617
+ groups: [
618
+ {
619
+ actions: [
620
+ {
621
+ label: t("products.create.attributes.addExisting"),
622
+ to: "attributes/add",
623
+ icon: /* @__PURE__ */ jsx4(Plus, {})
624
+ },
625
+ {
626
+ label: t("products.create.attributes.createNew"),
627
+ to: "attributes/create",
628
+ icon: /* @__PURE__ */ jsx4(PencilSquare, {})
629
+ }
630
+ ]
631
+ }
632
+ ]
633
+ }
634
+ )
635
+ ]
636
+ }
637
+ ),
638
+ variantAttributes.length > 0 && /* @__PURE__ */ jsx4(
639
+ AttributeGroup,
640
+ {
641
+ icon: /* @__PURE__ */ jsx4(Swatch, {}),
642
+ title: t("products.attributeVariations"),
643
+ description: t("products.attributeVariantsDescription"),
644
+ attributes: variantAttributes,
645
+ productId: product.id
646
+ }
647
+ ),
648
+ variantAttributes.length > 0 && infoAttributes.length > 0 && /* @__PURE__ */ jsx4("div", { className: "border-t border-dashed border-ui-border-base" }),
649
+ infoAttributes.length > 0 && /* @__PURE__ */ jsx4(
650
+ AttributeGroup,
651
+ {
652
+ icon: /* @__PURE__ */ jsx4(DropCap, {}),
653
+ title: t("products.attributeProductInformation"),
654
+ description: t("products.attributeProductInformationDescription"),
655
+ attributes: infoAttributes,
656
+ productId: product.id
657
+ }
658
+ )
659
+ ] });
660
+ };
661
+
662
+ // src/pages/products/product-detail/components/product-general-section/product-general-section.tsx
663
+ import { PencilSquare as PencilSquare2, Trash as Trash2 } from "@medusajs/icons";
664
+ import { Container as Container3, Heading as Heading3, StatusBadge, usePrompt as usePrompt2 } from "@medusajs/ui";
665
+ import { useTranslation as useTranslation5 } from "react-i18next";
666
+ import { useNavigate } from "react-router-dom";
667
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
668
+ var productStatusColor = (status) => {
669
+ switch (status) {
670
+ case "draft":
671
+ return "grey";
672
+ case "proposed":
673
+ return "orange";
674
+ case "published":
675
+ return "green";
676
+ case "rejected":
677
+ return "red";
678
+ default:
679
+ return "grey";
680
+ }
681
+ };
682
+ var ProductGeneralSection = ({
683
+ product
684
+ }) => {
685
+ const { t } = useTranslation5();
686
+ const prompt = usePrompt2();
687
+ const navigate = useNavigate();
688
+ const { mutateAsync } = useDeleteProduct(product.id);
689
+ const handleDelete = async () => {
690
+ const res = await prompt({
691
+ title: t("general.areYouSure"),
692
+ description: t("products.deleteWarning", {
693
+ title: product.title
694
+ }),
695
+ confirmText: t("actions.delete"),
696
+ cancelText: t("actions.cancel")
697
+ });
698
+ if (!res) {
699
+ return;
700
+ }
701
+ await mutateAsync(void 0, {
702
+ onSuccess: () => {
703
+ navigate("..");
704
+ }
705
+ });
706
+ };
707
+ return /* @__PURE__ */ jsxs5(Container3, { className: "divide-y p-0", "data-testid": "product-general-section", children: [
708
+ /* @__PURE__ */ jsxs5(
709
+ "div",
710
+ {
711
+ className: "flex items-center justify-between px-6 py-4",
712
+ "data-testid": "product-general-header",
713
+ children: [
714
+ /* @__PURE__ */ jsx5(Heading3, { "data-testid": "product-general-title", children: product.title }),
715
+ /* @__PURE__ */ jsxs5(
716
+ "div",
717
+ {
718
+ className: "flex items-center gap-x-4",
719
+ "data-testid": "product-general-actions",
720
+ children: [
721
+ /* @__PURE__ */ jsx5(
722
+ StatusBadge,
723
+ {
724
+ color: productStatusColor(product.status),
725
+ "data-testid": "product-status-badge",
726
+ children: t(`products.productStatus.${product.status}`)
727
+ }
728
+ ),
729
+ /* @__PURE__ */ jsx5(
730
+ ActionMenu,
731
+ {
732
+ groups: [
733
+ {
734
+ actions: [
735
+ {
736
+ label: t("actions.edit"),
737
+ to: "edit",
738
+ icon: /* @__PURE__ */ jsx5(PencilSquare2, {})
739
+ }
740
+ ]
741
+ },
742
+ {
743
+ actions: [
744
+ {
745
+ label: t("actions.delete"),
746
+ onClick: handleDelete,
747
+ icon: /* @__PURE__ */ jsx5(Trash2, {})
748
+ }
749
+ ]
750
+ }
751
+ ],
752
+ "data-testid": "product-general-action-menu"
753
+ }
754
+ )
755
+ ]
756
+ }
757
+ )
758
+ ]
759
+ }
760
+ ),
761
+ /* @__PURE__ */ jsx5(
762
+ SectionRow,
763
+ {
764
+ title: t("fields.description"),
765
+ value: product.description,
766
+ "data-testid": "product-description-row"
767
+ }
768
+ ),
769
+ /* @__PURE__ */ jsx5(
770
+ SectionRow,
771
+ {
772
+ title: t("fields.subtitle"),
773
+ value: product.subtitle,
774
+ "data-testid": "product-subtitle-row"
775
+ }
776
+ ),
777
+ /* @__PURE__ */ jsx5(
778
+ SectionRow,
779
+ {
780
+ title: t("fields.handle"),
781
+ value: `/${product.handle}`,
782
+ "data-testid": "product-handle-row"
783
+ }
784
+ ),
785
+ /* @__PURE__ */ jsx5(
786
+ SectionRow,
787
+ {
788
+ title: t("fields.discountable"),
789
+ value: product.discountable ? t("fields.true") : t("fields.false"),
790
+ "data-testid": "product-discountable-row"
791
+ }
792
+ )
793
+ ] });
794
+ };
795
+
796
+ // src/pages/products/product-detail/components/product-organization-section/product-organization-section.tsx
797
+ import { PencilSquare as PencilSquare3 } from "@medusajs/icons";
798
+ import { Badge as Badge2, Container as Container4, Heading as Heading4, Tooltip as Tooltip2 } from "@medusajs/ui";
799
+ import { useTranslation as useTranslation6 } from "react-i18next";
800
+ import { Link } from "react-router-dom";
801
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
802
+ var ProductOrganizationSection = ({
803
+ product
804
+ }) => {
805
+ const { t } = useTranslation6();
806
+ return /* @__PURE__ */ jsxs6(
807
+ Container4,
808
+ {
809
+ className: "divide-y p-0",
810
+ "data-testid": "product-organization-section",
811
+ children: [
812
+ /* @__PURE__ */ jsxs6(
813
+ "div",
814
+ {
815
+ className: "flex items-center justify-between px-6 py-4",
816
+ "data-testid": "product-organization-header",
817
+ children: [
818
+ /* @__PURE__ */ jsx6(Heading4, { level: "h2", "data-testid": "product-organization-title", children: t("products.organization.header") }),
819
+ /* @__PURE__ */ jsx6(
820
+ ActionMenu,
821
+ {
822
+ groups: [
823
+ {
824
+ actions: [
825
+ {
826
+ label: t("actions.edit"),
827
+ to: "organization",
828
+ icon: /* @__PURE__ */ jsx6(PencilSquare3, {})
829
+ }
830
+ ]
831
+ }
832
+ ],
833
+ "data-testid": "product-organization-action-menu"
834
+ }
835
+ )
836
+ ]
837
+ }
838
+ ),
839
+ /* @__PURE__ */ jsx6(
840
+ SectionRow,
841
+ {
842
+ title: t("fields.category"),
843
+ value: product.categories?.length ? product.categories.map((pcat) => /* @__PURE__ */ jsx6(
844
+ OrganizationTag,
845
+ {
846
+ label: pcat.name,
847
+ to: `/categories/${pcat.id}`
848
+ },
849
+ pcat.id
850
+ )) : void 0,
851
+ "data-testid": "product-categories-row"
852
+ }
853
+ ),
854
+ /* @__PURE__ */ jsx6(
855
+ SectionRow,
856
+ {
857
+ title: t("fields.collection"),
858
+ value: product.collection ? /* @__PURE__ */ jsx6(
859
+ OrganizationTag,
860
+ {
861
+ label: product.collection.title,
862
+ to: `/collections/${product.collection.id}`
863
+ }
864
+ ) : void 0,
865
+ "data-testid": "product-collection-row"
866
+ }
867
+ ),
868
+ /* @__PURE__ */ jsx6(
869
+ SectionRow,
870
+ {
871
+ title: t("fields.tags"),
872
+ value: product.tags?.length ? product.tags.map((tag) => /* @__PURE__ */ jsx6(
873
+ OrganizationTag,
874
+ {
875
+ label: tag.value,
876
+ to: `/settings/product-tags/${tag.id}`
877
+ },
878
+ tag.id
879
+ )) : void 0,
880
+ "data-testid": "product-tags-row"
881
+ }
882
+ ),
883
+ /* @__PURE__ */ jsx6(
884
+ SectionRow,
885
+ {
886
+ title: t("fields.type"),
887
+ value: product.type ? /* @__PURE__ */ jsx6(
888
+ OrganizationTag,
889
+ {
890
+ label: product.type.value,
891
+ to: `/settings/product-types/${product.type_id}`
892
+ }
893
+ ) : void 0,
894
+ "data-testid": "product-type-row"
895
+ }
896
+ )
897
+ ]
898
+ }
899
+ );
900
+ };
901
+ var OrganizationTag = ({ label, to }) => {
902
+ return /* @__PURE__ */ jsx6(Tooltip2, { content: label, children: /* @__PURE__ */ jsx6(Badge2, { size: "2xsmall", className: "block w-fit truncate", asChild: true, children: /* @__PURE__ */ jsx6(
903
+ Link,
904
+ {
905
+ to,
906
+ "data-testid": `organization-tag-${label.toLowerCase().replace(/\s+/g, "-")}`,
907
+ children: label
908
+ }
909
+ ) }) });
910
+ };
911
+
912
+ // src/pages/products/product-detail/components/product-variant-section/product-variant-section.tsx
913
+ import { useCallback, useMemo } from "react";
914
+ import { PencilSquare as PencilSquare4, Trash as Trash3 } from "@medusajs/icons";
915
+ import {
916
+ Badge as Badge3,
917
+ Button as Button3,
918
+ Container as Container5,
919
+ Heading as Heading5,
920
+ toast as toast4,
921
+ Tooltip as Tooltip3,
922
+ usePrompt as usePrompt3
923
+ } from "@medusajs/ui";
924
+ import { keepPreviousData } from "@tanstack/react-query";
925
+ import { createColumnHelper } from "@tanstack/react-table";
926
+ import { useTranslation as useTranslation7 } from "react-i18next";
927
+ import { Link as Link2, useNavigate as useNavigate2, useSearchParams } from "react-router-dom";
928
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
929
+ var PAGE_SIZE = 10;
930
+ var PREFIX = "pv";
931
+ var ProductVariantSection = ({
932
+ product
933
+ }) => {
934
+ const { t } = useTranslation7();
935
+ const { q, order, offset, created_at, updated_at } = useQueryParams(
936
+ ["q", "order", "offset", "created_at", "updated_at"],
937
+ PREFIX
938
+ );
939
+ const { variants, count, isLoading, isError, error } = useProductVariants(
940
+ product.id,
941
+ {
942
+ q,
943
+ order: order ? order : "variant_rank",
944
+ offset: offset ? parseInt(offset) : void 0,
945
+ limit: PAGE_SIZE,
946
+ created_at: created_at ? JSON.parse(created_at) : void 0,
947
+ updated_at: updated_at ? JSON.parse(updated_at) : void 0,
948
+ fields: "title,sku,created_at,updated_at,*options,*options.option"
949
+ },
950
+ {
951
+ placeholderData: keepPreviousData
952
+ }
953
+ );
954
+ const columns = useColumns(product);
955
+ const filters = useFilters();
956
+ const orderBy = useOrderBy();
957
+ const { table } = useDataTable({
958
+ data: variants ?? [],
959
+ columns,
960
+ count,
961
+ pageSize: PAGE_SIZE,
962
+ getRowId: (row) => row.id,
963
+ prefix: PREFIX
964
+ });
965
+ if (isError) {
966
+ throw error;
967
+ }
968
+ return /* @__PURE__ */ jsxs7(Container5, { className: "divide-y p-0", "data-testid": "product-variant-section", children: [
969
+ /* @__PURE__ */ jsxs7("div", { className: "flex items-center justify-between px-6 py-4", children: [
970
+ /* @__PURE__ */ jsx7(Heading5, { level: "h2", children: t("products.variants.header") }),
971
+ /* @__PURE__ */ jsx7(
972
+ Button3,
973
+ {
974
+ size: "small",
975
+ variant: "secondary",
976
+ asChild: true,
977
+ "data-testid": "product-variants-create-button",
978
+ children: /* @__PURE__ */ jsx7(Link2, { to: "variants/create", children: t("actions.create") })
979
+ }
980
+ )
981
+ ] }),
982
+ /* @__PURE__ */ jsx7(
983
+ _DataTable,
984
+ {
985
+ table,
986
+ columns,
987
+ count,
988
+ pageSize: PAGE_SIZE,
989
+ filters,
990
+ search: true,
991
+ pagination: true,
992
+ isLoading,
993
+ orderBy,
994
+ prefix: PREFIX,
995
+ queryObject: { q, order, created_at, updated_at },
996
+ navigateTo: (row) => `variants/${row.original.id}`,
997
+ noRecords: {
998
+ title: t("products.variants.empty.heading"),
999
+ message: t("products.variants.empty.description")
1000
+ }
1001
+ }
1002
+ )
1003
+ ] });
1004
+ };
1005
+ var columnHelper = createColumnHelper();
1006
+ var useColumns = (product) => {
1007
+ const { t } = useTranslation7();
1008
+ const navigate = useNavigate2();
1009
+ const { mutateAsync } = useDeleteVariantLazy(product.id);
1010
+ const prompt = usePrompt3();
1011
+ const [searchParams] = useSearchParams();
1012
+ const tableSearchParams = useMemo(() => {
1013
+ const filtered = new URLSearchParams();
1014
+ for (const [key, value] of searchParams.entries()) {
1015
+ if (key.startsWith(`${PREFIX}_`)) {
1016
+ filtered.append(key, value);
1017
+ }
1018
+ }
1019
+ return filtered;
1020
+ }, [searchParams]);
1021
+ const handleDelete = useCallback(
1022
+ async (id, title) => {
1023
+ const res = await prompt({
1024
+ title: t("general.areYouSure"),
1025
+ description: t("products.deleteVariantWarning", {
1026
+ title
1027
+ }),
1028
+ confirmText: t("actions.delete"),
1029
+ cancelText: t("actions.cancel")
1030
+ });
1031
+ if (!res) {
1032
+ return;
1033
+ }
1034
+ await mutateAsync(
1035
+ { variantId: id },
1036
+ {
1037
+ onError: (error) => {
1038
+ toast4.error(error.message);
1039
+ }
1040
+ }
1041
+ );
1042
+ },
1043
+ [mutateAsync, prompt, t]
1044
+ );
1045
+ const attributeColumns = useMemo(() => {
1046
+ const variantAttributes = product?.attributes?.filter((attr) => attr.is_variant_axis);
1047
+ if (!variantAttributes?.length) {
1048
+ return [];
1049
+ }
1050
+ return variantAttributes.map((attribute) => {
1051
+ return columnHelper.display({
1052
+ id: `attribute-${attribute.id}`,
1053
+ header: attribute.name,
1054
+ cell: ({ row }) => {
1055
+ const variantOpt = row.original.options?.find(
1056
+ (opt) => opt.option?.title === attribute.name
1057
+ );
1058
+ if (!variantOpt?.value) {
1059
+ return /* @__PURE__ */ jsx7("span", { className: "text-ui-fg-muted", children: "-" });
1060
+ }
1061
+ return /* @__PURE__ */ jsx7(
1062
+ "div",
1063
+ {
1064
+ className: "flex flex-wrap items-center gap-1",
1065
+ "data-testid": `product-variant-attribute-${attribute.id}-${row.original.id}`,
1066
+ children: /* @__PURE__ */ jsx7(Tooltip3, { content: variantOpt.value, children: /* @__PURE__ */ jsx7(
1067
+ Badge3,
1068
+ {
1069
+ size: "2xsmall",
1070
+ title: variantOpt.value,
1071
+ className: "inline-flex min-w-[20px] max-w-[140px] items-center justify-center overflow-hidden truncate",
1072
+ "data-testid": `product-variant-attribute-badge-${attribute.id}-${row.original.id}-${variantOpt.value}`,
1073
+ children: variantOpt.value
1074
+ }
1075
+ ) })
1076
+ }
1077
+ );
1078
+ }
1079
+ });
1080
+ });
1081
+ }, [product]);
1082
+ return useMemo(
1083
+ () => [
1084
+ columnHelper.accessor("title", {
1085
+ id: "title",
1086
+ header: t("fields.title"),
1087
+ cell: ({ getValue }) => {
1088
+ const value = getValue();
1089
+ return /* @__PURE__ */ jsxs7("div", { className: "flex h-full w-full max-w-[250px] items-center gap-x-3 overflow-hidden", children: [
1090
+ /* @__PURE__ */ jsx7("div", { className: "w-fit flex-shrink-0", children: /* @__PURE__ */ jsx7(Thumbnail, { src: product.thumbnail }) }),
1091
+ value ? /* @__PURE__ */ jsx7("span", { title: value, className: "truncate", children: value }) : /* @__PURE__ */ jsx7("span", { className: "text-ui-fg-muted", children: "-" })
1092
+ ] });
1093
+ }
1094
+ }),
1095
+ columnHelper.accessor("sku", {
1096
+ id: "sku",
1097
+ header: t("fields.sku"),
1098
+ cell: ({ getValue }) => {
1099
+ const value = getValue();
1100
+ return value ? value : /* @__PURE__ */ jsx7("span", { className: "text-ui-fg-muted", children: "-" });
1101
+ }
1102
+ }),
1103
+ ...attributeColumns,
1104
+ columnHelper.display({
1105
+ id: "actions",
1106
+ cell: ({ row }) => /* @__PURE__ */ jsx7(
1107
+ ActionMenu,
1108
+ {
1109
+ groups: [
1110
+ {
1111
+ actions: [
1112
+ {
1113
+ icon: /* @__PURE__ */ jsx7(PencilSquare4, {}),
1114
+ label: t("actions.edit"),
1115
+ onClick: () => navigate(
1116
+ `edit-variant?variant_id=${row.original.id}&${tableSearchParams.toString()}`,
1117
+ {
1118
+ state: {
1119
+ restore_params: tableSearchParams.toString()
1120
+ }
1121
+ }
1122
+ )
1123
+ }
1124
+ ]
1125
+ },
1126
+ {
1127
+ actions: [
1128
+ {
1129
+ icon: /* @__PURE__ */ jsx7(Trash3, {}),
1130
+ label: t("actions.delete"),
1131
+ onClick: () => handleDelete(row.original.id, row.original.title ?? "")
1132
+ }
1133
+ ]
1134
+ }
1135
+ ]
1136
+ }
1137
+ )
1138
+ })
1139
+ ],
1140
+ [t, attributeColumns, navigate, handleDelete, tableSearchParams, product]
1141
+ );
1142
+ };
1143
+ var useFilters = () => {
1144
+ const { t } = useTranslation7();
1145
+ return useMemo(
1146
+ () => [
1147
+ { key: "created_at", label: t("fields.createdAt"), type: "date" },
1148
+ { key: "updated_at", label: t("fields.updatedAt"), type: "date" }
1149
+ ],
1150
+ [t]
1151
+ );
1152
+ };
1153
+ var useOrderBy = () => {
1154
+ const { t } = useTranslation7();
1155
+ return useMemo(
1156
+ () => [
1157
+ { key: "title", label: t("fields.title") },
1158
+ { key: "sku", label: t("fields.sku") }
1159
+ ],
1160
+ [t]
1161
+ );
1162
+ };
1163
+
1164
+ // src/pages/products/product-detail/product-detail.tsx
1165
+ import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1166
+ var Root = ({ children }) => {
1167
+ const initialData = useLoaderData();
1168
+ const { id } = useParams();
1169
+ const {
1170
+ product: rawProduct,
1171
+ isLoading,
1172
+ isError,
1173
+ error
1174
+ } = useProduct(id, PRODUCT_DETAIL_QUERY, {
1175
+ initialData
1176
+ });
1177
+ const product = rawProduct;
1178
+ if (isLoading || !product) {
1179
+ return /* @__PURE__ */ jsx8(
1180
+ TwoColumnPageSkeleton,
1181
+ {
1182
+ mainSections: 4,
1183
+ sidebarSections: 3,
1184
+ showJSON: true,
1185
+ showMetadata: true
1186
+ }
1187
+ );
1188
+ }
1189
+ if (isError) {
1190
+ throw error;
1191
+ }
1192
+ return Children.count(children) > 0 ? /* @__PURE__ */ jsx8(
1193
+ TwoColumnPage,
1194
+ {
1195
+ data: product,
1196
+ showJSON: true,
1197
+ showMetadata: true,
1198
+ "data-testid": "product-detail-page",
1199
+ children
1200
+ }
1201
+ ) : /* @__PURE__ */ jsxs8(
1202
+ TwoColumnPage,
1203
+ {
1204
+ data: product,
1205
+ showJSON: true,
1206
+ showMetadata: true,
1207
+ "data-testid": "product-detail-page",
1208
+ children: [
1209
+ /* @__PURE__ */ jsxs8(TwoColumnPage.Main, { "data-testid": "product-detail-main", children: [
1210
+ /* @__PURE__ */ jsx8(ProductActiveRequestSection, { product }),
1211
+ /* @__PURE__ */ jsx8(ProductActiveEditSection, { product }),
1212
+ /* @__PURE__ */ jsx8(ProductGeneralSection, { product }),
1213
+ /* @__PURE__ */ jsx8(ProductMediaSection, { product }),
1214
+ /* @__PURE__ */ jsx8(ProductVariantSection, { product })
1215
+ ] }),
1216
+ /* @__PURE__ */ jsxs8(TwoColumnPage.Sidebar, { "data-testid": "product-detail-sidebar", children: [
1217
+ /* @__PURE__ */ jsx8(ProductOrganizationSection, { product }),
1218
+ /* @__PURE__ */ jsx8(ProductAttributeSection, { product })
1219
+ ] })
1220
+ ]
1221
+ }
1222
+ );
1223
+ };
1224
+ var ProductDetailPage = Object.assign(Root, {
1225
+ Main: TwoColumnPage.Main,
1226
+ Sidebar: TwoColumnPage.Sidebar,
1227
+ MainActiveRequestSection: ProductActiveRequestSection,
1228
+ MainActiveEditSection: ProductActiveEditSection,
1229
+ MainGeneralSection: ProductGeneralSection,
1230
+ MainMediaSection: ProductMediaSection,
1231
+ MainAttributeSection: ProductAttributeSection,
1232
+ MainVariantSection: ProductVariantSection,
1233
+ SidebarOrganizationSection: ProductOrganizationSection
1234
+ });
1235
+
1236
+ export {
1237
+ ProductDetailPage
1238
+ };