@medusajs/dashboard 2.10.4-snapshot-20250923121159 → 2.10.4-snapshot-20250925172615

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 (332) hide show
  1. package/dist/{add-campaign-promotions-JOVLXLS4.mjs → add-campaign-promotions-3BB3BLFD.mjs} +7 -6
  2. package/dist/{adjust-inventory-WBEBMJN7.mjs → adjust-inventory-OIJTAKHP.mjs} +1 -1
  3. package/dist/{api-key-management-create-VXPZX2Q5.mjs → api-key-management-create-XDQHUNWK.mjs} +3 -3
  4. package/dist/{api-key-management-detail-I7T67TXF.mjs → api-key-management-detail-MM673US3.mjs} +16 -14
  5. package/dist/{api-key-management-edit-7CGMSHAY.mjs → api-key-management-edit-2SUSKI7T.mjs} +3 -3
  6. package/dist/{api-key-management-list-5DI3L4DV.mjs → api-key-management-list-C2WM4PHC.mjs} +8 -7
  7. package/dist/{api-key-management-sales-channels-6GN6RVZ2.mjs → api-key-management-sales-channels-MVHVMPF6.mjs} +6 -5
  8. package/dist/app.css +89 -31
  9. package/dist/app.js +7050 -5968
  10. package/dist/app.mjs +18 -15
  11. package/dist/{campaign-budget-edit-OXNTSPGE.mjs → campaign-budget-edit-UWGCET5Z.mjs} +1 -1
  12. package/dist/{campaign-configuration-Z5HA2DG3.mjs → campaign-configuration-WWCCFNYQ.mjs} +1 -1
  13. package/dist/{campaign-create-AVBNHFC2.mjs → campaign-create-CQ3XBHSY.mjs} +4 -3
  14. package/dist/{campaign-detail-NRZHGINV.mjs → campaign-detail-G2VM7CRL.mjs} +23 -21
  15. package/dist/{campaign-edit-3TDW52BO.mjs → campaign-edit-R43GXNET.mjs} +1 -1
  16. package/dist/{campaign-list-G4MD3RPU.mjs → campaign-list-CDO5PRTL.mjs} +7 -6
  17. package/dist/{categories-metadata-GXWJ3HOG.mjs → categories-metadata-M4PAATNV.mjs} +14 -12
  18. package/dist/{category-create-FOVB5MJ4.mjs → category-create-GMFWRFT7.mjs} +38 -16
  19. package/dist/{category-detail-ENUI5EFL.mjs → category-detail-MTLPW4MR.mjs} +20 -18
  20. package/dist/{category-edit-O4ZSANE5.mjs → category-edit-HCHER73V.mjs} +36 -16
  21. package/dist/{category-list-UI6W5KF5.mjs → category-list-IXW2NWWJ.mjs} +8 -7
  22. package/dist/{category-organize-BW3YOPUS.mjs → category-organize-LRQKM4LA.mjs} +2 -2
  23. package/dist/{category-products-ZG5QDWSW.mjs → category-products-DGWKONYE.mjs} +16 -14
  24. package/dist/{chunk-2HKRIUW4.mjs → chunk-2PGNKUXS.mjs} +1 -1
  25. package/dist/{chunk-X4X5KUGQ.mjs → chunk-4QUHWHBD.mjs} +3 -0
  26. package/dist/{chunk-R2NWOCML.mjs → chunk-5FAWKUSU.mjs} +8 -2
  27. package/dist/chunk-5U3FFMC7.mjs +84 -0
  28. package/dist/{chunk-YM4QJC6Y.mjs → chunk-7GBCLBMX.mjs} +1 -1
  29. package/dist/{chunk-JHXKKOHO.mjs → chunk-7JJTWGHU.mjs} +49 -15
  30. package/dist/{chunk-6AGMMT5H.mjs → chunk-A4GWVZB4.mjs} +4 -4
  31. package/dist/{chunk-2YP2ZNKR.mjs → chunk-AN5IILM2.mjs} +1 -1
  32. package/dist/{chunk-YWNHMIEQ.mjs → chunk-AXXGAOQL.mjs} +2 -2
  33. package/dist/{chunk-2PMSBTXI.mjs → chunk-CD7VQIPA.mjs} +11 -11
  34. package/dist/{chunk-RVOPC44F.mjs → chunk-CGEJJR5K.mjs} +623 -682
  35. package/dist/{chunk-J5E7MQSS.mjs → chunk-CY33DS7K.mjs} +6 -0
  36. package/dist/{chunk-ZJA7VBUR.mjs → chunk-DKOCYXB5.mjs} +34 -1
  37. package/dist/{chunk-ZCZL3STK.mjs → chunk-EA5GGT2Q.mjs} +1 -1
  38. package/dist/{chunk-OGHQ6VJI.mjs → chunk-EILZIUOP.mjs} +1 -6
  39. package/dist/{chunk-7VJK6HNE.mjs → chunk-EYL2JACT.mjs} +4 -4
  40. package/dist/{chunk-BFNH5UWD.mjs → chunk-EYTETK3W.mjs} +1 -1
  41. package/dist/{chunk-74K7HGNI.mjs → chunk-FXG2Z3QT.mjs} +3 -2
  42. package/dist/{chunk-SMHXCFRS.mjs → chunk-G3VGLFVH.mjs} +54 -41
  43. package/dist/{chunk-2RQLKDBF.mjs → chunk-GIZFNLKK.mjs} +103 -96
  44. package/dist/{chunk-NRBOPOMS.mjs → chunk-HOERC634.mjs} +1 -1
  45. package/dist/{chunk-AOFGTNG6.mjs → chunk-HQKGZADC.mjs} +6 -1
  46. package/dist/{chunk-LBIOZZPA.mjs → chunk-HWKLNKOY.mjs} +1 -1
  47. package/dist/{chunk-Y4YXZY7R.mjs → chunk-I2QEZTVU.mjs} +2 -2
  48. package/dist/{chunk-S2UEWRDA.mjs → chunk-IL5IMREK.mjs} +59 -49
  49. package/dist/{chunk-JIQQKKLO.mjs → chunk-IP2QPPWC.mjs} +1 -1
  50. package/dist/{chunk-SCBXRJPV.mjs → chunk-IRO6DO7J.mjs} +1 -1
  51. package/dist/{chunk-YI4CZGTU.mjs → chunk-ITJEYJNB.mjs} +1 -1
  52. package/dist/{chunk-T7G2CURS.mjs → chunk-IVZ6BMDB.mjs} +1 -0
  53. package/dist/{chunk-5WKYR6PY.mjs → chunk-IXMPYDY2.mjs} +1 -1
  54. package/dist/{chunk-XGJ5DXXG.mjs → chunk-K2HM7KXJ.mjs} +12 -12
  55. package/dist/{chunk-OKMF4YI7.mjs → chunk-K3OMOMRB.mjs} +25 -0
  56. package/dist/{chunk-2LPGQWPV.mjs → chunk-KTL6E2WT.mjs} +1 -1
  57. package/dist/{chunk-OHSRRFGN.mjs → chunk-LKVQ5YC6.mjs} +1 -1
  58. package/dist/{chunk-QGCKTVQX.mjs → chunk-LMRZMI7O.mjs} +1 -1
  59. package/dist/{chunk-OLUNPPBR.mjs → chunk-MAKOUE5W.mjs} +1 -1
  60. package/dist/{chunk-Q5DI5VYN.mjs → chunk-MLNUGLGT.mjs} +1 -1
  61. package/dist/{chunk-5M5ZVAWU.mjs → chunk-MSOFJHH3.mjs} +2 -2
  62. package/dist/{chunk-JMQ6V54O.mjs → chunk-NFQXNOP7.mjs} +1 -1
  63. package/dist/{chunk-UWJBDOQD.mjs → chunk-NKVMOKZA.mjs} +41 -29
  64. package/dist/{chunk-NCR5UWRI.mjs → chunk-NY6I2FYO.mjs} +1 -1
  65. package/dist/{chunk-3NJTXRIY.mjs → chunk-OZPB6JBL.mjs} +5 -1
  66. package/dist/{chunk-FPJBF7VS.mjs → chunk-P2O6XTD4.mjs} +1 -1
  67. package/dist/{chunk-EFA7S5L3.mjs → chunk-PGTXMCSV.mjs} +1 -1
  68. package/dist/{chunk-D7H6ZNK4.mjs → chunk-PRLQLEEQ.mjs} +2 -0
  69. package/dist/{chunk-ZODJNBAV.mjs → chunk-R2G2B47Y.mjs} +1 -0
  70. package/dist/{chunk-HUX22ZHT.mjs → chunk-RF75BZNF.mjs} +3 -3
  71. package/dist/{chunk-4RG7UJCT.mjs → chunk-RGP3IXX4.mjs} +1 -1
  72. package/dist/chunk-S4DMV3ZT.mjs +35 -0
  73. package/dist/{chunk-5NQ3X2JI.mjs → chunk-SNDSWB6B.mjs} +1 -1
  74. package/dist/{chunk-EE7SOCEQ.mjs → chunk-SQFZWNYA.mjs} +4 -4
  75. package/dist/{chunk-O74UDEWT.mjs → chunk-TKZK3YPU.mjs} +1 -1
  76. package/dist/{chunk-KSRI5LOF.mjs → chunk-U25RCIX2.mjs} +2 -2
  77. package/dist/{chunk-BHZAQZYP.mjs → chunk-U4R5MBF2.mjs} +1 -1
  78. package/dist/{chunk-CK3VFTZM.mjs → chunk-UKX2FFFV.mjs} +2 -2
  79. package/dist/{chunk-37UXEJF2.mjs → chunk-V6JXTITD.mjs} +1 -1
  80. package/dist/chunk-VLOA5XAC.mjs +113 -0
  81. package/dist/{chunk-4Q4LIFFO.mjs → chunk-XP3BY6G6.mjs} +1 -1
  82. package/dist/{chunk-6IZUCU7K.mjs → chunk-YSFTQA6Y.mjs} +2 -2
  83. package/dist/{chunk-XKXNQ2KV.mjs → chunk-ZCARHA6C.mjs} +1 -1
  84. package/dist/{chunk-RMEITCLS.mjs → chunk-ZSDEVTFT.mjs} +1 -1
  85. package/dist/{collection-add-products-2ISNNIHD.mjs → collection-add-products-KEB3ESAK.mjs} +16 -14
  86. package/dist/{collection-create-75ZI5NDG.mjs → collection-create-PTOF33H2.mjs} +2 -2
  87. package/dist/{collection-detail-OSX6NHNQ.mjs → collection-detail-V24IDEZQ.mjs} +18 -16
  88. package/dist/{collection-edit-RD6BDDDI.mjs → collection-edit-WM57WXJ2.mjs} +2 -2
  89. package/dist/{collection-list-MPIYSHQJ.mjs → collection-list-GD2IJYOP.mjs} +20 -18
  90. package/dist/{collection-metadata-EOFYXEQI.mjs → collection-metadata-Z2JMXTHW.mjs} +14 -12
  91. package/dist/{customer-create-address-TPSDYZBN.mjs → customer-create-address-JOYBIPPN.mjs} +1 -1
  92. package/dist/{customer-detail-FCNRRZSW.mjs → customer-detail-E7LPLLML.mjs} +18 -16
  93. package/dist/{customer-group-add-customers-ULPWTALS.mjs → customer-group-add-customers-YF2T323Z.mjs} +3 -2
  94. package/dist/{customer-group-detail-QI3QLJJL.mjs → customer-group-detail-5ZWHOJOD.mjs} +17 -15
  95. package/dist/{customer-group-list-D26UKQMR.mjs → customer-group-list-N22GDJVL.mjs} +16 -14
  96. package/dist/{customer-group-metadata-UPAPULMF.mjs → customer-group-metadata-YQCOIVQG.mjs} +2 -1
  97. package/dist/{customer-list-SINCBCOZ.mjs → customer-list-5IWEXYSW.mjs} +5 -4
  98. package/dist/{customer-metadata-5NPUMPZ2.mjs → customer-metadata-JZEJBH4V.mjs} +2 -1
  99. package/dist/{customers-add-customer-group-5TFTVDB6.mjs → customers-add-customer-group-LFEUVS5G.mjs} +15 -13
  100. package/dist/{edit-inventory-item-ZPE4MMC4.mjs → edit-inventory-item-UV2Z7SYL.mjs} +1 -1
  101. package/dist/{edit-inventory-item-attributes-KT7BSPZ7.mjs → edit-inventory-item-attributes-BRC3KBYT.mjs} +2 -2
  102. package/dist/{edit-reservation-EKH4RIAX.mjs → edit-reservation-NYGQBFBO.mjs} +7 -2
  103. package/dist/{edit-rules-63NG4QVR.mjs → edit-rules-BCGRJ4FJ.mjs} +15 -13
  104. package/dist/{inventory-create-RIVJFJJQ.mjs → inventory-create-OPYAZF3M.mjs} +20 -14
  105. package/dist/{inventory-detail-QHL7TJFZ.mjs → inventory-detail-PAVP7J2W.mjs} +26 -18
  106. package/dist/{inventory-list-YMYF7QVP.mjs → inventory-list-J5VZGQ2M.mjs} +6 -5
  107. package/dist/{inventory-metadata-FH4CHJBA.mjs → inventory-metadata-PMQLZCHW.mjs} +14 -12
  108. package/dist/{inventory-stock-D6E4LQRK.mjs → inventory-stock-7QXMAX45.mjs} +15 -13
  109. package/dist/{location-create-LUP363ZB.mjs → location-create-22H74MFP.mjs} +1 -1
  110. package/dist/{location-detail-Z6ZDX6RY.mjs → location-detail-IXHZ7DZS.mjs} +15 -13
  111. package/dist/{location-edit-26K26G23.mjs → location-edit-X6JBEWIF.mjs} +2 -2
  112. package/dist/{location-fulfillment-providers-45VXZMZI.mjs → location-fulfillment-providers-3KPC4HQT.mjs} +17 -15
  113. package/dist/{location-list-62KBWY4T.mjs → location-list-VNEYHAKV.mjs} +15 -8
  114. package/dist/{location-sales-channels-O5XLIPAR.mjs → location-sales-channels-66ZE3ZMI.mjs} +5 -4
  115. package/dist/{location-service-zone-create-RPFLBVV4.mjs → location-service-zone-create-D5QSFS3M.mjs} +4 -3
  116. package/dist/{location-service-zone-manage-areas-VEUUGPKF.mjs → location-service-zone-manage-areas-HKCALG4Q.mjs} +4 -3
  117. package/dist/{location-service-zone-shipping-option-create-NO3665DC.mjs → location-service-zone-shipping-option-create-PVQ66CXW.mjs} +24 -15
  118. package/dist/{location-service-zone-shipping-option-edit-TMXNX4VX.mjs → location-service-zone-shipping-option-edit-JYM6GHTA.mjs} +40 -28
  119. package/dist/{location-service-zone-shipping-option-pricing-U2SDK5DE.mjs → location-service-zone-shipping-option-pricing-FLB63UKY.mjs} +3 -2
  120. package/dist/{login-DSPNELTI.mjs → login-DVYOEF5F.mjs} +12 -11
  121. package/dist/manage-locations-RPHTPGRE.mjs +247 -0
  122. package/dist/{order-allocate-items-J3ZHGC22.mjs → order-allocate-items-2RYXQRVK.mjs} +26 -14
  123. package/dist/{order-create-claim-V63BWLB5.mjs → order-create-claim-FK4LIPAE.mjs} +21 -18
  124. package/dist/{order-create-edit-NPF4UZ4D.mjs → order-create-edit-VGIWYKBB.mjs} +19 -16
  125. package/dist/{order-create-exchange-RHIPPSKU.mjs → order-create-exchange-BMRCMN5G.mjs} +21 -18
  126. package/dist/{order-create-fulfillment-4SSUHQ75.mjs → order-create-fulfillment-NLGPRK4J.mjs} +20 -12
  127. package/dist/{order-create-refund-QVQC5ZP5.mjs → order-create-refund-TEMK6IEQ.mjs} +51 -14
  128. package/dist/{order-create-return-GVA6M2RY.mjs → order-create-return-6FHAU3OZ.mjs} +11 -9
  129. package/dist/{order-create-shipment-TJAARKWA.mjs → order-create-shipment-WCEZXWM6.mjs} +14 -11
  130. package/dist/{order-detail-2MIN6B2I.mjs → order-detail-QABTBPGX.mjs} +50 -40
  131. package/dist/{order-edit-billing-address-QP2I5F3E.mjs → order-edit-billing-address-MWF3L6GK.mjs} +13 -12
  132. package/dist/{order-edit-email-7WT7XTHB.mjs → order-edit-email-UDJOGYPP.mjs} +12 -11
  133. package/dist/{order-edit-shipping-address-3QFMQP4I.mjs → order-edit-shipping-address-O46U65WM.mjs} +13 -12
  134. package/dist/{order-list-73DBATIK.mjs → order-list-VDUUHTSU.mjs} +11 -10
  135. package/dist/{order-metadata-YJS26DHK.mjs → order-metadata-SHCFZWCA.mjs} +14 -12
  136. package/dist/{order-receive-return-PZMMMUB2.mjs → order-receive-return-MC4DIRK3.mjs} +15 -13
  137. package/dist/{order-request-transfer-QBIZD36E.mjs → order-request-transfer-MELQKMC4.mjs} +13 -12
  138. package/dist/{price-list-configuration-435QDWB2.mjs → price-list-configuration-VACKCKJF.mjs} +6 -5
  139. package/dist/{price-list-create-RXDH5CXF.mjs → price-list-create-TZUDGP2J.mjs} +40 -24
  140. package/dist/{price-list-detail-PKIKOJ4H.mjs → price-list-detail-DX74DH6G.mjs} +19 -17
  141. package/dist/{price-list-edit-ZGBOZYSC.mjs → price-list-edit-G73ZIU2Y.mjs} +51 -31
  142. package/dist/{price-list-list-C6NEB2R4.mjs → price-list-list-QYZSJNF5.mjs} +8 -7
  143. package/dist/{price-list-prices-add-2CDPUSYA.mjs → price-list-prices-add-IHMS7HIH.mjs} +29 -20
  144. package/dist/{price-list-prices-edit-ENB4GJZT.mjs → price-list-prices-edit-R53ITSDD.mjs} +5 -4
  145. package/dist/{product-attributes-FQDJCNUB.mjs → product-attributes-AULEVQ5C.mjs} +20 -17
  146. package/dist/{product-create-W37RQLON.mjs → product-create-2RPJZR2Q.mjs} +28 -21
  147. package/dist/{product-create-option-3JR35UZ5.mjs → product-create-option-OW2LMVST.mjs} +1 -1
  148. package/dist/{product-create-variant-KJKQ6ROY.mjs → product-create-variant-NKU6J7NG.mjs} +32 -18
  149. package/dist/{product-detail-TANIKAEK.mjs → product-detail-NNTUGXU5.mjs} +22 -19
  150. package/dist/{product-edit-DO76GHBI.mjs → product-edit-6WRMNGPM.mjs} +42 -28
  151. package/dist/{product-edit-option-VNDGZ37A.mjs → product-edit-option-OM56DLU6.mjs} +1 -1
  152. package/dist/{product-export-XERWEI5H.mjs → product-export-W6KP2RGO.mjs} +14 -13
  153. package/dist/{product-import-AGFJMSVK.mjs → product-import-P76MITMC.mjs} +15 -13
  154. package/dist/{product-list-KJ3HXPLB.mjs → product-list-7H64APWI.mjs} +20 -18
  155. package/dist/{product-media-VG4YM2W6.mjs → product-media-TRKQTA4G.mjs} +5 -5
  156. package/dist/{product-metadata-NZ3HKO67.mjs → product-metadata-2G6DWHWG.mjs} +14 -12
  157. package/dist/{product-organization-OOVUGXNP.mjs → product-organization-43YS5OUI.mjs} +21 -18
  158. package/dist/{product-prices-PCBMYYGV.mjs → product-prices-XLY5TUSJ.mjs} +3 -2
  159. package/dist/{product-sales-channels-QEJRSCAU.mjs → product-sales-channels-KSIHPDJG.mjs} +5 -4
  160. package/dist/{product-shipping-profile-FFMKOF6B.mjs → product-shipping-profile-SFU2PVR4.mjs} +20 -17
  161. package/dist/{product-stock-SUVEQZML.mjs → product-stock-GAWLELSE.mjs} +17 -14
  162. package/dist/{product-tag-create-T6HVAQKN.mjs → product-tag-create-FVU5JRL3.mjs} +12 -11
  163. package/dist/{product-tag-detail-HOWUZC3P.mjs → product-tag-detail-VMVPWMZK.mjs} +23 -21
  164. package/dist/{product-tag-edit-WWQDNDRC.mjs → product-tag-edit-OWI3OFVF.mjs} +12 -11
  165. package/dist/{product-tag-list-FAKSLONF.mjs → product-tag-list-YPIZII2D.mjs} +23 -21
  166. package/dist/{product-tag-metadata-6B56VEZU.mjs → product-tag-metadata-B4YBSHOH.mjs} +14 -12
  167. package/dist/{product-type-detail-KN64HYUV.mjs → product-type-detail-243HFRBD.mjs} +18 -16
  168. package/dist/{product-type-list-6ZIWPIUH.mjs → product-type-list-MJLAGQYC.mjs} +5 -4
  169. package/dist/{product-type-metadata-F3FTI6OG.mjs → product-type-metadata-4YE4UEOF.mjs} +14 -12
  170. package/dist/{product-variant-detail-OUHBUY4J.mjs → product-variant-detail-LJE3IFNE.mjs} +17 -15
  171. package/dist/{product-variant-edit-NBYHDUJ5.mjs → product-variant-edit-IGJIWVQQ.mjs} +18 -13
  172. package/dist/{product-variant-manage-inventory-items-TM3VAHBJ.mjs → product-variant-manage-inventory-items-2M2KTPNK.mjs} +2 -2
  173. package/dist/{product-variant-metadata-XDVLJYGQ.mjs → product-variant-metadata-F6BGFMMS.mjs} +14 -12
  174. package/dist/{profile-detail-ROG22HHL.mjs → profile-detail-XYAQ2G36.mjs} +3 -2
  175. package/dist/{profile-edit-HSUQIQQH.mjs → profile-edit-7WD4FTRH.mjs} +31 -19
  176. package/dist/{promotion-add-campaign-7R26KU2U.mjs → promotion-add-campaign-YREHV6TQ.mjs} +9 -21
  177. package/dist/{promotion-create-UUOG52D5.mjs → promotion-create-YGHBTAFC.mjs} +30 -17
  178. package/dist/{promotion-detail-GONXLJZ2.mjs → promotion-detail-BIC23HFR.mjs} +17 -15
  179. package/dist/{promotion-edit-details-HQLYX4X4.mjs → promotion-edit-details-A2UUSAZA.mjs} +10 -2
  180. package/dist/{promotion-list-NNEMVJ6I.mjs → promotion-list-WDHOSD55.mjs} +9 -8
  181. package/dist/refund-reason-create-YCWLRRBW.mjs +158 -0
  182. package/dist/refund-reason-edit-E2HDAQZI.mjs +144 -0
  183. package/dist/refund-reason-list-7GANH7KL.mjs +246 -0
  184. package/dist/{region-add-countries-Y4YAHDUZ.mjs → region-add-countries-6GSF4CKJ.mjs} +3 -2
  185. package/dist/{region-create-5Y3GIQBV.mjs → region-create-AFZTSM3N.mjs} +34 -18
  186. package/dist/{region-detail-CWRFM6P3.mjs → region-detail-PB7EUSTD.mjs} +5 -4
  187. package/dist/{region-edit-JWQWCLM3.mjs → region-edit-DSYIUI7W.mjs} +25 -9
  188. package/dist/{region-list-FQNI7F37.mjs → region-list-52LF5S4S.mjs} +5 -4
  189. package/dist/{region-metadata-IQVB4ERU.mjs → region-metadata-L5K6YENH.mjs} +14 -12
  190. package/dist/{reservation-create-7RFXWDXB.mjs → reservation-create-FV7QXGL3.mjs} +3 -3
  191. package/dist/{reservation-detail-RTGHD35L.mjs → reservation-detail-USDAVGWH.mjs} +16 -14
  192. package/dist/{reservation-list-UOC7RNRZ.mjs → reservation-list-NOWJUMXV.mjs} +7 -6
  193. package/dist/{reservation-metadata-WKJXBRLQ.mjs → reservation-metadata-47C6RWYS.mjs} +14 -12
  194. package/dist/{reset-password-ANJHGYUE.mjs → reset-password-LCVV4NOA.mjs} +1 -1
  195. package/dist/{return-reason-list-MOP7YWMZ.mjs → return-reason-list-FW7OYUOW.mjs} +8 -7
  196. package/dist/{sales-channel-add-products-OKVZJ6FI.mjs → sales-channel-add-products-NGPN4IRB.mjs} +16 -14
  197. package/dist/{sales-channel-create-3MPOMVPD.mjs → sales-channel-create-NODWGJDD.mjs} +4 -2
  198. package/dist/{sales-channel-detail-WESBK6Q7.mjs → sales-channel-detail-IWWRX2Y3.mjs} +18 -16
  199. package/dist/{sales-channel-edit-LSLAM7A4.mjs → sales-channel-edit-ALIRERVH.mjs} +4 -2
  200. package/dist/{sales-channel-list-LKVHXUXW.mjs → sales-channel-list-LCPDOQK3.mjs} +16 -14
  201. package/dist/{sales-channel-metadata-2OQAHYB4.mjs → sales-channel-metadata-VZ4TINYG.mjs} +14 -12
  202. package/dist/{shipping-option-type-create-3CGPGDYJ.mjs → shipping-option-type-create-NOMFII5B.mjs} +12 -11
  203. package/dist/{shipping-option-type-detail-S23H2OGW.mjs → shipping-option-type-detail-6XIJRVZ5.mjs} +16 -14
  204. package/dist/{shipping-option-type-edit-IHE7XM6M.mjs → shipping-option-type-edit-PEDYL6JQ.mjs} +12 -11
  205. package/dist/{shipping-option-type-list-47GRJ6EC.mjs → shipping-option-type-list-GI5GBLIS.mjs} +18 -16
  206. package/dist/{shipping-profile-detail-FDUPDSH4.mjs → shipping-profile-detail-FS46IJZP.mjs} +3 -2
  207. package/dist/{shipping-profile-metadata-OXWOXAAR.mjs → shipping-profile-metadata-ZOR7MQFF.mjs} +14 -12
  208. package/dist/{shipping-profiles-list-ZHJEUIKJ.mjs → shipping-profiles-list-QFOG5IDH.mjs} +5 -4
  209. package/dist/{store-add-currencies-R26SVHT5.mjs → store-add-currencies-W4MWOALR.mjs} +5 -2
  210. package/dist/{store-detail-4K7TW2TP.mjs → store-detail-MZAKRCTC.mjs} +17 -15
  211. package/dist/{store-edit-EU55TNFU.mjs → store-edit-3DU5MC25.mjs} +24 -12
  212. package/dist/{store-metadata-JP2CI7EF.mjs → store-metadata-GO4TXB3W.mjs} +14 -12
  213. package/dist/{tax-region-create-IWM4755I.mjs → tax-region-create-KDCNQGPC.mjs} +15 -14
  214. package/dist/{tax-region-detail-V2F2DONN.mjs → tax-region-detail-O6U6ZVDB.mjs} +19 -17
  215. package/dist/{tax-region-edit-CJPMYTBF.mjs → tax-region-edit-T4B5DM55.mjs} +13 -12
  216. package/dist/{tax-region-list-NMM3LBPN.mjs → tax-region-list-SQQE2GUU.mjs} +6 -5
  217. package/dist/{tax-region-province-create-GIIU2G7K.mjs → tax-region-province-create-SBRFGWN3.mjs} +2 -2
  218. package/dist/{tax-region-province-detail-4PUQ5ADW.mjs → tax-region-province-detail-XH45ZAOJ.mjs} +18 -16
  219. package/dist/{tax-region-tax-override-create-3SCIOK4P.mjs → tax-region-tax-override-create-MSL7HEM6.mjs} +26 -20
  220. package/dist/{tax-region-tax-override-edit-P3QJKET3.mjs → tax-region-tax-override-edit-AO6CYS62.mjs} +26 -20
  221. package/dist/{tax-region-tax-rate-create-Z43M3JTQ.mjs → tax-region-tax-rate-create-JIV5FXUD.mjs} +1 -1
  222. package/dist/{tax-region-tax-rate-edit-RBF5D2MK.mjs → tax-region-tax-rate-edit-WU2ZQLZQ.mjs} +1 -1
  223. package/dist/{user-detail-VIVFFLOW.mjs → user-detail-ZFW3YF3M.mjs} +4 -3
  224. package/dist/{user-invite-W26LOOW7.mjs → user-invite-KUH4AI2L.mjs} +4 -3
  225. package/dist/{user-list-MKJLB5CQ.mjs → user-list-G4H2RSDX.mjs} +4 -3
  226. package/dist/{user-metadata-ZURLDLGC.mjs → user-metadata-2CR2AK3U.mjs} +14 -12
  227. package/dist/{workflow-execution-detail-4R6AFFHV.mjs → workflow-execution-detail-ZD7OVL4W.mjs} +18 -13
  228. package/dist/{workflow-execution-list-5J3DQQRD.mjs → workflow-execution-list-5WL4L464.mjs} +4 -3
  229. package/package.json +9 -9
  230. package/src/components/common/action-menu/action-menu.tsx +3 -1
  231. package/src/components/common/customer-info/customer-info.tsx +1 -1
  232. package/src/components/common/json-view-section/json-view-section.tsx +4 -1
  233. package/src/components/common/sidebar-link/sidebar-link.tsx +1 -1
  234. package/src/components/common/switch-box/switch-box.tsx +2 -0
  235. package/src/components/data-grid/components/data-grid-root.tsx +9 -3
  236. package/src/components/data-grid/components/data-grid-toggleable-number-cell.tsx +2 -1
  237. package/src/components/filtering/filter-group/filter-group.tsx +5 -1
  238. package/src/components/filtering/order-by/order-by.tsx +4 -1
  239. package/src/components/forms/address-form/address-form.tsx +7 -2
  240. package/src/components/forms/metadata-form/metadata-form.tsx +6 -3
  241. package/src/components/inputs/combobox/combobox.tsx +11 -11
  242. package/src/components/inputs/country-select/country-select.tsx +1 -1
  243. package/src/components/inputs/province-select/province-select.tsx +1 -1
  244. package/src/components/layout/main-layout/main-layout.tsx +7 -5
  245. package/src/components/layout/settings-layout/settings-layout.tsx +4 -0
  246. package/src/components/layout/shell/shell.tsx +6 -6
  247. package/src/components/layout/user-menu/user-menu.tsx +12 -10
  248. package/src/components/search/search.tsx +5 -3
  249. package/src/components/table/data-table/data-table-order-by/data-table-order-by.tsx +4 -1
  250. package/src/components/table/data-table/data-table-root/data-table-root.tsx +3 -3
  251. package/src/dashboard-app/forms/form-extension-zone/form-extension-zone.tsx +1 -1
  252. package/src/dashboard-app/routes/get-route.map.tsx +36 -0
  253. package/src/hooks/api/campaigns.tsx +1 -0
  254. package/src/hooks/api/inventory.tsx +3 -0
  255. package/src/hooks/api/refund-reasons.tsx +105 -10
  256. package/src/hooks/table/columns/index.ts +1 -0
  257. package/src/hooks/table/columns/use-refund-reason-table-columns.tsx +32 -0
  258. package/src/hooks/table/query/index.ts +1 -0
  259. package/src/hooks/table/query/use-refund-reason-table-query.tsx +32 -0
  260. package/src/hooks/use-document-direction.tsx +54 -0
  261. package/src/i18n/translations/$schema.json +118 -0
  262. package/src/i18n/translations/en.json +34 -1
  263. package/src/providers/i18n-provider/i18n-provider.tsx +9 -4
  264. package/src/routes/campaigns/campaign-detail/components/campaign-budget/campaign-budget.tsx +3 -3
  265. package/src/routes/campaigns/common/components/create-campaign-form-fields/create-campaign-form-fields.tsx +4 -1
  266. package/src/routes/categories/category-create/components/create-category-form/create-category-details.tsx +12 -3
  267. package/src/routes/categories/category-create/components/create-category-form/create-category-form.tsx +4 -3
  268. package/src/routes/categories/category-detail/components/category-organize-section/category-organize-section.tsx +1 -1
  269. package/src/routes/categories/category-edit/components/edit-category-form/edit-category-form.tsx +12 -3
  270. package/src/routes/inventory/inventory-create/components/inventory-create-form/inventory-create-form.tsx +3 -1
  271. package/src/routes/inventory/inventory-detail/components/inventory-item-variants/variants-section.tsx +1 -1
  272. package/src/routes/inventory/inventory-detail/components/location-levels-table/use-location-list-table-columns.tsx +7 -0
  273. package/src/routes/inventory/inventory-detail/components/manage-locations/components/location-item.tsx +2 -2
  274. package/src/routes/inventory/inventory-detail/components/manage-locations/components/location-search-input.tsx +34 -0
  275. package/src/routes/inventory/inventory-detail/components/manage-locations/components/manage-locations-form.tsx +127 -140
  276. package/src/routes/locations/location-edit/components/edit-location-form/edit-location-form.tsx +1 -1
  277. package/src/routes/locations/location-list/location-list.tsx +10 -4
  278. package/src/routes/locations/location-service-zone-shipping-option-create/components/create-shipping-options-form/create-shipping-option-details-form.tsx +4 -1
  279. package/src/routes/locations/location-service-zone-shipping-option-create/components/create-shipping-options-form/create-shipping-options-form.tsx +3 -1
  280. package/src/routes/locations/location-service-zone-shipping-option-edit/components/edit-region-form/edit-shipping-option-form.tsx +7 -2
  281. package/src/routes/orders/order-allocate-items/components/order-create-fulfillment-form/order-allocate-items-form.tsx +7 -2
  282. package/src/routes/orders/order-create-claim/components/claim-create-form/claim-create-form.tsx +2 -1
  283. package/src/routes/orders/order-create-edit/components/order-edit-create-form/order-edit-create-form.tsx +2 -1
  284. package/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-create-form.tsx +2 -1
  285. package/src/routes/orders/order-create-fulfillment/components/order-create-fulfillment-form/order-create-fulfillment-form.tsx +5 -1
  286. package/src/routes/orders/order-create-refund/components/create-refund-form/create-refund-form.tsx +42 -1
  287. package/src/routes/orders/order-create-return/components/return-create-form/return-create-form.tsx +2 -1
  288. package/src/routes/orders/order-create-shipment/components/order-create-shipment-form/order-create-shipment-form.tsx +2 -0
  289. package/src/routes/orders/order-detail/components/order-activity-section/order-timeline.tsx +13 -5
  290. package/src/routes/orders/order-receive-return/components/order-receive-return-form/order-receive-return-form.tsx +2 -1
  291. package/src/routes/price-lists/price-list-create/components/price-list-create-form/price-list-create-form.tsx +3 -1
  292. package/src/routes/price-lists/price-list-create/components/price-list-create-form/price-list-details-form.tsx +8 -2
  293. package/src/routes/price-lists/price-list-edit/components/price-list-edit-form/edit-price-list-form.tsx +12 -3
  294. package/src/routes/price-lists/price-list-prices-add/components/price-list-prices-add-form/price-list-prices-add-form.tsx +10 -5
  295. package/src/routes/product-variants/product-variant-edit/components/product-edit-variant-form/product-edit-variant-form.tsx +4 -0
  296. package/src/routes/products/common/components/category-combobox/category-combobox.tsx +11 -11
  297. package/src/routes/products/product-create/components/product-create-form/product-create-form.tsx +3 -1
  298. package/src/routes/products/product-create-variant/components/create-product-variant-form/create-product-variant-form.tsx +10 -5
  299. package/src/routes/products/product-create-variant/components/create-product-variant-form/details-tab.tsx +6 -1
  300. package/src/routes/products/product-edit/components/edit-product-form/edit-product-form.tsx +7 -2
  301. package/src/routes/products/product-media/components/product-media-gallery/product-media-gallery.tsx +2 -2
  302. package/src/routes/products/product-stock/hooks/use-product-stock-columns.tsx +2 -1
  303. package/src/routes/profile/profile-edit/components/edit-profile-form/edit-profile-form.tsx +9 -3
  304. package/src/routes/promotions/common/edit-rules/components/rules-form-field/rules-form-field.tsx +4 -0
  305. package/src/routes/promotions/promotion-add-campaign/components/add-campaign-promotion-form/add-campaign-promotion-form.tsx +48 -49
  306. package/src/routes/promotions/promotion-add-campaign/promotion-add-campaign.tsx +4 -21
  307. package/src/routes/promotions/promotion-create/components/create-promotion-form/create-promotion-form.tsx +12 -3
  308. package/src/routes/promotions/promotion-edit-details/components/edit-promotion-form/edit-promotion-details-form.tsx +6 -1
  309. package/src/routes/refund-reasons/refund-reason-create/components/refund-reason-create-form/index.ts +1 -0
  310. package/src/routes/refund-reasons/refund-reason-create/components/refund-reason-create-form/refund-reason-create-form.tsx +131 -0
  311. package/src/routes/refund-reasons/refund-reason-create/index.ts +1 -0
  312. package/src/routes/refund-reasons/refund-reason-create/refund-reason-create.tsx +10 -0
  313. package/src/routes/refund-reasons/refund-reason-edit/components/refund-reason-edit-form/index.ts +1 -0
  314. package/src/routes/refund-reasons/refund-reason-edit/components/refund-reason-edit-form/refund-reason-edit-form.tsx +119 -0
  315. package/src/routes/refund-reasons/refund-reason-edit/index.ts +1 -0
  316. package/src/routes/refund-reasons/refund-reason-edit/refund-reason-edit.tsx +33 -0
  317. package/src/routes/refund-reasons/refund-reason-list/components/refund-reason-list-table/index.ts +1 -0
  318. package/src/routes/refund-reasons/refund-reason-list/components/refund-reason-list-table/refund-reason-list-table.tsx +138 -0
  319. package/src/routes/refund-reasons/refund-reason-list/index.ts +2 -0
  320. package/src/routes/refund-reasons/refund-reason-list/loader.ts +16 -0
  321. package/src/routes/refund-reasons/refund-reason-list/refund-reason-list.tsx +21 -0
  322. package/src/routes/regions/region-create/components/create-region-form/create-region-form.tsx +11 -2
  323. package/src/routes/regions/region-edit/components/edit-region-form/edit-region-form.tsx +11 -2
  324. package/src/routes/reservations/reservation-detail/components/edit-reservation/components/edit-reservation-form.tsx +3 -1
  325. package/src/routes/sales-channels/sales-channel-create/components/create-sales-channel-form/create-sales-channel-form.tsx +2 -0
  326. package/src/routes/sales-channels/sales-channel-edit/components/edit-sales-channel-form/edit-sales-channel-form.tsx +2 -0
  327. package/src/routes/store/store-add-currencies/components/add-currencies-form/add-currencies-form.tsx +2 -0
  328. package/src/routes/store/store-edit/components/edit-store-form/edit-store-form.tsx +7 -2
  329. package/src/routes/tax-regions/tax-region-tax-override-create/components/tax-region-override-create-form/tax-region-tax-override-create.tsx +3 -1
  330. package/src/routes/tax-regions/tax-region-tax-override-edit/components/tax-region-tax-override-edit-form/tax-region-tax-override-edit-form.tsx +3 -1
  331. package/src/routes/workflow-executions/workflow-execution-detail/components/workflow-execution-timeline-section/workflow-execution-timeline-section.tsx +3 -2
  332. package/dist/manage-locations-3TBIUSHP.mjs +0 -236
