@mercurjs/admin 2.2.0-canary.2 → 2.2.0-canary.21

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 (356) hide show
  1. package/dist/{add-campaign-promotions-OLNTDP26.js → add-campaign-promotions-EB2MYHMZ.js} +4 -4
  2. package/dist/{adjust-inventory-CVWSBMHU.js → adjust-inventory-KNHM7QEV.js} +20 -21
  3. package/dist/{api-key-management-create-7RWOCVAO.js → api-key-management-create-7SIKAXEH.js} +4 -4
  4. package/dist/{api-key-management-detail-ZIIDMHFI.js → api-key-management-detail-ELMPBXEB.js} +26 -26
  5. package/dist/{api-key-management-edit-ACH6TJAX.js → api-key-management-edit-C4FYJZGH.js} +4 -4
  6. package/dist/{api-key-management-list-JHBBXGHH.js → api-key-management-list-FVOOICQR.js} +4 -4
  7. package/dist/{api-key-management-sales-channels-XEBTUB5V.js → api-key-management-sales-channels-JLSDZRG6.js} +8 -7
  8. package/dist/{attribute-create-2PNEX4PM.js → attribute-create-Q3IEGYRG.js} +66 -45
  9. package/dist/{attribute-detail-3QBRIF6Q.js → attribute-detail-SDYWELHS.js} +26 -24
  10. package/dist/{attribute-edit-5G7P3LP2.js → attribute-edit-4YPWXZRX.js} +3 -3
  11. package/dist/{attribute-edit-possible-value-VQ7MEFZA.js → attribute-edit-possible-value-YHEWXK6L.js} +3 -3
  12. package/dist/{attribute-list-OHU2QMUG.js → attribute-list-HW3R6764.js} +20 -21
  13. package/dist/breadcrumb-CO5DVI72.js +26 -0
  14. package/dist/breadcrumb-RYIHOYZE.js +27 -0
  15. package/dist/{campaign-budget-edit-WKSYXTBX.js → campaign-budget-edit-N2WWGO2G.js} +1 -1
  16. package/dist/{campaign-configuration-ZTK46EB5.js → campaign-configuration-MFFZXUEN.js} +1 -1
  17. package/dist/{campaign-create-VFFIIRE4.js → campaign-create-NMIOUGXQ.js} +3 -3
  18. package/dist/{campaign-detail-AZKBPDLC.js → campaign-detail-EAARQB3E.js} +23 -24
  19. package/dist/{campaign-edit-ZGLDY4X4.js → campaign-edit-PA7FGIY3.js} +1 -1
  20. package/dist/{categories-metadata-YZUP43OH.js → categories-metadata-INVMU224.js} +21 -22
  21. package/dist/{category-create-2MRYTSYM.js → category-create-AR33DJYX.js} +8 -5
  22. package/dist/{category-detail-PBGZSZRK.js → category-detail-ABK4MEZP.js} +29 -28
  23. package/dist/{category-edit-QLOS2LBA.js → category-edit-XKANIIH5.js} +3 -3
  24. package/dist/category-icon-edit-4GXAK4JZ.js +117 -0
  25. package/dist/{category-list-U7ZQBSZN.js → category-list-PFOINLTU.js} +7 -4
  26. package/dist/category-media-7SLAXXXM.js +654 -0
  27. package/dist/{category-organize-TIKTYJFZ.js → category-organize-U6UO35Y3.js} +2 -2
  28. package/dist/{category-products-4V2CKLVW.js → category-products-HTNBFHSW.js} +26 -27
  29. package/dist/{chunk-3JSAS7QP.js → chunk-22EOFXNK.js} +16 -0
  30. package/dist/{chunk-EREXPX6I.js → chunk-2KPITPB7.js} +23 -37
  31. package/dist/{chunk-BVZAGCTV.js → chunk-2L4W75VS.js} +3 -3
  32. package/dist/{chunk-26UTIAAZ.js → chunk-32URSQ4F.js} +1 -1
  33. package/dist/{chunk-CKACZXMP.js → chunk-3FN3YH2F.js} +4 -4
  34. package/dist/{chunk-5POK3PM3.js → chunk-3JN4WUVU.js} +4 -8
  35. package/dist/{chunk-EJTB2SLE.js → chunk-3LYOKDUA.js} +1 -1
  36. package/dist/{chunk-VKOE5J66.js → chunk-3XOE4NV5.js} +11 -2
  37. package/dist/{chunk-XODRTI2W.js → chunk-47TXYMFT.js} +1 -1
  38. package/dist/chunk-4FHHNYIV.js +280 -0
  39. package/dist/{chunk-Q6I2IKJB.js → chunk-4GRFDNQQ.js} +2 -2
  40. package/dist/{chunk-2LQ5SCPB.js → chunk-4O7GPTNJ.js} +19 -7
  41. package/dist/{chunk-ZHOI4QMK.js → chunk-4OEYCLBE.js} +1 -1
  42. package/dist/{chunk-HDRFPI6V.js → chunk-4UWPTSZK.js} +346 -424
  43. package/dist/{chunk-637OFDFC.js → chunk-5NQUJQXX.js} +243 -78
  44. package/dist/{chunk-IRTI3AS3.js → chunk-5T45PYWI.js} +4 -4
  45. package/dist/{chunk-GJ6WPZQG.js → chunk-67RX3M6X.js} +158 -27
  46. package/dist/{chunk-DZIXC7OE.js → chunk-6FLSBL4Q.js} +30 -85
  47. package/dist/{chunk-3EDQIZV6.js → chunk-6LG3VL3Q.js} +2 -2
  48. package/dist/{chunk-2S6VXFBZ.js → chunk-6PTZK4CH.js} +4 -4
  49. package/dist/{chunk-TITPJHIL.js → chunk-6YPV4T3R.js} +1 -1
  50. package/dist/{chunk-DKMBAZ5P.js → chunk-7IVRL4AF.js} +7 -7
  51. package/dist/{chunk-G4PROEJI.js → chunk-7ZL46D3W.js} +4 -4
  52. package/dist/{chunk-HR7TFO2X.js → chunk-A3IFGUDD.js} +3 -3
  53. package/dist/{chunk-P25PIADJ.js → chunk-AH3KBVKC.js} +1 -1
  54. package/dist/{chunk-UXD3VNBO.js → chunk-AJLGY3LQ.js} +1 -2
  55. package/dist/{chunk-CMHI2RPL.js → chunk-AKSUGT5I.js} +21 -0
  56. package/dist/{chunk-6LZAVEHW.js → chunk-ARN66CDK.js} +3 -3
  57. package/dist/{chunk-WYA62MUL.js → chunk-AROCMF45.js} +1 -1
  58. package/dist/chunk-AWLDIHXR.js +204 -0
  59. package/dist/{chunk-BHOZKBYY.js → chunk-B5OMHYJ5.js} +6 -4
  60. package/dist/chunk-BN6OOLJA.js +358 -0
  61. package/dist/{chunk-LYZT5REU.js → chunk-C4XKPQ6T.js} +14 -1
  62. package/dist/{chunk-NQBSSM5V.js → chunk-CKQPO2SN.js} +2 -2
  63. package/dist/{chunk-BGGUVHDG.js → chunk-CPWOVYZE.js} +604 -744
  64. package/dist/{chunk-54RTJBYO.js → chunk-DGCPYCHU.js} +8 -63
  65. package/dist/{chunk-HLPCO2OQ.js → chunk-EAC3J2Z4.js} +5 -5
  66. package/dist/{chunk-JQV7CXEC.js → chunk-EDDKIVMF.js} +17 -2
  67. package/dist/chunk-EG45GIE3.js +368 -0
  68. package/dist/{chunk-TP7L6M7V.js → chunk-FBD7WJPO.js} +1 -1
  69. package/dist/{chunk-K4TGNN4P.js → chunk-FCLS6CKW.js} +2 -2
  70. package/dist/{chunk-FTAR3BDS.js → chunk-FJHAAROU.js} +1 -1
  71. package/dist/chunk-FNGPOGDR.js +213 -0
  72. package/dist/{chunk-4LXBQTFN.js → chunk-FREUYHMS.js} +1 -1
  73. package/dist/{chunk-Q2QFNTNX.js → chunk-FWWPSH6V.js} +1 -1
  74. package/dist/{chunk-PXTJJQKJ.js → chunk-FYKG35MR.js} +1 -1
  75. package/dist/{chunk-BAYORQYD.js → chunk-FZHLRCBV.js} +4 -4
  76. package/dist/{chunk-AB2LHP3M.js → chunk-G66KMUI5.js} +1 -1
  77. package/dist/{chunk-GNLPUGYK.js → chunk-GHGOOZEL.js} +2 -2
  78. package/dist/{chunk-ZSFJVRRS.js → chunk-GQUGCSJV.js} +2 -2
  79. package/dist/chunk-GVEF6UDT.js +8 -0
  80. package/dist/{chunk-V6OGMYAI.js → chunk-HHW4PPNH.js} +159 -169
  81. package/dist/{chunk-GKW445WA.js → chunk-IHTQOPB6.js} +13 -187
  82. package/dist/{chunk-6MJ6ZSJF.js → chunk-IO5S4RFO.js} +6 -6
  83. package/dist/{chunk-DRJAKRTI.js → chunk-ISS4LS3E.js} +1 -1
  84. package/dist/{chunk-JQBSPUH2.js → chunk-J3AMUGGZ.js} +14 -1
  85. package/dist/{chunk-3IVTUFBM.js → chunk-JAPKOO4T.js} +1 -1
  86. package/dist/chunk-JEJQKTZO.js +191 -0
  87. package/dist/{chunk-Y2M536WR.js → chunk-JHBNG7OD.js} +17 -0
  88. package/dist/{chunk-N2LH7A4X.js → chunk-JR4T4OQU.js} +10 -10
  89. package/dist/{chunk-WKCYMDTV.js → chunk-JRLDKKCM.js} +3 -3
  90. package/dist/{chunk-XFQH5HPP.js → chunk-JZBVDH6A.js} +3 -3
  91. package/dist/{chunk-YZW5JD5A.js → chunk-KAAUSK5T.js} +119 -184
  92. package/dist/{chunk-YGRTRAWX.js → chunk-KDE4HKH2.js} +1 -0
  93. package/dist/{chunk-SRDK3XX7.js → chunk-KNB55WE4.js} +2 -2
  94. package/dist/{chunk-QABGBGAE.js → chunk-KNZ6ICKB.js} +6 -6
  95. package/dist/{chunk-H5PYBIOZ.js → chunk-KYFWVLWO.js} +1 -1
  96. package/dist/chunk-KZB7LCF2.js +82 -0
  97. package/dist/{chunk-BE6JLTMI.js → chunk-L5Z4JGRD.js} +1 -1
  98. package/dist/{chunk-CKNQJPAG.js → chunk-LEHS6RED.js} +4 -2
  99. package/dist/{chunk-FB7DDNCA.js → chunk-LHVXXHPO.js} +1 -1
  100. package/dist/{chunk-UPNMDPFX.js → chunk-LLHYICP5.js} +18 -6
  101. package/dist/{chunk-FFNSWUDC.js → chunk-LNPJFQWA.js} +11 -4
  102. package/dist/{chunk-YGAX72XV.js → chunk-LO2ZWQGL.js} +0 -2
  103. package/dist/{chunk-3P4VTL4S.js → chunk-LTAQZW2L.js} +6 -6
  104. package/dist/{chunk-S72BD7TM.js → chunk-LYCKVPWQ.js} +12 -4
  105. package/dist/{chunk-2YYXP6XI.js → chunk-M2E3PKA4.js} +196 -212
  106. package/dist/{chunk-YLKG7W4P.js → chunk-M3YII6OB.js} +73 -20
  107. package/dist/{chunk-PQI4UJ6F.js → chunk-MASXQMJY.js} +3 -3
  108. package/dist/{chunk-H5EOOXPA.js → chunk-N6R2WOJ7.js} +1 -2
  109. package/dist/{chunk-ZF3WBVOB.js → chunk-NEZ35LWM.js} +3 -3
  110. package/dist/{chunk-QIU6DJY6.js → chunk-NZOB3LPA.js} +1 -1
  111. package/dist/{chunk-S5BJ5CMF.js → chunk-OKWGPKVK.js} +1 -1
  112. package/dist/{chunk-6GWCDARX.js → chunk-ORENI3LP.js} +3 -3
  113. package/dist/{chunk-KXIA66EJ.js → chunk-PAEKCYFU.js} +7 -3
  114. package/dist/{chunk-AXTQMIIK.js → chunk-PJR6W35H.js} +8 -27
  115. package/dist/chunk-PN5C4AND.js +115 -0
  116. package/dist/{chunk-UXQAHUGZ.js → chunk-POSHDM4L.js} +1 -1
  117. package/dist/{chunk-6FIU2V6Y.js → chunk-PT3DTHQK.js} +1 -1
  118. package/dist/chunk-PZ27H46M.js +358 -0
  119. package/dist/{chunk-XZZTC7E5.js → chunk-QKJGSZI2.js} +1 -1
  120. package/dist/{chunk-N7KTSXS5.js → chunk-QPLEFEOZ.js} +1 -1
  121. package/dist/chunk-QR3GYYX6.js +0 -0
  122. package/dist/{chunk-3B6MTW5G.js → chunk-QUHSHIAC.js} +3 -0
  123. package/dist/{chunk-PRBE5CM3.js → chunk-QYDWMBEX.js} +31 -0
  124. package/dist/{chunk-BCVUMATY.js → chunk-R2UDZINP.js} +216 -40
  125. package/dist/{chunk-OSEIN4Y2.js → chunk-RDTFLHYO.js} +2 -2
  126. package/dist/{chunk-B3EEDC47.js → chunk-RMAQKNBA.js} +10 -94
  127. package/dist/{chunk-ED7XNGZD.js → chunk-RWW3TAJQ.js} +4 -4
  128. package/dist/chunk-RXRDZ47F.js +103 -0
  129. package/dist/chunk-S6A4FVM2.js +170 -0
  130. package/dist/{chunk-XQBPW3A4.js → chunk-S6E7XAWX.js} +2 -2
  131. package/dist/{chunk-CBGXKU7Z.js → chunk-SEY52XON.js} +4 -4
  132. package/dist/{chunk-U2ZFCAPX.js → chunk-SITRHMZZ.js} +11 -8
  133. package/dist/{chunk-RQPDD3RI.js → chunk-SKKF3CU6.js} +1 -1
  134. package/dist/{chunk-BGQ7H2KL.js → chunk-SMQM5N45.js} +2 -2
  135. package/dist/{chunk-BLYJZMNE.js → chunk-TLOJG7LK.js} +2 -2
  136. package/dist/chunk-UIVWOKWT.js +63 -0
  137. package/dist/chunk-UKLRBS4W.js +61 -0
  138. package/dist/{chunk-WS63IRBI.js → chunk-UUTACMA5.js} +6 -6
  139. package/dist/{chunk-BECQJZQ4.js → chunk-V3ATA433.js} +17 -8
  140. package/dist/{chunk-4KX6CBJ4.js → chunk-VSLHL2AZ.js} +2 -0
  141. package/dist/{chunk-WDH5C2NS.js → chunk-WJGABDWC.js} +1 -1
  142. package/dist/{chunk-A772RAKB.js → chunk-XGUUM3S6.js} +1 -1
  143. package/dist/{chunk-I5THQVYP.js → chunk-XIFE4VUR.js} +1 -1
  144. package/dist/chunk-XVSJKCCQ.js +142 -0
  145. package/dist/chunk-Y3RABQC4.js +33 -0
  146. package/dist/{chunk-HRGC5JHU.js → chunk-YUECTKEY.js} +107 -411
  147. package/dist/{chunk-S4SVK5DE.js → chunk-YVLANFBK.js} +29 -1
  148. package/dist/{chunk-NXLOYMWF.js → chunk-Z7AXFQPD.js} +8 -8
  149. package/dist/{chunk-OHOWEMHO.js → chunk-ZIFHQXP3.js} +31 -25
  150. package/dist/{chunk-U7AZOXPV.js → chunk-ZLETFDWJ.js} +205 -110
  151. package/dist/{collection-add-products-33MYCTBF.js → collection-add-products-CKF2VFVK.js} +25 -26
  152. package/dist/{collection-create-HUNYHKUJ.js → collection-create-UNGPKT7H.js} +86 -15
  153. package/dist/{collection-detail-ACN5GFHC.js → collection-detail-36QTD3ZU.js} +27 -26
  154. package/dist/{collection-edit-OQGYTQDO.js → collection-edit-LQEQ6YGD.js} +3 -3
  155. package/dist/collection-icon-edit-V4SNBMD5.js +117 -0
  156. package/dist/{collection-list-M4MFNMXL.js → collection-list-UN7C36DU.js} +32 -30
  157. package/dist/collection-media-ESJUYVF7.js +654 -0
  158. package/dist/{collection-metadata-47N7TUOH.js → collection-metadata-6SD67JUV.js} +21 -22
  159. package/dist/commission-rule-commission-edit-TA3H3EEN.js +196 -0
  160. package/dist/commission-rule-create-O7Z25SC7.js +412 -0
  161. package/dist/commission-rule-detail-I7LVSNAM.js +45 -0
  162. package/dist/commission-rule-edit-YSHDTYZY.js +342 -0
  163. package/dist/{product-brand-list-ZBPBSRQN.js → commissions-list-OUGVPED6.js} +12 -7
  164. package/dist/{constants-26tEckuq.d.ts → constants-Bahlh59D.d.ts} +8 -4
  165. package/dist/{customer-create-QHA4KM6N.js → customer-create-HZXLOIZH.js} +2 -2
  166. package/dist/{customer-create-address-TYWVWNUE.js → customer-create-address-AEZNVQOG.js} +2 -2
  167. package/dist/{customer-detail-D5SSLNFT.js → customer-detail-3OQ7RSDN.js} +24 -29
  168. package/dist/{customer-edit-JZ4PQTIN.js → customer-edit-MMRTWOAF.js} +2 -2
  169. package/dist/customer-edit-address-AEYX2LMP.js +302 -0
  170. package/dist/{customer-group-add-customers-VJUBEN7M.js → customer-group-add-customers-4OAYSXWK.js} +3 -3
  171. package/dist/{customer-group-create-NA2UKCF6.js → customer-group-create-25JT74S3.js} +2 -2
  172. package/dist/{customer-group-detail-KRT7E2JA.js → customer-group-detail-CH4UIK3X.js} +21 -22
  173. package/dist/{customer-group-edit-3O6HAYYN.js → customer-group-edit-AAI47MUL.js} +2 -2
  174. package/dist/{customer-group-list-KKDIESQ6.js → customer-group-list-777C2B57.js} +22 -23
  175. package/dist/{customer-group-metadata-J6JY7DZ3.js → customer-group-metadata-ELFKJMYK.js} +21 -22
  176. package/dist/{customer-list-MB6WZFMA.js → customer-list-U7VFBV7E.js} +3 -3
  177. package/dist/{customer-metadata-AH2LBK4T.js → customer-metadata-4H6ADARR.js} +21 -22
  178. package/dist/{customers-add-customer-group-AHGAPEIS.js → customers-add-customer-group-AZ3ILZMA.js} +22 -23
  179. package/dist/{edit-inventory-item-ADNLKLCN.js → edit-inventory-item-NL5WNNI3.js} +20 -21
  180. package/dist/{edit-inventory-item-attributes-XVR2WLDU.js → edit-inventory-item-attributes-2JEH72WW.js} +20 -21
  181. package/dist/{edit-reservation-HQQL42QX.js → edit-reservation-TBZL2REV.js} +3 -3
  182. package/dist/{edit-rules-YMKM5JPI.js → edit-rules-XYTK7DQ2.js} +21 -22
  183. package/dist/global-commission-edit-LCD6JJUX.js +194 -0
  184. package/dist/index.d.ts +2 -2
  185. package/dist/index.js +626 -632
  186. package/dist/{inventory-create-IVESXFSV.js → inventory-create-7RQSCNCQ.js} +24 -25
  187. package/dist/{inventory-detail-TINIAFVB.js → inventory-detail-W7BGKWKL.js} +20 -21
  188. package/dist/{inventory-list-YLIAKQXI.js → inventory-list-SCRYOBZV.js} +2 -2
  189. package/dist/{inventory-metadata-6INRH2JC.js → inventory-metadata-ZGLTDSQB.js} +21 -22
  190. package/dist/{inventory-stock-6YGTATID.js → inventory-stock-US7LGBC4.js} +204 -43
  191. package/dist/loader-S77URTQS.js +32 -0
  192. package/dist/loader-XPJWDZU3.js +32 -0
  193. package/dist/{location-create-ZMNB7YKR.js → location-create-SO2CURZL.js} +1 -1
  194. package/dist/{location-detail-EK2S7WOK.js → location-detail-GAINHCV5.js} +21 -22
  195. package/dist/{location-edit-DMBF3CYZ.js → location-edit-XA53657R.js} +1 -1
  196. package/dist/{location-fulfillment-providers-V26OWDAI.js → location-fulfillment-providers-6DFBFALS.js} +25 -26
  197. package/dist/{location-list-IV323QW2.js → location-list-QXIHD6NJ.js} +21 -22
  198. package/dist/{location-sales-channels-EYUXMTW7.js → location-sales-channels-46SPET7R.js} +7 -6
  199. package/dist/{location-service-zone-create-ZS3UWJAA.js → location-service-zone-create-IOB7DWBR.js} +1 -1
  200. package/dist/{location-service-zone-edit-MTGU2O4C.js → location-service-zone-edit-X37BNDRP.js} +1 -1
  201. package/dist/{location-service-zone-manage-areas-S7QZTIFT.js → location-service-zone-manage-areas-CWWABV5M.js} +1 -1
  202. package/dist/{location-service-zone-shipping-option-create-36JZFRGY.js → location-service-zone-shipping-option-create-AUNZVIGU.js} +24 -25
  203. package/dist/{location-service-zone-shipping-option-edit-3PGSNKYT.js → location-service-zone-shipping-option-edit-WRSLBO23.js} +4 -4
  204. package/dist/{location-service-zone-shipping-option-pricing-JLGCOZGS.js → location-service-zone-shipping-option-pricing-FZNCTVT6.js} +8 -8
  205. package/dist/{login-6L3RMREO.js → login-NFPUZDAL.js} +19 -20
  206. package/dist/{manage-locations-CFTM6DNH.js → manage-locations-WW35SVOX.js} +1 -1
  207. package/dist/{marketplace-add-currencies-6ANNBGZM.js → marketplace-add-currencies-YVJA6G6V.js} +1 -1
  208. package/dist/{marketplace-detail-BAU2MEJT.js → marketplace-detail-M7DWNMIH.js} +21 -22
  209. package/dist/{marketplace-edit-6Q3G2OY5.js → marketplace-edit-QNFCTDUC.js} +1 -1
  210. package/dist/{marketplace-metadata-KRCGKOCA.js → marketplace-metadata-FYJ7TJLZ.js} +22 -23
  211. package/dist/offer-detail-page-2DG3W7VG.js +572 -0
  212. package/dist/offer-variant-detail-page-U4LDYFE3.js +143 -0
  213. package/dist/{offers-J2SFSNF3.js → offers-PYM6LQSX.js} +287 -124
  214. package/dist/{order-create-claim-RMDDCUZ6.js → order-create-claim-2MO3LM6J.js} +271 -246
  215. package/dist/{order-create-edit-PQ54JFZZ.js → order-create-edit-UFD26FE2.js} +206 -111
  216. package/dist/{order-create-exchange-T6DBVS75.js → order-create-exchange-4PWNGE6U.js} +279 -252
  217. package/dist/{order-create-refund-OW3MIXBY.js → order-create-refund-A4AXOFZC.js} +24 -25
  218. package/dist/{order-create-return-YCX6C3VP.js → order-create-return-Y7QS52UL.js} +46 -19
  219. package/dist/{order-detail-2OAEGBQG.js → order-detail-HPYAUA2N.js} +30 -32
  220. package/dist/{order-edit-billing-address-VGZBQHF5.js → order-edit-billing-address-R7DOKCV5.js} +22 -23
  221. package/dist/{order-edit-email-OOCXVRET.js → order-edit-email-44O3ARQ4.js} +21 -22
  222. package/dist/{order-edit-shipping-address-B4F3E5RE.js → order-edit-shipping-address-UI2AHBXW.js} +21 -22
  223. package/dist/{order-list-ERQWQ6UI.js → order-list-IVXCYRGB.js} +9 -9
  224. package/dist/{order-metadata-AN6MPHHT.js → order-metadata-3U5KT3MW.js} +21 -22
  225. package/dist/{order-request-transfer-A2NJSQ4H.js → order-request-transfer-OM3BPIWZ.js} +21 -22
  226. package/dist/pages/index.d.ts +159 -340
  227. package/dist/pages/index.js +191 -194
  228. package/dist/{price-list-configuration-XAHXLCXR.js → price-list-configuration-6LD6DTEQ.js} +8 -7
  229. package/dist/{price-list-create-XCP32SJZ.js → price-list-create-SR24HYH3.js} +32 -33
  230. package/dist/{price-list-detail-26RLU4G3.js → price-list-detail-QIMJQ6DD.js} +26 -27
  231. package/dist/{price-list-edit-ZVLD4M5T.js → price-list-edit-MEM47NGY.js} +4 -4
  232. package/dist/{price-list-list-ER4TOZTY.js → price-list-list-GIVZGIYW.js} +5 -5
  233. package/dist/{price-list-prices-add-H4E2IVBC.js → price-list-prices-add-VE5RTT5O.js} +29 -30
  234. package/dist/{price-list-prices-edit-WHCIGSB2.js → price-list-prices-edit-R52K4MBL.js} +22 -23
  235. package/dist/{product-add-existing-attributes-MSJD3GOP.js → product-add-existing-attributes-AC4643LI.js} +66 -30
  236. package/dist/{product-attributes-MHRXZK5S.js → product-attributes-2LAKXXX6.js} +3 -3
  237. package/dist/{product-bulk-edit-J6ZP7GGM.js → product-bulk-edit-G7QTYQHG.js} +6 -8
  238. package/dist/{product-create-WOCQFTMZ.js → product-create-R5HJ2GYT.js} +32 -33
  239. package/dist/{product-create-attribute-ZT3VZDNZ.js → product-create-attribute-ELMLVRUB.js} +75 -47
  240. package/dist/product-create-variant-FQSREC66.js +20 -0
  241. package/dist/{product-detail-AOMYROBE.js → product-detail-77DV4TAW.js} +26 -26
  242. package/dist/{product-edit-EKAZRIJ6.js → product-edit-3Q5E5E5L.js} +3 -5
  243. package/dist/product-edit-attribute-WW4LCYD7.js +175 -0
  244. package/dist/{product-list-J7RDCTOW.js → product-list-4JGMM4AF.js} +26 -27
  245. package/dist/{product-media-KREKRDOC.js → product-media-OL4ETNFW.js} +9 -8
  246. package/dist/{product-metadata-O3BAEUYB.js → product-metadata-H53ZIWBS.js} +22 -23
  247. package/dist/{product-organization-SBQY44IF.js → product-organization-ILQCXL7B.js} +5 -48
  248. package/dist/{product-sales-channels-TFOGXCMI.js → product-sales-channels-7QCAABL4.js} +7 -6
  249. package/dist/{product-shipping-profile-E4HJ4EYW.js → product-shipping-profile-4K7LTJ5K.js} +3 -3
  250. package/dist/{product-tag-create-7JBM6I3V.js → product-tag-create-4OT4PMCG.js} +20 -21
  251. package/dist/{product-tag-detail-FCVZLJ7N.js → product-tag-detail-NVTDW7BR.js} +43 -42
  252. package/dist/{product-tag-edit-O2ADFDD6.js → product-tag-edit-RXF6ZZ6E.js} +20 -21
  253. package/dist/{product-tag-list-N44OW4BR.js → product-tag-list-T6BDTH24.js} +43 -42
  254. package/dist/{product-tag-metadata-SBOUTUXY.js → product-tag-metadata-HN5QRCYY.js} +21 -22
  255. package/dist/{product-type-create-RHG4KEAV.js → product-type-create-A7SUR2OX.js} +1 -1
  256. package/dist/{product-type-detail-II4RYMUP.js → product-type-detail-KOGHJIMG.js} +27 -28
  257. package/dist/{product-type-edit-CABB7R7Y.js → product-type-edit-DM4U2VB4.js} +1 -1
  258. package/dist/{product-type-metadata-KN5OXR6J.js → product-type-metadata-QUCMB3ZJ.js} +23 -24
  259. package/dist/{product-variant-detail-H2YRFDAU.js → product-variant-detail-6XBLXEXQ.js} +24 -34
  260. package/dist/{product-variant-edit-3HKWOCHQ.js → product-variant-edit-3KAFS4OC.js} +171 -262
  261. package/dist/{product-variant-metadata-QESZ7VS2.js → product-variant-metadata-N5H2VPGQ.js} +21 -22
  262. package/dist/{profile-edit-HQTWYWZ7.js → profile-edit-H5QZ66PF.js} +1 -1
  263. package/dist/{promotion-add-campaign-O3RTMS3W.js → promotion-add-campaign-V3RJ634F.js} +4 -4
  264. package/dist/{promotion-create-TGC6BVWF.js → promotion-create-Y2XVWGAT.js} +25 -26
  265. package/dist/{promotion-detail-VYIXZMMD.js → promotion-detail-SCS7MWD7.js} +22 -23
  266. package/dist/{promotion-edit-details-TKRC5HES.js → promotion-edit-details-NWOBD3YD.js} +1 -1
  267. package/dist/{promotion-list-C3SKV5BJ.js → promotion-list-ZFF4E4ZW.js} +4 -4
  268. package/dist/{refund-reason-create-2KEQFOID.js → refund-reason-create-CIXYHBRC.js} +20 -21
  269. package/dist/{refund-reason-edit-E7CB7SM3.js → refund-reason-edit-AXMEDPRT.js} +20 -21
  270. package/dist/{refund-reason-list-CB2FZPDK.js → refund-reason-list-F56TJAGR.js} +38 -37
  271. package/dist/{region-add-countries-COXN4LP3.js → region-add-countries-5I2UDAJU.js} +1 -1
  272. package/dist/{region-create-P66Q65XY.js → region-create-SIB6WZPV.js} +1 -1
  273. package/dist/{region-edit-XFE54SAO.js → region-edit-YQZCZIX3.js} +1 -1
  274. package/dist/region-list-2XXKCDDX.js +1 -1
  275. package/dist/{region-metadata-723RQGHS.js → region-metadata-QGH7IBQU.js} +24 -25
  276. package/dist/{reservation-create-Y3HG4AZA.js → reservation-create-F6YDCLCG.js} +3 -3
  277. package/dist/{reservation-detail-HQMADZ56.js → reservation-detail-7TL2OFEM.js} +20 -21
  278. package/dist/{reservation-list-YKC3JJ6K.js → reservation-list-RGD6O4RY.js} +3 -3
  279. package/dist/{reservation-metadata-UG4YTEMY.js → reservation-metadata-UXACXYO6.js} +21 -22
  280. package/dist/{reset-password-2VNU52CE.js → reset-password-Y7HXY2NX.js} +1 -1
  281. package/dist/{return-reason-create-KED7446I.js → return-reason-create-G7ON7U3A.js} +1 -1
  282. package/dist/{return-reason-edit-57EU3XSE.js → return-reason-edit-77RVRFF6.js} +1 -1
  283. package/dist/{return-reason-list-47DFQ3NX.js → return-reason-list-EJ5DLDR2.js} +21 -19
  284. package/dist/{sales-channel-add-products-KKU2AR5R.js → sales-channel-add-products-7ERGMGJ7.js} +25 -26
  285. package/dist/{sales-channel-create-BSNCLZWR.js → sales-channel-create-TAKKGGK3.js} +3 -3
  286. package/dist/{sales-channel-detail-5WPD5VKT.js → sales-channel-detail-LWVBJCJQ.js} +25 -26
  287. package/dist/{sales-channel-edit-FUDXMZYV.js → sales-channel-edit-HEESIKZH.js} +3 -3
  288. package/dist/{sales-channel-list-GYLGH4U7.js → sales-channel-list-I72W2XTH.js} +24 -24
  289. package/dist/{sales-channel-metadata-H6RSHKVP.js → sales-channel-metadata-RD6QDHRW.js} +21 -22
  290. package/dist/{shipping-option-type-create-QAOW7753.js → shipping-option-type-create-LXYYXNSQ.js} +20 -21
  291. package/dist/{shipping-option-type-detail-QGWVDTDU.js → shipping-option-type-detail-2IQSQ5BQ.js} +21 -22
  292. package/dist/{shipping-option-type-edit-WXYBDRNY.js → shipping-option-type-edit-4XKXWCN3.js} +20 -21
  293. package/dist/{shipping-option-type-list-YSWP6DSC.js → shipping-option-type-list-QA2TA7XQ.js} +21 -22
  294. package/dist/{shipping-profile-create-UJNCCKKK.js → shipping-profile-create-JYRXTOBF.js} +1 -1
  295. package/dist/{shipping-profile-metadata-UE53IA3J.js → shipping-profile-metadata-PVNYV7DY.js} +22 -23
  296. package/dist/{store-address-edit-PKIBRFH4.js → store-address-edit-SWLACMPC.js} +1 -1
  297. package/dist/{store-bulk-edit-6SQX7OV2.js → store-bulk-edit-JAOT5GY2.js} +3 -3
  298. package/dist/{store-closure-edit-OK7MTUHY.js → store-closure-edit-Y3FOCDRX.js} +1 -1
  299. package/dist/{store-create-WNFRHXWR.js → store-create-F6W5CSH2.js} +24 -25
  300. package/dist/{store-details-RS3SPTXC.js → store-details-CSHIHCVO.js} +33 -48
  301. package/dist/{store-edit-34CPYPM3.js → store-edit-YEWQFHHM.js} +8 -8
  302. package/dist/{store-list-Q5X3JB3R.js → store-list-FGLLHZPD.js} +28 -29
  303. package/dist/{store-member-invite-7PAPHDOK.js → store-member-invite-MNRTPHUB.js} +2 -2
  304. package/dist/{store-payment-details-edit-HOGHZMZC.js → store-payment-details-edit-DF2WURRI.js} +1 -1
  305. package/dist/{store-professional-details-edit-DPJ4ZFDR.js → store-professional-details-edit-FPOLORSE.js} +1 -1
  306. package/dist/{tax-region-create-3KVECMFN.js → tax-region-create-YQ5YBOC3.js} +21 -22
  307. package/dist/{tax-region-detail-AOT4X4DZ.js → tax-region-detail-EU5U3SFN.js} +24 -25
  308. package/dist/{tax-region-edit-5T7VHKIA.js → tax-region-edit-XHO3ELVD.js} +20 -21
  309. package/dist/{tax-region-metadata-RSZCJGJT.js → tax-region-metadata-NYTCYO6D.js} +21 -22
  310. package/dist/{tax-region-province-create-OVLIZPNP.js → tax-region-province-create-SEPY4OAZ.js} +1 -1
  311. package/dist/{tax-region-province-detail-XEMIX5SQ.js → tax-region-province-detail-U4RULBEK.js} +23 -24
  312. package/dist/{tax-region-tax-override-create-KPFXMSPH.js → tax-region-tax-override-create-5MIAKHY6.js} +46 -47
  313. package/dist/{tax-region-tax-override-edit-RMMHCFXN.js → tax-region-tax-override-edit-EHLIO56A.js} +48 -49
  314. package/dist/{tax-region-tax-rate-create-KDN6G52Y.js → tax-region-tax-rate-create-ZITIAU3K.js} +1 -1
  315. package/dist/{tax-region-tax-rate-edit-D4BFDDJ7.js → tax-region-tax-rate-edit-RQLUPHD4.js} +1 -1
  316. package/dist/{user-detail-W7DGVXDZ.js → user-detail-6CCQQPFR.js} +1 -1
  317. package/dist/{user-edit-MXS2DV37.js → user-edit-DVIMNODF.js} +1 -1
  318. package/dist/{user-invite-HLZJ7FST.js → user-invite-NJZWT4M5.js} +1 -1
  319. package/dist/{user-metadata-3AFZX3DM.js → user-metadata-VCWUSKHV.js} +21 -22
  320. package/package.json +2 -2
  321. package/dist/[id]-YI7UXOO2.js +0 -499
  322. package/dist/chunk-AKTAFKIU.js +0 -228
  323. package/dist/chunk-ALATTLBM.js +0 -390
  324. package/dist/chunk-IEPNHH7Z.js +0 -170
  325. package/dist/chunk-J65IXAGI.js +0 -292
  326. package/dist/chunk-QSGR43JM.js +0 -30
  327. package/dist/chunk-RQ4NMLSS.js +0 -8
  328. package/dist/chunk-RXM4B6HR.js +0 -8
  329. package/dist/chunk-SWL7ZCP3.js +0 -11
  330. package/dist/chunk-TIMU6K63.js +0 -207
  331. package/dist/chunk-TTERSO37.js +0 -652
  332. package/dist/chunk-U7XILJH6.js +0 -423
  333. package/dist/chunk-UM7ZR3VU.js +0 -14
  334. package/dist/chunk-V5XHY5LP.js +0 -39
  335. package/dist/chunk-WV4SQ57G.js +0 -141
  336. package/dist/chunk-ZZ3XFIEM.js +0 -84
  337. package/dist/commission-rate-create-DCMGZS3D.js +0 -783
  338. package/dist/commission-rate-detail-LAZZLZVX.js +0 -86
  339. package/dist/commission-rate-edit-VL4TUE3M.js +0 -768
  340. package/dist/commission-rate-list-Y5XLEO67.js +0 -26
  341. package/dist/loader-6KDBTRVR.js +0 -26
  342. package/dist/order-allocate-items-DJ2V4B7A.js +0 -563
  343. package/dist/order-create-fulfillment-SMSUJSBN.js +0 -644
  344. package/dist/order-create-shipment-5ZAWH5CZ.js +0 -215
  345. package/dist/order-receive-return-DZ4IUOHY.js +0 -563
  346. package/dist/product-brand-create-B3ZJGHUQ.js +0 -171
  347. package/dist/product-brand-detail-QBWHNBYM.js +0 -100
  348. package/dist/product-brand-edit-3TQDHZNN.js +0 -179
  349. package/dist/product-brand-metadata-EAMW6PQJ.js +0 -87
  350. package/dist/product-create-option-NIAP75EE.js +0 -130
  351. package/dist/product-create-variant-QODC7MZ7.js +0 -60
  352. package/dist/product-edit-option-OZUZGMIM.js +0 -166
  353. package/dist/product-prices-R5JOHVGS.js +0 -267
  354. package/dist/product-stock-EIP2XJUR.js +0 -545
  355. package/dist/product-variant-manage-inventory-items-Q5MJG3EJ.js +0 -337
  356. package/dist/{chunk-WVKVPGJW.js → chunk-FNKBJCNF.js} +3 -3