@@ -1,9 +1,9 @@
1
1
  import { zodResolver } from "@hookform/resolvers/zod"
2
2
  import { AdminCampaign, AdminPromotion } from "@medusajs/types"
3
- import { Button, RadioGroup, Select, Text, toast } from "@medusajs/ui"
3
+ import { Button, RadioGroup, toast } from "@medusajs/ui"
4
4
  import { useEffect } from "react"
5
5
  import { useForm, useWatch } from "react-hook-form"
6
- import { Trans, useTranslation } from "react-i18next"
6
+ import { useTranslation } from "react-i18next"
7
7
  import * as zod from "zod"
8
8
  import { Form } from "../../../../../components/common/form"
9
9
  import { RouteDrawer, useRouteModal } from "../../../../../components/modals"
@@ -11,10 +11,14 @@ import { KeyboundForm } from "../../../../../components/utilities/keybound-form"
11
11
  import { useUpdatePromotion } from "../../../../../hooks/api/promotions"
12
12
  import { CreateCampaignFormFields } from "../../../../campaigns/common/components/create-campaign-form-fields"
13
13
  import { CampaignDetails } from "./campaign-details"
14
+ import { sdk } from "../../../../../lib/client"
15
+ import { useComboboxData } from "../../../../../hooks/use-combobox-data"
16
+ import { Combobox } from "../../../../../components/inputs/combobox"
17
+ import { useCampaign } from "../../../../../hooks/api/campaigns"
18
+ import { useDocumentDirection } from "../../../../../hooks/use-document-direction"
14
19
 