@@ -1,13 +1,18 @@
1
+ import {
2
+ ProductMediaSection
3
+ } from "./chunk-AWLDIHXR.js";
1
4
  import {
2
5
  SectionRow
3
6
  } from "./chunk-3XPXUIK3.js";
4
7
  import {
5
- useDataTableDateColumns,
8
+ useDataTableDateColumns
9
+ } from "./chunk-UKLRBS4W.js";
10
+ import {
6
11
  useDataTableDateFilters
7
- } from "./chunk-54RTJBYO.js";
12
+ } from "./chunk-DGCPYCHU.js";
8
13
  import {
9
14
  PRODUCT_DETAIL_QUERY
10
- } from "./chunk-RQ4NMLSS.js";
15
+ } from "./chunk-GVEF6UDT.js";
11
16
  import {
12
17
  TwoColumnPage
13
18
  } from "./chunk-E74OUNA3.js";
@@ -16,22 +21,26 @@ import {
16
21
  } from "./chunk-WIYFXWRI.js";
17
22
  import {
18
23
  DataTable
19
- } from "./chunk-LYZT5REU.js";
20
- import {
21
- require_dist
22
- } from "./chunk-DZIXC7OE.js";
24
+ } from "./chunk-C4XKPQ6T.js";
23
25
  import {
24
26
  useQueryParams
25
27
  } from "./chunk-THHRRYRS.js";