15
20
  type EditPromotionFormProps = {
16
21
  promotion: AdminPromotion
17
- campaigns: AdminCampaign[]
18
22
  }
19
23
 
20
24
  const EditPromotionSchema = zod.object({
@@ -24,14 +28,16 @@ const EditPromotionSchema = zod.object({
24
28
 
25
29
  export const AddCampaignPromotionFields = ({
26
30
  form,
27
- campaigns,
28
31
  withNewCampaign = true,
32
+ promotionCurrencyCode,
29
33
  }: {
30
34
  form: any
31
- campaigns: AdminCampaign[]
32
35
  withNewCampaign?: boolean
36
+ promotionCurrencyCode?: string
33
37
  }) => {
34
38
  const { t } = useTranslation()
39
+ const direction = useDocumentDirection()
40
+
35
41
  const watchCampaignId = useWatch({
36
42
  control: form.control,
37
43
  name: "campaign_id",
@@ -42,7 +48,30 @@ export const AddCampaignPromotionFields = ({
42
48
  name: "campaign_choice",
43
49
  })
44
50
 
45
- const selectedCampaign = campaigns.find((c) => c.id === watchCampaignId)
51
+ const campaignsCombobox = useComboboxData({
52
+ queryFn: (params) =>
53
+ sdk.admin.campaign.list({
54
+ ...params,
55
+ }),
56
+ queryKey: ["campaigns"],
57
+ getOptions: (data) =>
58
+ data.campaigns.map((campaign) => ({
59
+ label: campaign.name.toUpperCase(),
60
+ value: campaign.id,
61
+ disabled:
62
+ campaign.budget?.currency_code &&
63
+ campaign.budget?.currency_code?.toLowerCase() !==
64
+ promotionCurrencyCode?.toLowerCase(), // also cannot add promotion which doesn't have currency defined to a campaign with a currency amount budget
65
+ })),
66
+ })
67
+
68
+ const { campaign: selectedCampaign } = useCampaign(
69
+ watchCampaignId as string,
70
+ undefined,
71
+ {
72
+ enabled: !!watchCampaignId,
73
+ }
74
+ )
46
75
 
47
76
  return (
48
77
  <div className="flex flex-col gap-y-8">
@@ -56,6 +85,7 @@ export const AddCampaignPromotionFields = ({
56
85
 
57
86
  <Form.Control>
58
87
  <RadioGroup
88
+ dir={direction}
59
89
  className="grid grid-cols-1 gap-3"
60
90
  {...field}
61
91
  value={field.value}
@@ -97,54 +127,24 @@ export const AddCampaignPromotionFields = ({
97
127
  <Form.Field
98
128
  control={form.control}
99
129
  name="campaign_id"
100
- render={({ field: { onChange, ref, ...field } }) => {
130
+ render={({ field: { onChange, ...field } }) => {
101
131
  return (
102
132
  <Form.Item>
103
- <Form.Label>
133
+ <Form.Label tooltip={t("campaigns.fields.campaign_id.hint")}>
104
134
  {t("promotions.form.campaign.existing.title")}
105
135
  </Form.Label>
106
136
 
107
137
  <Form.Control>
108
- <Select onValueChange={onChange} {...field}>
109
- <Select.Trigger ref={ref}>
110
- <Select.Value />
111
- </Select.Trigger>
112
-
113
- <Select.Content>
114
- {!campaigns.length && (
115
- <div className="flex h-[120px] flex-col items-center justify-center gap-2 p-2">
116
- <span className="txt-small text-ui-fg-subtle font-medium">
117
- {t(
118
- "promotions.form.campaign.existing.placeholder.title"
119
- )}
120
- </span>
121
- <span className="txt-small text-ui-fg-muted">
122
- {t(
123
- "promotions.form.campaign.existing.placeholder.desc"
124
- )}
125
- </span>
126
- </div>
127
- )}
128
- {campaigns.map((c) => (
129
- <Select.Item key={c.id} value={c.id}>
130
- {c.name?.toUpperCase()}
131
- </Select.Item>
132
- ))}
133
- </Select.Content>
134
- </Select>
138
+ <Combobox
139
+ dir={direction}
140
+ options={campaignsCombobox.options}
141
+ searchValue={campaignsCombobox.searchValue}
142
+ onSearchValueChange={campaignsCombobox.onSearchValueChange}
143
+ onChange={onChange}
144
+ {...field}
145
+ ></Combobox>
135
146
  </Form.Control>
136
147
 
137
- <Text
138
- size="small"
139
- leading="compact"
140
- className="text-ui-fg-subtle"
141
- >
142
- <Trans
143
- t={t}
144
- i18nKey="campaigns.fields.campaign_id.hint"
145
- components={[<br key="break" />]}
146
- />
147
- </Text>
148
148
  <Form.ErrorMessage />
149
149
  </Form.Item>
150
150
  )
@@ -156,14 +156,13 @@ export const AddCampaignPromotionFields = ({
156
156
  <CreateCampaignFormFields form={form} fieldScope="campaign." />
157
157
  )}
158
158
 
159
- <CampaignDetails campaign={selectedCampaign} />
159
+ <CampaignDetails campaign={selectedCampaign as AdminCampaign} />
160
160
  </div>
161
161
  )
162
162
  }
163
163
 
164
164
  export const AddCampaignPromotionForm = ({
165
165
  promotion,
166
- campaigns,
167
166
  }: EditPromotionFormProps) => {
168
167
  const { t } = useTranslation()
169
168
  const { handleSuccess } = useRouteModal()
@@ -221,8 +220,8 @@ export const AddCampaignPromotionForm = ({
221
220
  <RouteDrawer.Body className="size-full overflow-auto">
222
221
  <AddCampaignPromotionFields
223
222
  form={form}
224
- campaigns={campaigns}
225
223
  withNewCampaign={false}
224
+ promotionCurrencyCode={promotion.application_method?.currency_code}
226
225
  />
227
226
  </RouteDrawer.Body>
228
227
 
@@ -3,7 +3,6 @@ import { useTranslation } from "react-i18next"
3
3
  import { useParams } from "react-router-dom"
4
4
 
5
5
  import { RouteDrawer } from "../../../components/modals"
6
- import { useCampaigns } from "../../../hooks/api/campaigns"
7
6
  import { usePromotion } from "../../../hooks/api/promotions"
8
7
  import { AddCampaignPromotionForm } from "./components/add-campaign-promotion-form"
9
8
 
@@ -12,24 +11,8 @@ export const PromotionAddCampaign = () => {
12
11
  const { t } = useTranslation()
13
12
  const { promotion, isPending, isError, error } = usePromotion(id!)
14
13
 
15
- let campaignQuery = {}
16
-
17
- if (promotion?.application_method?.currency_code) {
18
- campaignQuery = {
19
- budget: {
20
- currency_code: promotion?.application_method?.currency_code,
21
- },
22
- }
23
- }
24
-
25
- const {
26
- campaigns,
27
- isPending: areCampaignsLoading,
28
- isError: isCampaignError,
29
- error: campaignError,
30
- } = useCampaigns(campaignQuery)
31
- if (isError || isCampaignError) {
32
- throw error || campaignError
14
+ if (isError) {
15
+ throw error
33
16
  }
34
17
 
35
18
  return (
@@ -38,8 +21,8 @@ export const PromotionAddCampaign = () => {
38
21
  <Heading>{t("promotions.campaign.edit.header")}</Heading>
39
22
  </RouteDrawer.Header>
40
23
 
41
- {!isPending && !areCampaignsLoading && promotion && campaigns && (
42
- <AddCampaignPromotionForm promotion={promotion} campaigns={campaigns} />
24
+ {!isPending && promotion && (
25
+ <AddCampaignPromotionForm promotion={promotion} />
43
26
  )}
44
27
  </RouteDrawer>
45
28
  )
@@ -46,6 +46,7 @@ import { AddCampaignPromotionFields } from "../../../promotion-add-campaign/comp
46
46
  import { Tab } from "./constants"
47
47
  import { CreatePromotionSchema } from "./form-schema"
48
48
  import { templates } from "./templates"
49
+ import { useDocumentDirection } from "../../../../../hooks/use-document-direction"
49
50
 
50
51
  const defaultValues = {
51
52
  campaign_id: undefined,
@@ -80,7 +81,7 @@ export const CreatePromotionForm = () => {
80
81
 
81
82
  const { t } = useTranslation()
82
83
  const { handleSuccess } = useRouteModal()
83
-
84
+ const direction = useDocumentDirection()
84
85
  const form = useForm<z.infer<typeof CreatePromotionSchema>>({
85
86
  defaultValues,
86
87
  resolver: zodResolver(CreatePromotionSchema),
@@ -364,6 +365,7 @@ export const CreatePromotionForm = () => {
364
365
  <RouteFocusModal.Form form={form}>
365
366
  <KeyboundForm className="flex h-full flex-col" onSubmit={handleSubmit}>
366
367
  <ProgressTabs
368
+ dir={direction}
367
369
  value={tab}
368
370
  onValueChange={(tab) => handleTabChange(tab as Tab)}
369
371
  className="flex h-full flex-col overflow-hidden"
@@ -417,6 +419,7 @@ export const CreatePromotionForm = () => {
417
419
 
418
420
  <Form.Control>
419
421
  <RadioGroup
422
+ dir={direction}
420
423
  key={"template_id"}
421
424
  className="flex-col gap-y-3"
422
425
  {...field}
@@ -486,6 +489,7 @@ export const CreatePromotionForm = () => {
486
489
 
487
490
  <Form.Control>
488
491
  <RadioGroup
492
+ dir={direction}
489
493
  className="flex gap-y-3"
490
494
  {...field}
491
495
  value={field.value}
@@ -530,6 +534,7 @@ export const CreatePromotionForm = () => {
530
534
 
531
535
  <Form.Control>
532
536
  <RadioGroup
537
+ dir={direction}
533
538
  className="flex gap-y-3"
534
539
  {...field}
535
540
  value={field.value}
@@ -619,7 +624,8 @@ export const CreatePromotionForm = () => {
619
624
  </div>
620
625
  <Form.Control className="mr-2 self-center">
621
626
  <Switch
622
- className="mt-[2px]"
627
+ dir="ltr"
628
+ className="mt-[2px] rtl:rotate-180"
623
629
  checked={!!value}
624
630
  onCheckedChange={onChange}
625
631
  {...field}
@@ -647,6 +653,7 @@ export const CreatePromotionForm = () => {
647
653
  </Form.Label>
648
654
  <Form.Control>
649
655
  <RadioGroup
656
+ dir={direction}
650
657
  className="flex gap-y-3"
651
658
  {...field}
652
659
  onValueChange={field.onChange}
@@ -699,7 +706,8 @@ export const CreatePromotionForm = () => {
699
706
  </Form.Label>
700
707
  <Form.Control>
701
708
  <RadioGroup
702
- className="flex gap-y-3"
709
+ dir={direction}
710
+ className="flex gap-y-3"
703
711
  {...field}
704
712
  onValueChange={field.onChange}
705
713
  >
@@ -889,6 +897,7 @@ export const CreatePromotionForm = () => {
889
897
 
890
898
  <Form.Control>
891
899
  <RadioGroup
900
+ dir={direction}
892
901
  className="flex gap-y-3"
893
902
  {...field}
894
903
  onValueChange={field.onChange}
@@ -16,6 +16,7 @@ import {
16
16
  getCurrencySymbol,
17
17
  } from "../../../../../lib/data/currencies"
18
18
  import { SwitchBox } from "../../../../../components/common/switch-box"
19
+ import { useDocumentDirection } from "../../../../../hooks/use-document-direction"
19
20
 
20
21
  type EditPromotionFormProps = {
21
22
  promotion: AdminPromotion
@@ -99,7 +100,7 @@ export const EditPromotionDetailsForm = ({
99
100
  form.setValue("is_tax_inclusive", false)
100
101
  }
101
102
  }, [allocationWatchValue, form, promotion])
102
-
103
+ const direction = useDocumentDirection()
103
104
  return (
104
105
  <RouteDrawer.Form form={form}>
105
106
  <KeyboundForm
@@ -117,6 +118,7 @@ export const EditPromotionDetailsForm = ({
117
118
  <Form.Label>{t("promotions.form.status.label")}</Form.Label>
118
119
  <Form.Control>
119
120
  <RadioGroup
121
+ dir={direction}
120
122
  className="flex-col gap-y-3"
121
123
  {...field}
122
124
  value={field.value}
@@ -162,6 +164,7 @@ export const EditPromotionDetailsForm = ({
162
164
  <Form.Label>{t("promotions.form.method.label")}</Form.Label>
163
165
  <Form.Control>
164
166
  <RadioGroup
167
+ dir={direction}
165
168
  className="flex-col gap-y-3"
166
169
  {...field}
167
170
  value={field.value}
@@ -242,6 +245,7 @@ export const EditPromotionDetailsForm = ({
242
245
  </Form.Label>
243
246
  <Form.Control>
244
247
  <RadioGroup
248
+ dir={direction}
245
249
  className="flex-col gap-y-3"
246
250
  {...field}
247
251
  onValueChange={field.onChange}
@@ -336,6 +340,7 @@ export const EditPromotionDetailsForm = ({
336
340
  </Form.Label>
337
341
  <Form.Control>
338
342
  <RadioGroup
343
+ dir={direction}
339
344
  className="flex-col gap-y-3"
340
345
  {...field}
341
346
  onValueChange={field.onChange}
@@ -0,0 +1 @@
1
+ export { RefundReasonCreateForm } from "./refund-reason-create-form"
@@ -0,0 +1,131 @@
1
+ import { zodResolver } from "@hookform/resolvers/zod"
2
+ import { Button, Heading, Input, Text, Textarea, toast } from "@medusajs/ui"
3
+ import { useForm } from "react-hook-form"
4
+ import { useTranslation } from "react-i18next"
5
+ import { z } from "zod"
6
+ import { Form } from "../../../../../components/common/form"
7
+ import {
8
+ RouteFocusModal,
9
+ useRouteModal,
10
+ } from "../../../../../components/modals"
11
+ import { KeyboundForm } from "../../../../../components/utilities/keybound-form"
12
+ import { useCreateRefundReason } from "../../../../../hooks/api"
13
+
14
+ const RefundReasonCreateSchema = z.object({
15
+ label: z.string().min(1),
16
+ description: z.string().optional(),
17
+ })
18
+
19
+ export const RefundReasonCreateForm = () => {
20
+ const { t } = useTranslation()
21
+ const { handleSuccess } = useRouteModal()
22
+
23
+ const form = useForm<z.infer<typeof RefundReasonCreateSchema>>({
24
+ defaultValues: {
25
+ label: "",
26
+ description: "",
27
+ },
28
+ resolver: zodResolver(RefundReasonCreateSchema),
29
+ })
30
+
31
+ const { mutateAsync, isPending } = useCreateRefundReason()
32
+
33
+ const handleSubmit = form.handleSubmit(async (data) => {
34
+ await mutateAsync(data, {
35
+ onSuccess: ({ refund_reason }) => {
36
+ toast.success(
37
+ t("refundReasons.create.successToast", {
38
+ label: refund_reason.label,
39
+ })
40
+ )
41
+ handleSuccess(`../`)
42
+ },
43
+ onError: (error) => {
44
+ toast.error(error.message)
45
+ },
46
+ })
47
+ })
48
+
49
+ return (
50
+ <RouteFocusModal.Form form={form}>
51
+ <KeyboundForm
52
+ className="flex size-full flex-col overflow-hidden"
53
+ onSubmit={handleSubmit}
54
+ >
55
+ <RouteFocusModal.Header />
56
+ <RouteFocusModal.Body className="flex flex-1 justify-center overflow-auto px-6 py-16">
57
+ <div className="flex w-full max-w-[720px] flex-col gap-y-8">
58
+ <div className="flex flex-col gap-y-1">
59
+ <RouteFocusModal.Title asChild>
60
+ <Heading>{t("refundReasons.create.header")}</Heading>
61
+ </RouteFocusModal.Title>
62
+ <RouteFocusModal.Description asChild>
63
+ <Text size="small" className="text-ui-fg-subtle">
64
+ {t("refundReasons.create.subtitle")}
65
+ </Text>
66
+ </RouteFocusModal.Description>
67
+ </div>
68
+ <div className="grid gap-4 md:grid-cols-2">
69
+ <Form.Field
70
+ control={form.control}
71
+ name="label"
72
+ render={({ field }) => {
73
+ return (
74
+ <Form.Item>
75
+ <Form.Label>
76
+ {t("refundReasons.fields.label.label")}
77
+ </Form.Label>
78
+ <Form.Control>
79
+ <Input
80
+ {...field}
81
+ placeholder={t(
82
+ "refundReasons.fields.label.placeholder"
83
+ )}
84
+ />
85
+ </Form.Control>
86
+ <Form.ErrorMessage />
87
+ </Form.Item>
88
+ )
89
+ }}
90
+ />
91
+ </div>
92
+ <Form.Field
93
+ control={form.control}
94
+ name="description"
95
+ render={({ field }) => {
96
+ return (
97
+ <Form.Item>
98
+ <Form.Label optional>
99
+ {t("refundReasons.fields.description.label")}
100
+ </Form.Label>
101
+ <Form.Control>
102
+ <Textarea
103
+ {...field}
104
+ placeholder={t(
105
+ "refundReasons.fields.description.placeholder"
106
+ )}
107
+ />
108
+ </Form.Control>
109
+ <Form.ErrorMessage />
110
+ </Form.Item>
111
+ )
112
+ }}
113
+ />
114
+ </div>
115
+ </RouteFocusModal.Body>
116
+ <RouteFocusModal.Footer>
117
+ <div className="flex items-center justify-end gap-2">
118
+ <RouteFocusModal.Close asChild>
119
+ <Button size="small" variant="secondary" type="button">
120
+ {t("actions.cancel")}
121
+ </Button>
122
+ </RouteFocusModal.Close>
123
+ <Button size="small" type="submit" isLoading={isPending}>
124
+ {t("actions.save")}
125
+ </Button>
126
+ </div>
127
+ </RouteFocusModal.Footer>
128
+ </KeyboundForm>
129
+ </RouteFocusModal.Form>
130
+ )
131
+ }
@@ -0,0 +1 @@
1
+ export { RefundReasonCreate as Component } from "./refund-reason-create"
@@ -0,0 +1,10 @@
1
+ import { RouteFocusModal } from "../../../components/modals"
2
+ import { RefundReasonCreateForm } from "./components/refund-reason-create-form"
3
+
4
+ export const RefundReasonCreate = () => {
5
+ return (
6
+ <RouteFocusModal>
7
+ <RefundReasonCreateForm />
8
+ </RouteFocusModal>
9
+ )
10
+ }
@@ -0,0 +1 @@
1
+ export { RefundReasonEditForm } from "./refund-reason-edit-form"
@@ -0,0 +1,119 @@
1
+ import { zodResolver } from "@hookform/resolvers/zod"
2
+ import { HttpTypes } from "@medusajs/types"
3
+ import { Button, Input, Textarea, toast } from "@medusajs/ui"
4
+ import { useForm } from "react-hook-form"
5
+ import { useTranslation } from "react-i18next"
6
+ import { z } from "zod"
7
+
8
+ import { Form } from "../../../../../components/common/form"
9
+ import { RouteDrawer, useRouteModal } from "../../../../../components/modals"
10
+ import { KeyboundForm } from "../../../../../components/utilities/keybound-form"
11
+ import { useUpdateRefundReason } from "../../../../../hooks/api/refund-reasons"
12
+
13
+ type RefundReasonEditFormProps = {
14
+ refundReason: HttpTypes.AdminRefundReason
15
+ }
16
+
17
+ const RefundReasonEditSchema = z.object({
18
+ label: z.string().min(1),
19
+ description: z.string().optional(),
20
+ })
21
+
22
+ export const RefundReasonEditForm = ({
23
+ refundReason,
24
+ }: RefundReasonEditFormProps) => {
25
+ const { t } = useTranslation()
26
+ const { handleSuccess } = useRouteModal()
27
+
28
+ const form = useForm<z.infer<typeof RefundReasonEditSchema>>({
29
+ defaultValues: {
30
+ label: refundReason.label,
31
+ description: refundReason.description ?? undefined,
32
+ },
33
+ resolver: zodResolver(RefundReasonEditSchema),
34
+ })
35
+
36
+ const { mutateAsync, isPending } = useUpdateRefundReason(refundReason.id)
37
+
38
+ const handleSubmit = form.handleSubmit(async (data) => {
39
+ await mutateAsync(data, {
40
+ onSuccess: ({ refund_reason }) => {
41
+ toast.success(
42
+ t("refundReasons.edit.successToast", {
43
+ label: refund_reason.label,
44
+ })
45
+ )
46
+ handleSuccess()
47
+ },
48
+ onError: (error) => {
49
+ toast.error(error.message)
50
+ },
51
+ })
52
+ })
53
+
54
+ return (
55
+ <RouteDrawer.Form form={form}>
56
+ <KeyboundForm
57
+ className="flex size-full flex-col overflow-hidden"
58
+ onSubmit={handleSubmit}
59
+ >
60
+ <RouteDrawer.Body className="flex flex-1 flex-col gap-y-4 overflow-auto">
61
+ <Form.Field
62
+ control={form.control}
63
+ name="label"
64
+ render={({ field }) => {
65
+ return (
66
+ <Form.Item>
67
+ <Form.Label>
68
+ {t("refundReasons.fields.label.label")}
69
+ </Form.Label>
70
+ <Form.Control>
71
+ <Input
72
+ {...field}
73
+ placeholder={t("refundReasons.fields.label.placeholder")}
74
+ />
75
+ </Form.Control>
76
+ <Form.ErrorMessage />
77
+ </Form.Item>
78
+ )
79
+ }}
80
+ />
81
+ <Form.Field
82
+ control={form.control}
83
+ name="description"
84
+ render={({ field }) => {
85
+ return (
86
+ <Form.Item>
87
+ <Form.Label optional>
88
+ {t("refundReasons.fields.description.label")}
89
+ </Form.Label>
90
+ <Form.Control>
91
+ <Textarea
92
+ {...field}
93
+ placeholder={t(
94
+ "refundReasons.fields.description.placeholder"
95
+ )}
96
+ />
97
+ </Form.Control>
98
+ <Form.ErrorMessage />
99
+ </Form.Item>
100
+ )
101
+ }}
102
+ />
103
+ </RouteDrawer.Body>
104
+ <RouteDrawer.Footer>
105
+ <div className="flex items-center justify-end gap-x-2">
106
+ <RouteDrawer.Close asChild>
107
+ <Button variant="secondary" size="small" type="button">
108
+ {t("actions.cancel")}
109
+ </Button>
110
+ </RouteDrawer.Close>
111
+ <Button size="small" type="submit" isLoading={isPending}>
112
+ {t("actions.save")}
113
+ </Button>
114
+ </div>
115
+ </RouteDrawer.Footer>
116
+ </KeyboundForm>
117
+ </RouteDrawer.Form>
118
+ )
119
+ }
@@ -0,0 +1 @@
1
+ export { RefundReasonEdit as Component } from "./refund-reason-edit"
@@ -0,0 +1,33 @@
1
+ import { Heading } from "@medusajs/ui"
2
+ import { useTranslation } from "react-i18next"
3
+ import { useParams } from "react-router-dom"
4
+ import { RouteDrawer } from "../../../components/modals"
5
+ import { useRefundReason } from "../../../hooks/api/refund-reasons"
6
+ import { RefundReasonEditForm } from "./components/refund-reason-edit-form"
7
+
8
+ export const RefundReasonEdit = () => {
9
+ const { id } = useParams()
10
+ const { t } = useTranslation()
11
+
12
+ const { refund_reason, isPending, isError, error } = useRefundReason(id!)
13
+
14
+ const ready = !isPending && !!refund_reason
15
+
16
+ if (isError) {
17
+ throw error
18
+ }
19
+
20
+ return (
21
+ <RouteDrawer>
22
+ <RouteDrawer.Header>
23
+ <RouteDrawer.Title asChild>
24
+ <Heading>{t("refundReasons.edit.header")}</Heading>
25
+ </RouteDrawer.Title>
26
+ <RouteDrawer.Description className="sr-only">
27
+ {t("refundReasons.edit.subtitle")}
28
+ </RouteDrawer.Description>
29
+ </RouteDrawer.Header>
30
+ {ready && <RefundReasonEditForm refundReason={refund_reason} />}
31
+ </RouteDrawer>
32
+ )
33
+ }
@@ -0,0 +1 @@
1
+ export { RefundReasonListTable } from "./refund-reason-list-table"