28
+ import {
29
+ require_dist
30
+ } from "./chunk-6FLSBL4Q.js";
26
31
  import {
27
32
  useProductTag
28
- } from "./chunk-AXTQMIIK.js";
33
+ } from "./chunk-PJR6W35H.js";
34
+ import {
35
+ productAttributesQueryKeys,
36
+ useProductAttribute
37
+ } from "./chunk-533GMKEG.js";
29
38
  import {
30
39
  useProductType
31
40
  } from "./chunk-46M463BR.js";
32
41
  import {
33
42
  useCollection
34
- } from "./chunk-XZZTC7E5.js";
43
+ } from "./chunk-QKJGSZI2.js";
35
44
  import {
36
45
  useSeller
37
46
  } from "./chunk-LEG67A2R.js";
@@ -40,10 +49,7 @@ import {
40
49
  } from "./chunk-BDGZ4EQO.js";
41
50
  import {
42
51
  useProductCategory
43
- } from "./chunk-H5PYBIOZ.js";
44
- import {
45
- PRODUCT_VARIANT_IDS_KEY
46
- } from "./chunk-YGAX72XV.js";
52
+ } from "./chunk-KYFWVLWO.js";
47
53
  import {
48
54
  TwoColumnPageSkeleton
49
55
  } from "./chunk-INNFZYX2.js";
@@ -59,8 +65,8 @@ import {
59
65
  useRejectProduct,
60
66
  useRemoveAttributeFromProduct,
61
67
  useRequestProductChanges,
62
- useUpdateProduct
63
- } from "./chunk-2YYXP6XI.js";
68
+ variantsQueryKeys
69
+ } from "./chunk-M2E3PKA4.js";
64
70
  import {
65
71
  sdk
66
72
  } from "./chunk-ZBWL72TB.js";
@@ -86,7 +92,7 @@ import {
86
92
  isReferenceField,
87
93
  partitionProductChangeActions
88
94
  } from "@mercurjs/dashboard-shared";
89
- import { useQuery } from "@tanstack/react-query";
95
+ import { useQueries } from "@tanstack/react-query";
90
96
  import { useTranslation as useTranslation2 } from "react-i18next";
91
97
 
92
98
  // src/components/common/confirm-prompt/confirm-prompt.tsx
@@ -170,6 +176,7 @@ var ConfirmPrompt = ({
170
176
 
171
177
  // src/pages/products/product-detail/components/product-active-edit-section/product-active-edit-section.tsx
172
178
  import { Fragment as Fragment2, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
179
+ var VARIANT_LOOKUP_FIELDS = "id,title,sku,*images";
173
180
  var ImageStrip = ({
174
181
  images,
175
182
  faded
@@ -180,14 +187,6 @@ var ImageStrip = ({
180
187
  children: images.map((image, idx) => /* @__PURE__ */ jsx2(Thumbnail, { src: image.url, size: "base" }, `${image.url}-${idx}`))
181
188
  }
182
189
  );
183
- var BrandName = ({ id }) => {
184
- const { data } = useQuery({
185
- queryKey: ["product_brand", id],
186
- queryFn: () => sdk.admin.productBrands.$id.query({ $id: id }),
187
- enabled: !!id
188
- });
189
- return /* @__PURE__ */ jsx2(Fragment2, { children: data?.product_brand?.name ?? id });
190
- };
191
190
  var TypeName = ({ id }) => {
192
191
  const { product_type } = useProductType(id);
193
192
  return /* @__PURE__ */ jsx2(Fragment2, { children: product_type?.value ?? id });
@@ -209,8 +208,6 @@ var ReferenceName = ({
209
208
  id
210
209
  }) => {
211
210
  switch (field) {
212
- case "brand_id":
213
- return /* @__PURE__ */ jsx2(BrandName, { id });
214
211
  case "type_id":
215
212
  return /* @__PURE__ */ jsx2(TypeName, { id });
216
213
  case "collection_id":
@@ -313,13 +310,121 @@ var FieldRow = ({ diff }) => {
313
310
  )
314
311
  ] });
315
312
  };
316
- var ActionLine = ({ action }) => {
313
+ var AttributeActionLine = ({
314
+ attributeId,
315
+ valueIds
316
+ }) => {
317
+ const { product_attribute } = useProductAttribute(attributeId);
318
+ const name = product_attribute?.name ?? attributeId;
319
+ const values = product_attribute?.values ?? [];
320
+ const selectedNames = valueIds && valueIds.length ? valueIds.map((id) => {
321
+ const match = values.find((v) => v.id === id);
322
+ return match?.name ?? id;
323
+ }) : [];
324
+ return /* @__PURE__ */ jsxs2(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: [
325
+ /* @__PURE__ */ jsx2("span", { className: "font-medium text-ui-fg-base", children: name }),
326
+ selectedNames.length > 0 && `: ${selectedNames.join(", ")}`
327
+ ] });
328
+ };
329
+ var VariantActionLine = ({
330
+ title,
331
+ images
332
+ }) => /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
333
+ images && images.length > 0 && /* @__PURE__ */ jsx2(ImageStrip, { images }),
334
+ /* @__PURE__ */ jsx2(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: /* @__PURE__ */ jsx2("span", { className: "font-medium text-ui-fg-base", children: title }) })
335
+ ] });
336
+ var ActionLine = ({
337
+ action,
338
+ variantsById
339
+ }) => {
317
340
  const { t } = useTranslation2();
341
+ const details = action.details ?? {};
342
+ if (action.action === import_types.ProductChangeActionType.ATTRIBUTE_ADD || action.action === import_types.ProductChangeActionType.ATTRIBUTE_REMOVE) {
343
+ if (!details.attribute_id) return null;
344
+ return /* @__PURE__ */ jsx2(
345
+ AttributeActionLine,
346
+ {
347
+ attributeId: details.attribute_id,
348
+ valueIds: action.action === import_types.ProductChangeActionType.ATTRIBUTE_ADD ? details.attribute_value_ids : void 0
349
+ }
350
+ );
351
+ }
352
+ const variantFallback = t("fields.variant", { defaultValue: "Variant" });
353
+ if (action.action === import_types.ProductChangeActionType.VARIANT_ADD) {
354
+ const title = details.variant?.title || details.variant?.sku || variantFallback;
355
+ return /* @__PURE__ */ jsx2(VariantActionLine, { title });
356
+ }
357
+ if (action.action === import_types.ProductChangeActionType.VARIANT_REMOVE) {
358
+ const variantId = details.variant_id ?? "";
359
+ const found = variantId ? variantsById.get(variantId) : void 0;
360
+ const title = found?.title || found?.sku || variantId || variantFallback;
361
+ const images = isImageList(found?.images) ? found?.images : void 0;
362
+ return /* @__PURE__ */ jsx2(VariantActionLine, { title, images });
363
+ }
318
364
  const label = describeProductChangeAction(action, {
319
- variant: t("fields.variant", { defaultValue: "Variant" })
365
+ variant: variantFallback
320
366
  });
321
367
  return /* @__PURE__ */ jsx2(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: label });
322
368
  };
369
+ var VariantUpdateBlock = ({
370
+ variantId,
371
+ diffs,
372
+ variantsById
373
+ }) => {
374
+ const { t } = useTranslation2();
375
+ const found = variantsById.get(variantId);
376
+ const variantFallback = t("fields.variant", { defaultValue: "Variant" });
377
+ const title = found?.title || found?.sku || variantId || variantFallback;
378
+ const sku = found?.sku && title !== found.sku ? found.sku : void 0;
379
+ const images = isImageList(found?.images) ? found?.images : void 0;
380
+ return /* @__PURE__ */ jsxs2(Fragment2, { children: [
381
+ /* @__PURE__ */ jsxs2(
382
+ "div",
383
+ {
384
+ className: "flex items-start gap-4 px-6 py-4",
385
+ "data-testid": `product-active-edit-variant-${variantId}`,
386
+ children: [
387
+ /* @__PURE__ */ jsx2(
388
+ Text,
389
+ {
390
+ size: "small",
391
+ weight: "plus",
392
+ leading: "compact",
393
+ className: "text-ui-fg-subtle w-[160px] shrink-0",
394
+ children: variantFallback
395
+ }
396
+ ),
397
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-1 items-center gap-2", children: [
398
+ images && images.length > 0 && /* @__PURE__ */ jsx2(ImageStrip, { images }),
399
+ /* @__PURE__ */ jsx2(
400
+ Text,
401
+ {
402
+ size: "small",
403
+ leading: "compact",
404
+ className: "text-ui-fg-base font-medium",
405
+ children: title
406
+ }
407
+ ),
408
+ sku && /* @__PURE__ */ jsx2(Text, { size: "small", leading: "compact", className: "text-ui-fg-subtle", children: `\xB7 ${sku}` })
409
+ ] })
410
+ ]
411
+ }
412
+ ),
413
+ diffs.length > 0 && /* @__PURE__ */ jsxs2("div", { className: "flex items-start gap-4 px-6 py-4", children: [
414
+ /* @__PURE__ */ jsx2(
415
+ Text,
416
+ {
417
+ size: "small",
418
+ weight: "plus",
419
+ leading: "compact",
420
+ className: "text-ui-fg-subtle w-[160px] shrink-0",
421
+ children: t("labels.updated")
422
+ }
423
+ ),
424
+ /* @__PURE__ */ jsx2("div", { className: "flex flex-1 flex-col gap-y-4", children: diffs.map((diff, idx) => /* @__PURE__ */ jsx2(FieldRow, { diff }, `${variantId}-${diff.field}-${idx}`)) })
425
+ ] })
426
+ ] });
427
+ };
323
428
  var ProductActiveEditSection = ({
324
429
  product
325
430
  }) => {
@@ -339,13 +444,80 @@ var ProductActiveEditSection = ({
339
444
  () => partitionProductChangeActions(product_change?.actions ?? []),
340
445
  [product_change]
341
446
  );
447
+ const productUpdated = useMemo(
448
+ () => updated.filter((d) => !d.variant_id),
449
+ [updated]
450
+ );
451
+ const variantsUpdated = useMemo(() => {
452
+ const groups = /* @__PURE__ */ new Map();
453
+ for (const diff of updated) {
454
+ if (!diff.variant_id) continue;
455
+ const bucket = groups.get(diff.variant_id) ?? [];
456
+ bucket.push(diff);
457
+ groups.set(diff.variant_id, bucket);
458
+ }
459
+ return groups;
460
+ }, [updated]);
461
+ const attributeIds = useMemo(() => {
462
+ const ids = /* @__PURE__ */ new Set();
463
+ for (const action of [...added, ...removed]) {
464
+ if (action.action === import_types.ProductChangeActionType.ATTRIBUTE_ADD || action.action === import_types.ProductChangeActionType.ATTRIBUTE_REMOVE) {
465
+ const details = action.details ?? {};
466
+ if (details.attribute_id) ids.add(details.attribute_id);
467
+ }
468
+ }
469
+ return Array.from(ids);
470
+ }, [added, removed]);
471
+ const attributeQueries = useQueries({
472
+ queries: attributeIds.map((id) => ({
473
+ queryKey: productAttributesQueryKeys.detail(id),
474
+ queryFn: () => sdk.admin.productAttributes.$id.query({ $id: id })
475
+ }))
476
+ });
477
+ const isLoadingAttributes = attributeQueries.some((q) => q.isPending);
478
+ const variantIds = useMemo(() => {
479
+ const ids = /* @__PURE__ */ new Set();
480
+ for (const action of removed) {
481
+ if (action.action === import_types.ProductChangeActionType.VARIANT_REMOVE) {
482
+ const details = action.details ?? {};
483
+ if (details.variant_id) ids.add(details.variant_id);
484
+ }
485
+ }
486
+ for (const diff of updated) {
487
+ if (diff.variant_id) ids.add(diff.variant_id);
488
+ }
489
+ return Array.from(ids);
490
+ }, [removed, updated]);
491
+ const variantQueryInput = { fields: VARIANT_LOOKUP_FIELDS };
492
+ const variantQueries = useQueries({
493
+ queries: variantIds.map((variantId) => ({
494
+ queryKey: variantsQueryKeys.detail(variantId, variantQueryInput),
495
+ queryFn: () => sdk.admin.products.$id.variants.$variantId.query({
496
+ $id: product.id,
497
+ $variantId: variantId,
498
+ ...variantQueryInput
499
+ })
500
+ }))
501
+ });
502
+ const isLoadingVariants = variantQueries.some((q) => q.isPending);
503
+ const variantsById = useMemo(() => {
504
+ const map = /* @__PURE__ */ new Map();
505
+ for (const query of variantQueries) {
506
+ const variant = query.data?.variant;
507
+ if (variant?.id) map.set(variant.id, variant);
508
+ }
509
+ return map;
510
+ }, [variantQueries]);
342
511
  if (isError || !product_change) {
343
512
  return null;
344
513
  }
345
514
  if (product_change.status !== import_types.ProductChangeStatus.PENDING) {
346
515
  return null;
347
516
  }
348
- const hasContent = updated.length > 0 || added.length > 0 || removed.length > 0 || deleteRequested;
517
+ if (isLoadingAttributes || isLoadingVariants) {
518
+ return null;
519
+ }
520
+ const hasContent = productUpdated.length > 0 || variantsUpdated.size > 0 || added.length > 0 || removed.length > 0 || deleteRequested;
349
521
  const handleConfirm = async (note) => {
350
522
  try {
351
523
  await confirmChange({ internal_note: note });
@@ -378,7 +550,7 @@ var ProductActiveEditSection = ({
378
550
  store: requesterSeller?.name ?? t("products.request.fallbackStore")
379
551
  }) }) }),
380
552
  hasContent && /* @__PURE__ */ jsxs2(Fragment2, { children: [
381
- updated.length > 0 && /* @__PURE__ */ jsxs2("div", { className: "flex items-start gap-4 px-6 py-4", children: [
553
+ productUpdated.length > 0 && /* @__PURE__ */ jsxs2("div", { className: "flex items-start gap-4 px-6 py-4", children: [
382
554
  /* @__PURE__ */ jsx2(
383
555
  Text,
384
556
  {
@@ -389,8 +561,17 @@ var ProductActiveEditSection = ({
389
561
  children: t("labels.updated")
390
562
  }
391
563
  ),
392
- /* @__PURE__ */ jsx2("div", { className: "flex flex-1 flex-col gap-y-4", children: updated.map((diff, idx) => /* @__PURE__ */ jsx2(FieldRow, { diff }, `${diff.field}-${idx}`)) })
564
+ /* @__PURE__ */ jsx2("div", { className: "flex flex-1 flex-col gap-y-4", children: productUpdated.map((diff, idx) => /* @__PURE__ */ jsx2(FieldRow, { diff }, `${diff.field}-${idx}`)) })
393
565
  ] }),
566
+ variantsUpdated.size > 0 && Array.from(variantsUpdated.entries()).map(([variantId, diffs]) => /* @__PURE__ */ jsx2(
567
+ VariantUpdateBlock,
568
+ {
569
+ variantId,
570
+ diffs,
571
+ variantsById
572
+ },
573
+ variantId
574
+ )),
394
575
  added.length > 0 && /* @__PURE__ */ jsxs2("div", { className: "flex items-start gap-4 px-6 py-4", children: [
395
576
  /* @__PURE__ */ jsx2(
396
577
  Text,
@@ -402,7 +583,14 @@ var ProductActiveEditSection = ({
402
583
  children: t("labels.added")
403
584
  }
404
585
  ),
405
- /* @__PURE__ */ jsx2("div", { className: "flex flex-1 flex-col gap-y-2", children: added.map((action) => /* @__PURE__ */ jsx2(ActionLine, { action }, action.id)) })
586
+ /* @__PURE__ */ jsx2("div", { className: "flex flex-1 flex-col gap-y-2", children: added.map((action) => /* @__PURE__ */ jsx2(
587
+ ActionLine,
588
+ {
589
+ action,
590
+ variantsById
591
+ },
592
+ action.id
593
+ )) })
406
594
  ] }),
407
595
  removed.length > 0 && /* @__PURE__ */ jsxs2("div", { className: "flex items-start gap-4 px-6 py-4", children: [
408
596
  /* @__PURE__ */ jsx2(
@@ -415,7 +603,14 @@ var ProductActiveEditSection = ({
415
603
  children: t("labels.removed")
416
604
  }
417
605
  ),
418
- /* @__PURE__ */ jsx2("div", { className: "flex flex-1 flex-col gap-y-2", children: removed.map((action) => /* @__PURE__ */ jsx2(ActionLine, { action }, action.id)) })
606
+ /* @__PURE__ */ jsx2("div", { className: "flex flex-1 flex-col gap-y-2", children: removed.map((action) => /* @__PURE__ */ jsx2(
607
+ ActionLine,
608
+ {
609
+ action,
610
+ variantsById
611
+ },
612
+ action.id
613
+ )) })
419
614
  ] }),
420
615
  deleteRequested && /* @__PURE__ */ jsxs2("div", { className: "flex items-start gap-4 px-6 py-4", children: [
421
616
  /* @__PURE__ */ jsx2(
@@ -666,7 +861,8 @@ import {
666
861
  Trash,
667
862
  Swatch,
668
863
  DropCap,
669
- InformationCircleSolid
864
+ InformationCircleSolid,
865
+ PencilSquare
670
866
  } from "@medusajs/icons";
671
867
  import {
672
868
  Badge,
@@ -708,12 +904,23 @@ var AttributeActions = ({
708
904
  ActionMenu,
709
905
  {
710
906
  groups: [
907
+ {
908
+ actions: [
909
+ {
910
+ label: t("actions.edit"),
911
+ to: `attributes/${attribute.id}/edit`,
912
+ icon: /* @__PURE__ */ jsx4(PencilSquare, {})
913
+ }
914
+ ]
915
+ },
711
916
  {
712
917
  actions: [
713
918
  {
714
919
  label: t("actions.delete"),
715
920
  onClick: handleDelete,
716
- icon: /* @__PURE__ */ jsx4(Trash, {})
921
+ icon: /* @__PURE__ */ jsx4(Trash, {}),
922
+ disabled: attribute.is_required,
923
+ disabledTooltip: attribute.is_required ? t("products.attributeRequiredDeleteDisabledTooltip") : void 0
717
924
  }
718
925
  ]
719
926
  }
@@ -841,7 +1048,7 @@ var ProductAttributeSection = ({
841
1048
  };
842
1049
 
843
1050
  // src/pages/products/product-detail/components/product-general-section/product-general-section.tsx
844
- import { PencilSquare, Trash as Trash2 } from "@medusajs/icons";
1051
+ import { PencilSquare as PencilSquare2, Trash as Trash2 } from "@medusajs/icons";
845
1052
  import { Container as Container4, Heading as Heading4, StatusBadge, usePrompt as usePrompt2 } from "@medusajs/ui";
846
1053
  import { useTranslation as useTranslation5 } from "react-i18next";
847
1054
  import { useNavigate } from "react-router-dom";
@@ -854,8 +1061,6 @@ var productStatusColor = (status) => {
854
1061
  return "orange";
855
1062
  case "published":
856
1063
  return "green";
857
- case "requires_action":
858
- return "blue";
859
1064
  case "rejected":
860
1065
  return "red";
861
1066
  default:
@@ -918,7 +1123,7 @@ var ProductGeneralSection = ({
918
1123
  {
919
1124
  label: t("actions.edit"),
920
1125
  to: "edit",
921
- icon: /* @__PURE__ */ jsx5(PencilSquare, {})
1126
+ icon: /* @__PURE__ */ jsx5(PencilSquare2, {})
922
1127
  }
923
1128
  ]
924
1129
  },
@@ -976,210 +1181,30 @@ var ProductGeneralSection = ({
976
1181
  ] });
977
1182
  };
978
1183
 
979
- // src/pages/products/product-detail/components/product-media-section/product-media-section.tsx
980
- import { PencilSquare as PencilSquare2, ThumbnailBadge } from "@medusajs/icons";
981
- import {
982
- Button as Button3,
983
- Checkbox,
984
- CommandBar,
985
- Container as Container5,
986
- Heading as Heading5,
987
- Text as Text4,
988
- Tooltip as Tooltip2,
989
- clx,
990
- usePrompt as usePrompt3
991
- } from "@medusajs/ui";
992
- import { useState as useState4 } from "react";
1184
+ // src/pages/products/product-detail/components/product-organization-section/product-organization-section.tsx
1185
+ import { PencilSquare as PencilSquare3 } from "@medusajs/icons";
1186
+ import { Badge as Badge2, Container as Container5, Heading as Heading5, Tooltip as Tooltip2 } from "@medusajs/ui";
993
1187
  import { useTranslation as useTranslation6 } from "react-i18next";
994
1188
  import { Link } from "react-router-dom";
995
1189
  import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
996
- var ProductMediaSection = ({
997
- product
998
- }) => {
999
- const { t } = useTranslation6();
1000
- const prompt = usePrompt3();
1001
- const [selection, setSelection] = useState4({});
1002
- const media = getMedia(product);
1003
- const handleCheckedChange = (id) => {
1004
- setSelection((prev) => {
1005
- if (prev[id]) {
1006
- const { [id]: _, ...rest } = prev;
1007
- return rest;
1008
- } else {
1009
- return { ...prev, [id]: true };
1010
- }
1011
- });
1012
- };
1013
- const { mutateAsync } = useUpdateProduct(product.id);
1014
- const handleDelete = async () => {
1015
- const ids = Object.keys(selection);
1016
- const includingThumbnail = ids.some(
1017
- (id) => media.find((m) => m.id === id)?.isThumbnail
1018
- );
1019
- const res = await prompt({
1020
- title: t("general.areYouSure"),
1021
- description: includingThumbnail ? t("products.media.deleteWarningWithThumbnail", {
1022
- count: ids.length
1023
- }) : t("products.media.deleteWarning", {
1024
- count: ids.length
1025
- }),
1026
- confirmText: t("actions.delete"),
1027
- cancelText: t("actions.cancel")
1028
- });
1029
- if (!res) {
1030
- return;
1031
- }
1032
- const mediaToKeep = product.images?.filter((i) => !ids.includes(i.id)).map((i) => ({ url: i.url }));
1033
- await mutateAsync(
1034
- {
1035
- images: mediaToKeep,
1036
- thumbnail: includingThumbnail ? "" : void 0
1037
- },
1038
- {
1039
- onSuccess: () => {
1040
- setSelection({});
1041
- }
1042
- }
1043
- );
1044
- };
1045
- return /* @__PURE__ */ jsxs6(Container5, { className: "divide-y p-0", "data-testid": "product-media-section", children: [
1046
- /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-between px-6 py-4", "data-testid": "product-media-header", children: [
1047
- /* @__PURE__ */ jsx6(Heading5, { level: "h2", "data-testid": "product-media-title", children: t("products.media.label") }),
1048
- /* @__PURE__ */ jsx6(
1049
- ActionMenu,
1050
- {
1051
- groups: [
1052
- {
1053
- actions: [
1054
- {
1055
- label: t("actions.edit"),
1056
- to: "media?view=edit",
1057
- icon: /* @__PURE__ */ jsx6(PencilSquare2, {})
1058
- }
1059
- ]
1060
- }
1061
- ],
1062
- "data-testid": "product-media-action-menu"
1063
- }
1064
- )
1065
- ] }),
1066
- media.length > 0 ? /* @__PURE__ */ jsx6("div", { className: "grid grid-cols-[repeat(auto-fill,minmax(96px,1fr))] gap-4 px-6 py-4", "data-testid": "product-media-grid", children: media.map((i, index) => {
1067
- const isSelected = selection[i.id];
1068
- return /* @__PURE__ */ jsxs6(
1069
- "div",
1070
- {
1071
- className: "shadow-elevation-card-rest hover:shadow-elevation-card-hover transition-fg group relative aspect-square size-full cursor-pointer overflow-hidden rounded-[8px]",
1072
- "data-testid": `product-media-item-${i.id}`,
1073
- children: [
1074
- /* @__PURE__ */ jsx6(
1075
- "div",
1076
- {
1077
- className: clx(
1078
- "transition-fg invisible absolute right-2 top-2 opacity-0 group-hover:visible group-hover:opacity-100",
1079
- {
1080
- "visible opacity-100": isSelected
1081
- }
1082
- ),
1083
- "data-testid": `product-media-checkbox-container-${i.id}`,
1084
- children: /* @__PURE__ */ jsx6(
1085
- Checkbox,
1086
- {
1087
- checked: selection[i.id] || false,
1088
- onCheckedChange: () => handleCheckedChange(i.id),
1089
- "data-testid": `product-media-checkbox-${i.id}`
1090
- }
1091
- )
1092
- }
1093
- ),
1094
- i.isThumbnail && /* @__PURE__ */ jsx6("div", { className: "absolute left-2 top-2", "data-testid": `product-media-thumbnail-badge-${i.id}`, children: /* @__PURE__ */ jsx6(Tooltip2, { content: t("fields.thumbnail"), children: /* @__PURE__ */ jsx6(ThumbnailBadge, {}) }) }),
1095
- /* @__PURE__ */ jsx6(Link, { to: `media`, state: { curr: index }, "data-testid": `product-media-link-${i.id}`, children: /* @__PURE__ */ jsx6(
1096
- "img",
1097
- {
1098
- src: i.url,
1099
- alt: product.title,
1100
- className: "size-full object-cover",
1101
- "data-testid": `product-media-image-${i.id}`
1102
- }
1103
- ) })
1104
- ]
1105
- },
1106
- i.id
1107
- );
1108
- }) }) : /* @__PURE__ */ jsxs6("div", { className: "flex flex-col items-center gap-y-4 pb-8 pt-6", "data-testid": "product-media-empty-state", children: [
1109
- /* @__PURE__ */ jsxs6("div", { className: "flex flex-col items-center", children: [
1110
- /* @__PURE__ */ jsx6(
1111
- Text4,
1112
- {
1113
- size: "small",
1114
- leading: "compact",
1115
- weight: "plus",
1116
- className: "text-ui-fg-subtle",
1117
- "data-testid": "product-media-empty-state-header",
1118
- children: t("products.media.emptyState.header")
1119
- }
1120
- ),
1121
- /* @__PURE__ */ jsx6(Text4, { size: "small", className: "text-ui-fg-muted", "data-testid": "product-media-empty-state-description", children: t("products.media.emptyState.description") })
1122
- ] }),
1123
- /* @__PURE__ */ jsx6(Button3, { size: "small", variant: "secondary", asChild: true, "data-testid": "product-media-empty-state-button", children: /* @__PURE__ */ jsx6(Link, { to: "media?view=edit", "data-testid": "product-media-empty-state-link", children: t("products.media.emptyState.action") }) })
1124
- ] }),
1125
- /* @__PURE__ */ jsx6(CommandBar, { open: !!Object.keys(selection).length, "data-testid": "product-media-command-bar", children: /* @__PURE__ */ jsxs6(CommandBar.Bar, { "data-testid": "product-media-command-bar-bar", children: [
1126
- /* @__PURE__ */ jsx6(CommandBar.Value, { "data-testid": "product-media-command-bar-value", children: t("general.countSelected", {
1127
- count: Object.keys(selection).length
1128
- }) }),
1129
- /* @__PURE__ */ jsx6(CommandBar.Seperator, { "data-testid": "product-media-command-bar-separator" }),
1130
- /* @__PURE__ */ jsx6(
1131
- CommandBar.Command,
1132
- {
1133
- action: handleDelete,
1134
- label: t("actions.delete"),
1135
- shortcut: "d",
1136
- "data-testid": "product-media-command-bar-delete"
1137
- }
1138
- )
1139
- ] }) })
1140
- ] });
1141
- };
1142
- var getMedia = (product) => {
1143
- const { images = [], thumbnail } = product;
1144
- const media = images.map((image) => ({
1145
- id: image.id,
1146
- url: image.url,
1147
- isThumbnail: image.url === thumbnail
1148
- }));
1149
- if (thumbnail && !media.some((mediaItem) => mediaItem.url === thumbnail)) {
1150
- media.unshift({
1151
- id: "img_thumbnail",
1152
- url: thumbnail,
1153
- isThumbnail: true
1154
- });
1155
- }
1156
- return media;
1157
- };
1158
-
1159
- // src/pages/products/product-detail/components/product-organization-section/product-organization-section.tsx
1160
- import { PencilSquare as PencilSquare3 } from "@medusajs/icons";
1161
- import { Badge as Badge2, Container as Container6, Heading as Heading6, Tooltip as Tooltip3 } from "@medusajs/ui";
1162
- import { useTranslation as useTranslation7 } from "react-i18next";
1163
- import { Link as Link2 } from "react-router-dom";
1164
- import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
1165
1190
  var ProductOrganizationSection = ({
1166
1191
  product
1167
1192
  }) => {
1168
- const { t } = useTranslation7();
1169
- return /* @__PURE__ */ jsxs7(
1170
- Container6,
1193
+ const { t } = useTranslation6();
1194
+ return /* @__PURE__ */ jsxs6(
1195
+ Container5,
1171
1196
  {
1172
1197
  className: "divide-y p-0",
1173
1198
  "data-testid": "product-organization-section",
1174
1199
  children: [
1175
- /* @__PURE__ */ jsxs7(
1200
+ /* @__PURE__ */ jsxs6(
1176
1201
  "div",
1177
1202
  {
1178
1203
  className: "flex items-center justify-between px-6 py-4",
1179
1204
  "data-testid": "product-organization-header",
1180
1205
  children: [
1181
- /* @__PURE__ */ jsx7(Heading6, { level: "h2", "data-testid": "product-organization-title", children: t("products.organization.header") }),
1182
- /* @__PURE__ */ jsx7(
1206
+ /* @__PURE__ */ jsx6(Heading5, { level: "h2", "data-testid": "product-organization-title", children: t("products.organization.header") }),
1207
+ /* @__PURE__ */ jsx6(
1183
1208
  ActionMenu,
1184
1209
  {
1185
1210
  groups: [
@@ -1188,7 +1213,7 @@ var ProductOrganizationSection = ({
1188
1213
  {
1189
1214
  label: t("actions.edit"),
1190
1215
  to: "organization",
1191
- icon: /* @__PURE__ */ jsx7(PencilSquare3, {})
1216
+ icon: /* @__PURE__ */ jsx6(PencilSquare3, {})
1192
1217
  }
1193
1218
  ]
1194
1219
  }
@@ -1199,11 +1224,11 @@ var ProductOrganizationSection = ({
1199
1224
  ]
1200
1225
  }
1201
1226
  ),
1202
- /* @__PURE__ */ jsx7(
1227
+ /* @__PURE__ */ jsx6(
1203
1228
  SectionRow,
1204
1229
  {
1205
1230
  title: t("fields.tags"),
1206
- value: product.tags?.length ? product.tags.map((tag) => /* @__PURE__ */ jsx7(
1231
+ value: product.tags?.length ? product.tags.map((tag) => /* @__PURE__ */ jsx6(
1207
1232
  OrganizationTag,
1208
1233
  {
1209
1234
  label: tag.value,
@@ -1214,11 +1239,11 @@ var ProductOrganizationSection = ({
1214
1239
  "data-testid": "product-tags-row"
1215
1240
  }
1216
1241
  ),
1217
- /* @__PURE__ */ jsx7(
1242
+ /* @__PURE__ */ jsx6(
1218
1243
  SectionRow,
1219
1244
  {
1220
1245
  title: t("fields.type"),
1221
- value: product.type ? /* @__PURE__ */ jsx7(
1246
+ value: product.type ? /* @__PURE__ */ jsx6(
1222
1247
  OrganizationTag,
1223
1248
  {
1224
1249
  label: product.type.value,
@@ -1228,25 +1253,11 @@ var ProductOrganizationSection = ({
1228
1253
  "data-testid": "product-type-row"
1229
1254
  }
1230
1255
  ),
1231
- /* @__PURE__ */ jsx7(
1232
- SectionRow,
1233
- {
1234
- title: t("fields.brand"),
1235
- value: product.brand ? /* @__PURE__ */ jsx7(
1236
- OrganizationTag,
1237
- {
1238
- label: product.brand.name,
1239
- to: `/settings/product-brands/${product.brand.id}`
1240
- }
1241
- ) : void 0,
1242
- "data-testid": "product-brand-row"
1243
- }
1244
- ),
1245
- /* @__PURE__ */ jsx7(
1256
+ /* @__PURE__ */ jsx6(
1246
1257
  SectionRow,
1247
1258
  {
1248
1259
  title: t("fields.collection"),
1249
- value: product.collection ? /* @__PURE__ */ jsx7(
1260
+ value: product.collection ? /* @__PURE__ */ jsx6(
1250
1261
  OrganizationTag,
1251
1262
  {
1252
1263
  label: product.collection.title,
@@ -1256,11 +1267,11 @@ var ProductOrganizationSection = ({
1256
1267
  "data-testid": "product-collection-row"
1257
1268
  }
1258
1269
  ),
1259
- /* @__PURE__ */ jsx7(
1270
+ /* @__PURE__ */ jsx6(
1260
1271
  SectionRow,
1261
1272
  {
1262
1273
  title: t("fields.categories"),
1263
- value: product.categories?.length ? product.categories.map((pcat) => /* @__PURE__ */ jsx7(
1274
+ value: product.categories?.length ? product.categories.map((pcat) => /* @__PURE__ */ jsx6(
1264
1275
  OrganizationTag,
1265
1276
  {
1266
1277
  label: pcat.name,
@@ -1276,8 +1287,8 @@ var ProductOrganizationSection = ({
1276
1287
  );
1277
1288
  };
1278
1289
  var OrganizationTag = ({ label, to }) => {
1279
- return /* @__PURE__ */ jsx7(Tooltip3, { content: label, children: /* @__PURE__ */ jsx7(Badge2, { size: "2xsmall", className: "block w-fit truncate", asChild: true, children: /* @__PURE__ */ jsx7(
1280
- Link2,
1290
+ return /* @__PURE__ */ jsx6(Tooltip2, { content: label, children: /* @__PURE__ */ jsx6(Badge2, { size: "2xsmall", className: "block w-fit truncate", asChild: true, children: /* @__PURE__ */ jsx6(
1291
+ Link,
1281
1292
  {
1282
1293
  to,
1283
1294
  "data-testid": `organization-tag-${label.toLowerCase().replace(/\s+/g, "-")}`,
@@ -1288,32 +1299,32 @@ var OrganizationTag = ({ label, to }) => {
1288
1299
 
1289
1300
  // src/pages/products/product-detail/components/product-variant-section/product-variant-section.tsx
1290
1301
  import { useCallback, useMemo as useMemo2 } from "react";
1291
- import { Buildings, Component, PencilSquare as PencilSquare4, Trash as Trash3 } from "@medusajs/icons";
1302
+ import { PencilSquare as PencilSquare4, Trash as Trash3 } from "@medusajs/icons";
1292
1303
  import {
1293
1304
  Badge as Badge3,
1294
- Container as Container7,
1305
+ Button as Button3,
1306
+ Container as Container6,
1295
1307
  createDataTableColumnHelper,
1296
- createDataTableCommandHelper,
1297
- Tooltip as Tooltip4,
1298
- usePrompt as usePrompt4
1308
+ Heading as Heading6,
1309
+ Tooltip as Tooltip3,
1310
+ usePrompt as usePrompt3
1299
1311
  } from "@medusajs/ui";
1300
1312
  import { keepPreviousData } from "@tanstack/react-query";
1301
- import { useTranslation as useTranslation8 } from "react-i18next";
1302
- import { useNavigate as useNavigate2, useSearchParams } from "react-router-dom";
1303
- import { jsx as jsx8 } from "react/jsx-runtime";
1313
+ import { useTranslation as useTranslation7 } from "react-i18next";
1314
+ import { Link as Link2, useNavigate as useNavigate2, useSearchParams } from "react-router-dom";
1315
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
1304
1316
  var PAGE_SIZE = 10;
1305
1317
  var PREFIX = "pv";
1306
1318
  var ProductVariantSection = ({
1307
1319
  product
1308
1320
  }) => {
1309
- const { t } = useTranslation8();
1321
+ const { t } = useTranslation7();
1310
1322
  const { q, order, offset, created_at, updated_at } = useQueryParams(
1311
1323
  ["q", "order", "offset", "created_at", "updated_at"],
1312
1324
  PREFIX
1313
1325
  );
1314
1326
  const columns = useColumns(product);
1315
1327
  const filters = useFilters();
1316
- const commands = useCommands();
1317
1328
  const { variants, count, isPending, isError, error } = useProductVariants(
1318
1329
  product.id,
1319
1330
  {
@@ -1323,7 +1334,7 @@ var ProductVariantSection = ({
1323
1334
  limit: PAGE_SIZE,
1324
1335
  created_at: created_at ? JSON.parse(created_at) : void 0,
1325
1336
  updated_at: updated_at ? JSON.parse(updated_at) : void 0,
1326
- fields: "title,created_at,updated_at,*attribute_values,*attribute_values.attribute"
1337
+ fields: "title,sku,created_at,updated_at,*options,*options.option"
1327
1338
  },
1328
1339
  {
1329
1340
  placeholderData: keepPreviousData
@@ -1332,62 +1343,52 @@ var ProductVariantSection = ({
1332
1343
  if (isError) {
1333
1344
  throw error;
1334
1345
  }
1335
- return /* @__PURE__ */ jsx8(Container7, { className: "divide-y p-0", "data-testid": "product-variant-section", children: /* @__PURE__ */ jsx8("div", { "data-testid": "product-variants-table-container", children: /* @__PURE__ */ jsx8(
1336
- DataTable,
1337
- {
1338
- data: variants,
1339
- columns,
1340
- filters,
1341
- rowCount: count,
1342
- getRowId: (row) => row.id,
1343
- rowHref: (row) => `/products/${product.id}/variants/${row.id}`,
1344
- pageSize: PAGE_SIZE,
1345
- isLoading: isPending,
1346
- heading: t("products.variants.header"),
1347
- emptyState: {
1348
- empty: {
1349
- heading: t("products.variants.empty.heading"),
1350
- description: t("products.variants.empty.description")
1351
- },
1352
- filtered: {
1353
- heading: t("products.variants.filtered.heading"),
1354
- description: t("products.variants.filtered.description")
1346
+ return /* @__PURE__ */ jsxs7(Container6, { className: "p-0", "data-testid": "product-variant-section", children: [
1347
+ /* @__PURE__ */ jsxs7("div", { className: "flex items-center justify-between px-6 py-4", children: [
1348
+ /* @__PURE__ */ jsx7(Heading6, { level: "h2", children: t("products.variants.header") }),
1349
+ /* @__PURE__ */ jsx7(
1350
+ Button3,
1351
+ {
1352
+ size: "small",
1353
+ variant: "secondary",
1354
+ asChild: true,
1355
+ "data-testid": "product-variants-create-button",
1356
+ children: /* @__PURE__ */ jsx7(Link2, { to: "variants/create", children: t("actions.create") })
1355
1357
  }
1356
- },
1357
- action: {
1358
- label: t("actions.create"),
1359
- to: `variants/create`
1360
- },
1361
- actionMenu: {
1362
- groups: [
1363
- {
1364
- actions: [
1365
- {
1366
- label: t("products.editPrices"),
1367
- to: `prices`,
1368
- icon: /* @__PURE__ */ jsx8(PencilSquare4, {})
1369
- },
1370
- {
1371
- label: t("inventory.stock.action"),
1372
- to: `stock`,
1373
- icon: /* @__PURE__ */ jsx8(Buildings, {})
1374
- }
1375
- ]
1358
+ )
1359
+ ] }),
1360
+ /* @__PURE__ */ jsx7("div", { "data-testid": "product-variants-table-container", children: /* @__PURE__ */ jsx7(
1361
+ DataTable,
1362
+ {
1363
+ data: variants,
1364
+ columns,
1365
+ filters,
1366
+ rowCount: count,
1367
+ getRowId: (row) => row.id,
1368
+ rowHref: (row) => `/products/${product.id}/variants/${row.id}`,
1369
+ pageSize: PAGE_SIZE,
1370
+ isLoading: isPending,
1371
+ emptyState: {
1372
+ empty: {
1373
+ heading: t("products.variants.empty.heading"),
1374
+ description: t("products.variants.empty.description")
1375
+ },
1376
+ filtered: {
1377
+ heading: t("products.variants.filtered.heading"),
1378
+ description: t("products.variants.filtered.description")
1376
1379
  }
1377
- ],
1378
- "data-testid": "product-variant-section-action-menu"
1379
- },
1380
- commands,
1381
- prefix: PREFIX
1382
- }
1383
- ) }) });
1380
+ },
1381
+ prefix: PREFIX
1382
+ }
1383
+ ) })
1384
+ ] });
1384
1385
  };
1385
1386
  var columnHelper = createDataTableColumnHelper();
1386
1387
  var useColumns = (product) => {
1387
- const { t } = useTranslation8();
1388
+ const { t } = useTranslation7();
1388
1389
  const navigate = useNavigate2();
1389
1390
  const { mutateAsync } = useDeleteVariantLazy(product.id);
1390
- const prompt = usePrompt4();
1391
+ const prompt = usePrompt3();
1391
1392
  const [searchParams] = useSearchParams();
1392
1393
  const tableSearchParams = useMemo2(() => {
1393
1394
  const filtered = new URLSearchParams();
@@ -1416,44 +1417,8 @@ var useColumns = (product) => {
1416
1417
  },
1417
1418
  [mutateAsync, prompt, t]
1418
1419
  );
1419
- const optionColumns = useMemo2(() => {
1420
- if (!product?.options) {
1421
- return [];
1422
- }
1423
- return product.options.map((option) => {
1424
- return columnHelper.display({
1425
- id: option.id,
1426
- header: option.title,
1427
- cell: ({ row }) => {
1428
- const variantOpt = row.original.options?.find(
1429
- (opt) => opt.option_id === option.id
1430
- );
1431
- if (!variantOpt) {
1432
- return /* @__PURE__ */ jsx8("span", { className: "text-ui-fg-muted", children: "-" });
1433
- }
1434
- return /* @__PURE__ */ jsx8(
1435
- "div",
1436
- {
1437
- className: "flex items-center",
1438
- "data-testid": `product-variant-option-${option.id}-${row.original.id}`,
1439
- children: /* @__PURE__ */ jsx8(Tooltip4, { content: variantOpt.value, children: /* @__PURE__ */ jsx8(
1440
- Badge3,
1441
- {
1442
- size: "2xsmall",
1443
- title: variantOpt.value,
1444
- className: "inline-flex min-w-[20px] max-w-[140px] items-center justify-center overflow-hidden truncate",
1445
- "data-testid": `product-variant-option-badge-${option.id}-${row.original.id}-${variantOpt.value}`,
1446
- children: variantOpt.value
1447
- }
1448
- ) })
1449
- }
1450
- );
1451
- }
1452
- });
1453
- });
1454
- }, [product]);
1455
1420
  const attributeColumns = useMemo2(() => {
1456
- const variantAttributes = product?.variant_attributes?.filter((attr) => attr.is_variant_axis);
1421
+ const variantAttributes = product?.attributes?.filter((attr) => attr.is_variant_axis);
1457
1422
  if (!variantAttributes?.length) {
1458
1423
  return [];
1459
1424
  }
@@ -1462,28 +1427,27 @@ var useColumns = (product) => {
1462
1427
  id: `attribute-${attribute.id}`,
1463
1428
  header: attribute.name,
1464
1429
  cell: ({ row }) => {
1465
- const variant = row.original;
1466
- const matches = variant.attribute_values?.filter(
1467
- (v) => v.attribute?.id === attribute.id
1468
- ) ?? [];
1469
- if (!matches.length) {
1470
- return /* @__PURE__ */ jsx8("span", { className: "text-ui-fg-muted", children: "-" });
1430
+ const variantOpt = row.original.options?.find(
1431
+ (opt) => opt.option?.title === attribute.name
1432
+ );
1433
+ if (!variantOpt?.value) {
1434
+ return /* @__PURE__ */ jsx7("span", { className: "text-ui-fg-muted", children: "-" });
1471
1435
  }
1472
- return /* @__PURE__ */ jsx8(
1436
+ return /* @__PURE__ */ jsx7(
1473
1437
  "div",
1474
1438
  {
1475
1439
  className: "flex flex-wrap items-center gap-1",
1476
1440
  "data-testid": `product-variant-attribute-${attribute.id}-${row.original.id}`,
1477
- children: matches.map((value) => /* @__PURE__ */ jsx8(Tooltip4, { content: value.name, children: /* @__PURE__ */ jsx8(
1441
+ children: /* @__PURE__ */ jsx7(Tooltip3, { content: variantOpt.value, children: /* @__PURE__ */ jsx7(
1478
1442
  Badge3,
1479
1443
  {
1480
1444
  size: "2xsmall",
1481
- title: value.name,
1445
+ title: variantOpt.value,
1482
1446
  className: "inline-flex min-w-[20px] max-w-[140px] items-center justify-center overflow-hidden truncate",
1483
- "data-testid": `product-variant-attribute-badge-${attribute.id}-${row.original.id}-${value.name}`,
1484
- children: value.name
1447
+ "data-testid": `product-variant-attribute-badge-${attribute.id}-${row.original.id}-${variantOpt.value}`,
1448
+ children: variantOpt.value
1485
1449
  }
1486
- ) }, value.id))
1450
+ ) })
1487
1451
  }
1488
1452
  );
1489
1453
  }
@@ -1495,7 +1459,7 @@ var useColumns = (product) => {
1495
1459
  const variant = ctx.row.original;
1496
1460
  const mainActions = [
1497
1461
  {
1498
- icon: /* @__PURE__ */ jsx8(PencilSquare4, {}),
1462
+ icon: /* @__PURE__ */ jsx7(PencilSquare4, {}),
1499
1463
  label: t("actions.edit"),
1500
1464
  onClick: (row) => {
1501
1465
  navigate(
@@ -1511,43 +1475,11 @@ var useColumns = (product) => {
1511
1475
  ];
1512
1476
  const secondaryActions = [
1513
1477
  {
1514
- icon: /* @__PURE__ */ jsx8(Trash3, {}),
1478
+ icon: /* @__PURE__ */ jsx7(Trash3, {}),
1515
1479
  label: t("actions.delete"),
1516
1480
  onClick: () => handleDelete(variant.id, variant.title)
1517
1481
  }
1518
1482
  ];
1519
- const inventoryItemsCount = variant.inventory_items?.length || 0;
1520
- switch (inventoryItemsCount) {
1521
- case 0:
1522
- break;
1523
- case 1: {
1524
- const inventoryItemLink = `/inventory/${variant.inventory_items[0].inventory.id}`;
1525
- mainActions.push({
1526
- label: t("products.variant.inventory.actions.inventoryItems"),
1527
- onClick: () => {
1528
- navigate(inventoryItemLink);
1529
- },
1530
- icon: /* @__PURE__ */ jsx8(Buildings, {})
1531
- });
1532
- break;
1533
- }
1534
- default: {
1535
- const ids = variant.inventory_items?.map((i) => i.inventory?.id);
1536
- if (!ids || ids.length === 0) {
1537
- break;
1538
- }
1539
- const inventoryKitLink = `/inventory?${new URLSearchParams({
1540
- id: ids.join(",")
1541
- }).toString()}`;
1542
- mainActions.push({
1543
- label: t("products.variant.inventory.actions.inventoryKit"),
1544
- onClick: () => {
1545
- navigate(inventoryKitLink);
1546
- },
1547
- icon: /* @__PURE__ */ jsx8(Component, {})
1548
- });
1549
- }
1550
- }
1551
1483
  return [mainActions, secondaryActions];
1552
1484
  },
1553
1485
  [handleDelete, navigate, t, tableSearchParams]
@@ -1560,14 +1492,20 @@ var useColumns = (product) => {
1560
1492
  sortAscLabel: t("filters.sorting.alphabeticallyAsc"),
1561
1493
  sortDescLabel: t("filters.sorting.alphabeticallyDesc")
1562
1494
  }),
1563
- ...optionColumns,
1495
+ columnHelper.accessor("sku", {
1496
+ header: t("fields.sku"),
1497
+ cell: ({ getValue }) => {
1498
+ const value = getValue();
1499
+ return value ? value : /* @__PURE__ */ jsx7("span", { className: "text-ui-fg-muted", children: "-" });
1500
+ }
1501
+ }),
1564
1502
  ...attributeColumns,
1565
1503
  ...dateColumns,
1566
1504
  columnHelper.action({
1567
1505
  actions: getActions
1568
1506
  })
1569
1507
  ];
1570
- }, [t, optionColumns, attributeColumns, dateColumns, getActions]);
1508
+ }, [t, attributeColumns, dateColumns, getActions]);
1571
1509
  };
1572
1510
  var useFilters = () => {
1573
1511
  const dateFilters = useDataTableDateFilters();
@@ -1577,25 +1515,9 @@ var useFilters = () => {
1577
1515
  ];
1578
1516
  }, [dateFilters]);
1579
1517
  };
1580
- var commandHelper = createDataTableCommandHelper();
1581
- var useCommands = () => {
1582
- const { t } = useTranslation8();
1583
- const navigate = useNavigate2();
1584
- return [
1585
- commandHelper.command({
1586
- label: t("inventory.stock.action"),
1587
- shortcut: "i",
1588
- action: async (selection) => {
1589
- navigate(
1590
- `stock?${PRODUCT_VARIANT_IDS_KEY}=${Object.keys(selection).join(",")}`
1591
- );
1592
- }
1593
- })
1594
- ];
1595
- };
1596
1518
 
1597
1519
  // src/pages/products/product-detail/product-detail.tsx
1598
- import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
1520
+ import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1599
1521
  var Root = ({ children }) => {
1600
1522
  const initialData = useLoaderData();
1601
1523
  const { id } = useParams();
@@ -1609,7 +1531,7 @@ var Root = ({ children }) => {
1609
1531
  });
1610
1532
  const product = rawProduct;
1611
1533
  if (isLoading || !product) {
1612
- return /* @__PURE__ */ jsx9(
1534
+ return /* @__PURE__ */ jsx8(
1613
1535
  TwoColumnPageSkeleton,
1614
1536
  {
1615
1537
  mainSections: 4,
@@ -1622,7 +1544,7 @@ var Root = ({ children }) => {
1622
1544
  if (isError) {
1623
1545
  throw error;
1624
1546
  }
1625
- return Children.count(children) > 0 ? /* @__PURE__ */ jsx9(
1547
+ return Children.count(children) > 0 ? /* @__PURE__ */ jsx8(
1626
1548
  TwoColumnPage,
1627
1549
  {
1628
1550
  data: product,
@@ -1640,15 +1562,15 @@ var Root = ({ children }) => {
1640
1562
  "data-testid": "product-detail-page",
1641
1563
  children: [
1642
1564
  /* @__PURE__ */ jsxs8(TwoColumnPage.Main, { "data-testid": "product-detail-main", children: [
1643
- /* @__PURE__ */ jsx9(ProductActiveRequestSection, { product }),
1644
- /* @__PURE__ */ jsx9(ProductActiveEditSection, { product }),
1645
- /* @__PURE__ */ jsx9(ProductGeneralSection, { product }),
1646
- /* @__PURE__ */ jsx9(ProductMediaSection, { product }),
1647
- /* @__PURE__ */ jsx9(ProductVariantSection, { product })
1565
+ /* @__PURE__ */ jsx8(ProductActiveRequestSection, { product }),
1566
+ /* @__PURE__ */ jsx8(ProductActiveEditSection, { product }),
1567
+ /* @__PURE__ */ jsx8(ProductGeneralSection, { product }),
1568
+ /* @__PURE__ */ jsx8(ProductMediaSection, { product }),
1569
+ /* @__PURE__ */ jsx8(ProductVariantSection, { product })
1648
1570
  ] }),
1649
1571
  /* @__PURE__ */ jsxs8(TwoColumnPage.Sidebar, { "data-testid": "product-detail-sidebar", children: [
1650
- /* @__PURE__ */ jsx9(ProductOrganizationSection, { product }),
1651
- /* @__PURE__ */ jsx9(ProductAttributeSection, { product })
1572
+ /* @__PURE__ */ jsx8(ProductOrganizationSection, { product }),
1573
+ /* @__PURE__ */ jsx8(ProductAttributeSection, { product })
1652
1574
  ] })
1653
1575
  ]
1654
1576
  }