@medusajs/dashboard 2.10.4-preview-20250923120202 → 2.10.4-preview-20250923180156

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 (289) hide show
  1. package/dist/{add-campaign-promotions-FE4BXGVN.mjs → add-campaign-promotions-BWIP24MA.mjs} +6 -5
  2. package/dist/{api-key-management-detail-SAVBCKX7.mjs → api-key-management-detail-WGWZQCFC.mjs} +6 -4
  3. package/dist/{api-key-management-list-5DI3L4DV.mjs → api-key-management-list-QAMBWB7T.mjs} +5 -4
  4. package/dist/{api-key-management-sales-channels-WL5L5XWM.mjs → api-key-management-sales-channels-H5TVIHTV.mjs} +3 -2
  5. package/dist/app.css +89 -31
  6. package/dist/app.js +4681 -3651
  7. package/dist/app.mjs +7 -5
  8. package/dist/{campaign-create-AVBNHFC2.mjs → campaign-create-GRKYQY5D.mjs} +3 -2
  9. package/dist/{campaign-detail-KTOLZNTA.mjs → campaign-detail-EJD7LQCW.mjs} +13 -11
  10. package/dist/{campaign-list-G4MD3RPU.mjs → campaign-list-IDPRC2MD.mjs} +6 -5
  11. package/dist/{categories-metadata-GXWJ3HOG.mjs → categories-metadata-JFNWZA5D.mjs} +4 -2
  12. package/dist/{category-create-FOVB5MJ4.mjs → category-create-DJHTY4QX.mjs} +36 -14
  13. package/dist/{category-detail-ENUI5EFL.mjs → category-detail-CL3XCV7E.mjs} +9 -7
  14. package/dist/{category-edit-O4ZSANE5.mjs → category-edit-JQQX7IZZ.mjs} +34 -14
  15. package/dist/{category-list-UI6W5KF5.mjs → category-list-FOCNQKPH.mjs} +5 -4
  16. package/dist/{category-products-ZG5QDWSW.mjs → category-products-UZEG63WY.mjs} +6 -4
  17. package/dist/{chunk-KMUDF36P.mjs → chunk-2252SSK6.mjs} +1 -1
  18. package/dist/{chunk-SMHXCFRS.mjs → chunk-4CGHNQP2.mjs} +28 -15
  19. package/dist/chunk-5U3FFMC7.mjs +84 -0
  20. package/dist/{chunk-JO6QASTJ.mjs → chunk-6RWF7BPW.mjs} +1 -1
  21. package/dist/{chunk-JHXKKOHO.mjs → chunk-7JJTWGHU.mjs} +49 -15
  22. package/dist/{chunk-5WKYR6PY.mjs → chunk-BM5ZIV5V.mjs} +1 -1
  23. package/dist/{chunk-OGHQ6VJI.mjs → chunk-BSBCIU6C.mjs} +0 -5
  24. package/dist/{chunk-IINWRJA6.mjs → chunk-CAZKNJTG.mjs} +316 -266
  25. package/dist/{chunk-2PMSBTXI.mjs → chunk-CD7VQIPA.mjs} +11 -11
  26. package/dist/{chunk-NRBOPOMS.mjs → chunk-CU5EFQSB.mjs} +1 -1
  27. package/dist/{chunk-J5E7MQSS.mjs → chunk-CY33DS7K.mjs} +6 -0
  28. package/dist/{chunk-7VJK6HNE.mjs → chunk-EYL2JACT.mjs} +4 -4
  29. package/dist/{chunk-R2NWOCML.mjs → chunk-FUQ27NT5.mjs} +7 -1
  30. package/dist/{chunk-74K7HGNI.mjs → chunk-FXG2Z3QT.mjs} +3 -2
  31. package/dist/{chunk-2RQLKDBF.mjs → chunk-GIZFNLKK.mjs} +103 -96
  32. package/dist/{chunk-AOFGTNG6.mjs → chunk-HQKGZADC.mjs} +6 -1
  33. package/dist/{chunk-LBIOZZPA.mjs → chunk-HWKLNKOY.mjs} +1 -1
  34. package/dist/{chunk-S2UEWRDA.mjs → chunk-IL5IMREK.mjs} +59 -49
  35. package/dist/{chunk-SCBXRJPV.mjs → chunk-IRO6DO7J.mjs} +1 -1
  36. package/dist/{chunk-T7G2CURS.mjs → chunk-IVZ6BMDB.mjs} +1 -0
  37. package/dist/{chunk-XGJ5DXXG.mjs → chunk-IYDBZI47.mjs} +11 -11
  38. package/dist/{chunk-OKMF4YI7.mjs → chunk-K3OMOMRB.mjs} +25 -0
  39. package/dist/{chunk-2LPGQWPV.mjs → chunk-KTL6E2WT.mjs} +1 -1
  40. package/dist/{chunk-YWNHMIEQ.mjs → chunk-LJDVFJK7.mjs} +1 -1
  41. package/dist/{chunk-Q5DI5VYN.mjs → chunk-MLNUGLGT.mjs} +1 -1
  42. package/dist/{chunk-UWJBDOQD.mjs → chunk-NKVMOKZA.mjs} +41 -29
  43. package/dist/{chunk-UNM3LPTG.mjs → chunk-OQPVQGSH.mjs} +1 -1
  44. package/dist/{chunk-3NJTXRIY.mjs → chunk-OZPB6JBL.mjs} +5 -1
  45. package/dist/{chunk-FPJBF7VS.mjs → chunk-P2O6XTD4.mjs} +1 -1
  46. package/dist/{chunk-EFA7S5L3.mjs → chunk-PGTXMCSV.mjs} +1 -1
  47. package/dist/{chunk-D7H6ZNK4.mjs → chunk-PRLQLEEQ.mjs} +2 -0
  48. package/dist/{chunk-6AGMMT5H.mjs → chunk-RFP4O5GO.mjs} +3 -3
  49. package/dist/chunk-S4DMV3ZT.mjs +35 -0
  50. package/dist/{chunk-5NQ3X2JI.mjs → chunk-SNDSWB6B.mjs} +1 -1
  51. package/dist/{chunk-O74UDEWT.mjs → chunk-TKZK3YPU.mjs} +1 -1
  52. package/dist/{chunk-EE7SOCEQ.mjs → chunk-TOS3CYMH.mjs} +3 -3
  53. package/dist/{chunk-CGK6IVLN.mjs → chunk-U2FXUMKA.mjs} +1 -1
  54. package/dist/{chunk-CK3VFTZM.mjs → chunk-UKX2FFFV.mjs} +2 -2
  55. package/dist/{chunk-7YZF3THS.mjs → chunk-V53HAFWH.mjs} +1 -1
  56. package/dist/{chunk-S45XMWVD.mjs → chunk-WP5CXGGO.mjs} +1 -1
  57. package/dist/{chunk-Y4YXZY7R.mjs → chunk-YPDTZXV6.mjs} +1 -1
  58. package/dist/{chunk-JELVERJM.mjs → chunk-YPSSUJUZ.mjs} +32 -0
  59. package/dist/{chunk-XKXNQ2KV.mjs → chunk-ZCARHA6C.mjs} +1 -1
  60. package/dist/{collection-add-products-2ISNNIHD.mjs → collection-add-products-QTFBLLND.mjs} +6 -4
  61. package/dist/{collection-detail-OSX6NHNQ.mjs → collection-detail-ZEAUSZBJ.mjs} +8 -6
  62. package/dist/{collection-list-MPIYSHQJ.mjs → collection-list-V27JHDAD.mjs} +9 -7
  63. package/dist/{collection-metadata-EOFYXEQI.mjs → collection-metadata-JAEMZMU6.mjs} +4 -2
  64. package/dist/{customer-create-address-TPSDYZBN.mjs → customer-create-address-JOYBIPPN.mjs} +1 -1
  65. package/dist/{customer-detail-FCNRRZSW.mjs → customer-detail-YBOM6KGC.mjs} +7 -5
  66. package/dist/{customer-group-add-customers-ULPWTALS.mjs → customer-group-add-customers-YF2T323Z.mjs} +3 -2
  67. package/dist/{customer-group-detail-QI3QLJJL.mjs → customer-group-detail-72VFORGF.mjs} +7 -5
  68. package/dist/{customer-group-list-GPIKR66X.mjs → customer-group-list-UTC5ZCJZ.mjs} +6 -4
  69. package/dist/{customer-group-metadata-UPAPULMF.mjs → customer-group-metadata-YQCOIVQG.mjs} +2 -1
  70. package/dist/{customer-list-SINCBCOZ.mjs → customer-list-5IWEXYSW.mjs} +5 -4
  71. package/dist/{customer-metadata-5NPUMPZ2.mjs → customer-metadata-JZEJBH4V.mjs} +2 -1
  72. package/dist/{customers-add-customer-group-5TFTVDB6.mjs → customers-add-customer-group-ZUCFXW2U.mjs} +5 -3
  73. package/dist/{edit-inventory-item-attributes-KT7BSPZ7.mjs → edit-inventory-item-attributes-BMPRVCPN.mjs} +1 -1
  74. package/dist/{edit-reservation-EKH4RIAX.mjs → edit-reservation-QQTYP22N.mjs} +5 -0
  75. package/dist/{edit-rules-63NG4QVR.mjs → edit-rules-RY7JMYLR.mjs} +5 -3
  76. package/dist/{inventory-create-RIVJFJJQ.mjs → inventory-create-F5PSTEN2.mjs} +10 -4
  77. package/dist/{inventory-detail-5433AAQ2.mjs → inventory-detail-BO5E7KXO.mjs} +10 -8
  78. package/dist/{inventory-list-YMYF7QVP.mjs → inventory-list-HUYCKI2I.mjs} +5 -4
  79. package/dist/{inventory-metadata-FH4CHJBA.mjs → inventory-metadata-QGPVSAUI.mjs} +4 -2
  80. package/dist/{inventory-stock-D6E4LQRK.mjs → inventory-stock-VQNXCIOA.mjs} +5 -3
  81. package/dist/{location-create-LUP363ZB.mjs → location-create-22H74MFP.mjs} +1 -1
  82. package/dist/{location-detail-Z6ZDX6RY.mjs → location-detail-M4CYDTSY.mjs} +5 -3
  83. package/dist/{location-edit-26K26G23.mjs → location-edit-RNGPJ26L.mjs} +1 -1
  84. package/dist/{location-fulfillment-providers-45VXZMZI.mjs → location-fulfillment-providers-XVEQZCUD.mjs} +6 -4
  85. package/dist/{location-list-BKK2PAKF.mjs → location-list-NKIOBHG4.mjs} +4 -3
  86. package/dist/{location-sales-channels-2BOIPBBG.mjs → location-sales-channels-NSXV65ZM.mjs} +3 -2
  87. package/dist/{location-service-zone-create-RPFLBVV4.mjs → location-service-zone-create-D5QSFS3M.mjs} +4 -3
  88. package/dist/{location-service-zone-manage-areas-VEUUGPKF.mjs → location-service-zone-manage-areas-HKCALG4Q.mjs} +4 -3
  89. package/dist/{location-service-zone-shipping-option-create-NO3665DC.mjs → location-service-zone-shipping-option-create-I3HAEEFA.mjs} +14 -5
  90. package/dist/{location-service-zone-shipping-option-edit-TMXNX4VX.mjs → location-service-zone-shipping-option-edit-JYM6GHTA.mjs} +40 -28
  91. package/dist/{location-service-zone-shipping-option-pricing-U2SDK5DE.mjs → location-service-zone-shipping-option-pricing-FLB63UKY.mjs} +3 -2
  92. package/dist/{login-DSPNELTI.mjs → login-QOENXTB7.mjs} +2 -1
  93. package/dist/{order-allocate-items-J3ZHGC22.mjs → order-allocate-items-NO5SVLS6.mjs} +23 -11
  94. package/dist/{order-create-claim-V63BWLB5.mjs → order-create-claim-MOBLO4YM.mjs} +9 -6
  95. package/dist/{order-create-edit-NPF4UZ4D.mjs → order-create-edit-C75GUZJE.mjs} +8 -5
  96. package/dist/{order-create-exchange-RHIPPSKU.mjs → order-create-exchange-RCUALEXO.mjs} +9 -6
  97. package/dist/{order-create-fulfillment-4SSUHQ75.mjs → order-create-fulfillment-EZTEZ4CF.mjs} +10 -2
  98. package/dist/{order-create-refund-QVQC5ZP5.mjs → order-create-refund-4FAIESAN.mjs} +7 -1
  99. package/dist/{order-create-return-GVA6M2RY.mjs → order-create-return-AV4BEJDN.mjs} +7 -5
  100. package/dist/{order-create-shipment-TJAARKWA.mjs → order-create-shipment-PTUJKVWK.mjs} +4 -1
  101. package/dist/{order-detail-2MIN6B2I.mjs → order-detail-6XQLJ5TU.mjs} +5 -3
  102. package/dist/{order-edit-billing-address-QP2I5F3E.mjs → order-edit-billing-address-46CFUZGL.mjs} +3 -2
  103. package/dist/{order-edit-email-7WT7XTHB.mjs → order-edit-email-FOK5GQW2.mjs} +2 -1
  104. package/dist/{order-edit-shipping-address-3QFMQP4I.mjs → order-edit-shipping-address-WFN2SVKM.mjs} +3 -2
  105. package/dist/{order-list-ZCMNSZYB.mjs → order-list-OTPVQKU6.mjs} +7 -6
  106. package/dist/{order-metadata-YJS26DHK.mjs → order-metadata-COJNFRPZ.mjs} +4 -2
  107. package/dist/{order-receive-return-PZMMMUB2.mjs → order-receive-return-P4OPVOPM.mjs} +4 -2
  108. package/dist/{order-request-transfer-QBIZD36E.mjs → order-request-transfer-HRPCEL5L.mjs} +3 -2
  109. package/dist/{price-list-configuration-435QDWB2.mjs → price-list-configuration-HF3DARKG.mjs} +4 -3
  110. package/dist/{price-list-create-RXDH5CXF.mjs → price-list-create-FJ2FM6GL.mjs} +30 -14
  111. package/dist/{price-list-detail-PKIKOJ4H.mjs → price-list-detail-VNZ3Q426.mjs} +8 -6
  112. package/dist/{price-list-edit-ZGBOZYSC.mjs → price-list-edit-COHKW6UK.mjs} +49 -29
  113. package/dist/{price-list-list-C6NEB2R4.mjs → price-list-list-55WD2WAY.mjs} +5 -4
  114. package/dist/{price-list-prices-add-2CDPUSYA.mjs → price-list-prices-add-FMZKGOHD.mjs} +19 -10
  115. package/dist/{price-list-prices-edit-ENB4GJZT.mjs → price-list-prices-edit-SUZNOKK2.mjs} +3 -2
  116. package/dist/{product-attributes-ZZPEBDCK.mjs → product-attributes-5PLACMXK.mjs} +9 -7
  117. package/dist/{product-create-FCDCIDCH.mjs → product-create-6FMLIS5X.mjs} +17 -11
  118. package/dist/{product-create-variant-KJKQ6ROY.mjs → product-create-variant-KGBSFIKQ.mjs} +22 -8
  119. package/dist/{product-detail-2ZUONC23.mjs → product-detail-2BJJMCCO.mjs} +11 -9
  120. package/dist/{product-edit-G3Z6FCN6.mjs → product-edit-N5P7RVNS.mjs} +31 -18
  121. package/dist/{product-export-XERWEI5H.mjs → product-export-XA5POQKT.mjs} +3 -2
  122. package/dist/{product-import-AGFJMSVK.mjs → product-import-DYTT4YDA.mjs} +5 -3
  123. package/dist/{product-list-WGX66SGI.mjs → product-list-EUQX3NBE.mjs} +10 -8
  124. package/dist/{product-media-APQKPFTT.mjs → product-media-XJGAON6B.mjs} +4 -4
  125. package/dist/{product-metadata-NZ3HKO67.mjs → product-metadata-44VYAXZD.mjs} +4 -2
  126. package/dist/{product-organization-BYT4TKMZ.mjs → product-organization-FB6BVKKL.mjs} +10 -8
  127. package/dist/{product-prices-PCBMYYGV.mjs → product-prices-4ZV5EXX5.mjs} +2 -1
  128. package/dist/{product-sales-channels-UGPAXFAV.mjs → product-sales-channels-QBQDLU7Z.mjs} +3 -2
  129. package/dist/{product-shipping-profile-YDN4X6S2.mjs → product-shipping-profile-UZQSV54B.mjs} +9 -7
  130. package/dist/{product-stock-SUVEQZML.mjs → product-stock-PX5NAHH6.mjs} +7 -4
  131. package/dist/{product-tag-create-T6HVAQKN.mjs → product-tag-create-R4YSSXD6.mjs} +2 -1
  132. package/dist/{product-tag-detail-HOWUZC3P.mjs → product-tag-detail-XJEGQD7U.mjs} +12 -10
  133. package/dist/{product-tag-edit-WWQDNDRC.mjs → product-tag-edit-7JXF42HY.mjs} +2 -1
  134. package/dist/{product-tag-list-FAKSLONF.mjs → product-tag-list-GTUMQQ6V.mjs} +12 -10
  135. package/dist/{product-tag-metadata-6B56VEZU.mjs → product-tag-metadata-5QV3HMXJ.mjs} +4 -2
  136. package/dist/{product-type-detail-KN64HYUV.mjs → product-type-detail-CN74BB3Y.mjs} +8 -6
  137. package/dist/{product-type-list-6ZIWPIUH.mjs → product-type-list-MJLAGQYC.mjs} +5 -4
  138. package/dist/{product-type-metadata-F3FTI6OG.mjs → product-type-metadata-JPFREADV.mjs} +4 -2
  139. package/dist/{product-variant-detail-OUHBUY4J.mjs → product-variant-detail-BSLEUW5J.mjs} +7 -5
  140. package/dist/{product-variant-edit-NBYHDUJ5.mjs → product-variant-edit-VOW5633S.mjs} +8 -3
  141. package/dist/{product-variant-manage-inventory-items-TM3VAHBJ.mjs → product-variant-manage-inventory-items-LGRRKHT2.mjs} +1 -1
  142. package/dist/{product-variant-metadata-XDVLJYGQ.mjs → product-variant-metadata-KDSV47PE.mjs} +4 -2
  143. package/dist/{profile-detail-ROG22HHL.mjs → profile-detail-XYAQ2G36.mjs} +3 -2
  144. package/dist/{profile-edit-HSUQIQQH.mjs → profile-edit-7WD4FTRH.mjs} +31 -19
  145. package/dist/{promotion-add-campaign-7R26KU2U.mjs → promotion-add-campaign-JXBRCUXL.mjs} +3 -2
  146. package/dist/{promotion-create-UUOG52D5.mjs → promotion-create-YPX2R3ZB.mjs} +20 -7
  147. package/dist/{promotion-detail-6ZD7Z6BF.mjs → promotion-detail-VB5GZDCC.mjs} +7 -5
  148. package/dist/{promotion-edit-details-HQLYX4X4.mjs → promotion-edit-details-I5DYHQUM.mjs} +9 -1
  149. package/dist/{promotion-list-GI64LDWI.mjs → promotion-list-NAUTWXNU.mjs} +8 -7
  150. package/dist/refund-reason-create-CYHPXX2O.mjs +158 -0
  151. package/dist/refund-reason-edit-E2HDAQZI.mjs +144 -0
  152. package/dist/refund-reason-list-VBHGRLJJ.mjs +241 -0
  153. package/dist/{region-add-countries-Y4YAHDUZ.mjs → region-add-countries-6GSF4CKJ.mjs} +3 -2
  154. package/dist/{region-create-5Y3GIQBV.mjs → region-create-4C42KVB4.mjs} +30 -14
  155. package/dist/{region-detail-CWRFM6P3.mjs → region-detail-PB7EUSTD.mjs} +5 -4
  156. package/dist/{region-edit-JWQWCLM3.mjs → region-edit-CLE5VVRP.mjs} +21 -5
  157. package/dist/{region-list-FQNI7F37.mjs → region-list-52LF5S4S.mjs} +5 -4
  158. package/dist/{region-metadata-IQVB4ERU.mjs → region-metadata-NXD563F4.mjs} +4 -2
  159. package/dist/{reservation-create-7RFXWDXB.mjs → reservation-create-CBWJLYHP.mjs} +1 -1
  160. package/dist/{reservation-detail-RTGHD35L.mjs → reservation-detail-64MMXK7D.mjs} +6 -4
  161. package/dist/{reservation-list-UOC7RNRZ.mjs → reservation-list-YNG7YKG2.mjs} +5 -4
  162. package/dist/{reservation-metadata-WKJXBRLQ.mjs → reservation-metadata-4GZCEGM7.mjs} +4 -2
  163. package/dist/{reset-password-SXA6YKTJ.mjs → reset-password-ZCKXQZNQ.mjs} +1 -1
  164. package/dist/{return-reason-list-MOP7YWMZ.mjs → return-reason-list-FW7OYUOW.mjs} +8 -7
  165. package/dist/{sales-channel-add-products-OKVZJ6FI.mjs → sales-channel-add-products-EAWW7ADY.mjs} +6 -4
  166. package/dist/{sales-channel-create-3MPOMVPD.mjs → sales-channel-create-VW2UPYSI.mjs} +2 -0
  167. package/dist/{sales-channel-detail-WESBK6Q7.mjs → sales-channel-detail-3F3HFTD2.mjs} +8 -6
  168. package/dist/{sales-channel-edit-LSLAM7A4.mjs → sales-channel-edit-OA6QPIHW.mjs} +2 -0
  169. package/dist/{sales-channel-list-ADIJMXNV.mjs → sales-channel-list-R4HT6A7P.mjs} +6 -4
  170. package/dist/{sales-channel-metadata-2OQAHYB4.mjs → sales-channel-metadata-LAHTTRLQ.mjs} +4 -2
  171. package/dist/{shipping-option-type-create-3CGPGDYJ.mjs → shipping-option-type-create-IPKK5MRS.mjs} +2 -1
  172. package/dist/{shipping-option-type-detail-S23H2OGW.mjs → shipping-option-type-detail-NEQ4RA5F.mjs} +6 -4
  173. package/dist/{shipping-option-type-edit-IHE7XM6M.mjs → shipping-option-type-edit-CC64TWSB.mjs} +2 -1
  174. package/dist/{shipping-option-type-list-47GRJ6EC.mjs → shipping-option-type-list-3GTGTBK7.mjs} +8 -6
  175. package/dist/{shipping-profile-detail-FDUPDSH4.mjs → shipping-profile-detail-FS46IJZP.mjs} +3 -2
  176. package/dist/{shipping-profile-metadata-OXWOXAAR.mjs → shipping-profile-metadata-EPVLPEEM.mjs} +4 -2
  177. package/dist/{shipping-profiles-list-ZHJEUIKJ.mjs → shipping-profiles-list-QFOG5IDH.mjs} +5 -4
  178. package/dist/{store-add-currencies-R26SVHT5.mjs → store-add-currencies-W4MWOALR.mjs} +5 -2
  179. package/dist/{store-detail-4K7TW2TP.mjs → store-detail-PUOKMK4K.mjs} +7 -5
  180. package/dist/{store-edit-EU55TNFU.mjs → store-edit-3DU5MC25.mjs} +24 -12
  181. package/dist/{store-metadata-JP2CI7EF.mjs → store-metadata-JYIVRRLW.mjs} +4 -2
  182. package/dist/{tax-region-create-W3K5IFD3.mjs → tax-region-create-2GDG36NQ.mjs} +5 -4
  183. package/dist/{tax-region-detail-V2F2DONN.mjs → tax-region-detail-MQKBEBOZ.mjs} +9 -7
  184. package/dist/{tax-region-edit-CJPMYTBF.mjs → tax-region-edit-2H5ACSFG.mjs} +3 -2
  185. package/dist/{tax-region-list-NMM3LBPN.mjs → tax-region-list-SQQE2GUU.mjs} +6 -5
  186. package/dist/{tax-region-province-create-GIIU2G7K.mjs → tax-region-province-create-SBRFGWN3.mjs} +2 -2
  187. package/dist/{tax-region-province-detail-4PUQ5ADW.mjs → tax-region-province-detail-HNK2ZJWL.mjs} +8 -6
  188. package/dist/{tax-region-tax-override-create-3SCIOK4P.mjs → tax-region-tax-override-create-XZJ3EIFJ.mjs} +15 -9
  189. package/dist/{tax-region-tax-override-edit-P3QJKET3.mjs → tax-region-tax-override-edit-QHQHFI2Y.mjs} +15 -9
  190. package/dist/{tax-region-tax-rate-create-Z43M3JTQ.mjs → tax-region-tax-rate-create-JIV5FXUD.mjs} +1 -1
  191. package/dist/{tax-region-tax-rate-edit-RBF5D2MK.mjs → tax-region-tax-rate-edit-WU2ZQLZQ.mjs} +1 -1
  192. package/dist/{user-detail-VIVFFLOW.mjs → user-detail-ZIWKV6QD.mjs} +3 -2
  193. package/dist/{user-invite-W26LOOW7.mjs → user-invite-KUH4AI2L.mjs} +4 -3
  194. package/dist/{user-list-3YFYZFSK.mjs → user-list-TPBPZ7KJ.mjs} +4 -3
  195. package/dist/{user-metadata-ZURLDLGC.mjs → user-metadata-F6KRFYDW.mjs} +4 -2
  196. package/dist/{workflow-execution-detail-4R6AFFHV.mjs → workflow-execution-detail-JRJZATNU.mjs} +8 -3
  197. package/dist/{workflow-execution-list-5J3DQQRD.mjs → workflow-execution-list-5WL4L464.mjs} +4 -3
  198. package/package.json +9 -9
  199. package/src/components/common/action-menu/action-menu.tsx +3 -1
  200. package/src/components/common/json-view-section/json-view-section.tsx +4 -1
  201. package/src/components/common/sidebar-link/sidebar-link.tsx +1 -1
  202. package/src/components/common/switch-box/switch-box.tsx +2 -0
  203. package/src/components/data-grid/components/data-grid-root.tsx +9 -3
  204. package/src/components/data-grid/components/data-grid-toggleable-number-cell.tsx +2 -1
  205. package/src/components/filtering/filter-group/filter-group.tsx +5 -1
  206. package/src/components/filtering/order-by/order-by.tsx +4 -1
  207. package/src/components/forms/address-form/address-form.tsx +7 -2
  208. package/src/components/forms/metadata-form/metadata-form.tsx +6 -3
  209. package/src/components/inputs/combobox/combobox.tsx +11 -11
  210. package/src/components/inputs/country-select/country-select.tsx +1 -1
  211. package/src/components/inputs/province-select/province-select.tsx +1 -1
  212. package/src/components/layout/main-layout/main-layout.tsx +7 -5
  213. package/src/components/layout/settings-layout/settings-layout.tsx +4 -0
  214. package/src/components/layout/shell/shell.tsx +6 -6
  215. package/src/components/layout/user-menu/user-menu.tsx +12 -10
  216. package/src/components/search/search.tsx +5 -3
  217. package/src/components/table/data-table/data-table-order-by/data-table-order-by.tsx +4 -1
  218. package/src/components/table/data-table/data-table-root/data-table-root.tsx +3 -3
  219. package/src/dashboard-app/forms/form-extension-zone/form-extension-zone.tsx +1 -1
  220. package/src/dashboard-app/routes/get-route.map.tsx +36 -0
  221. package/src/hooks/api/refund-reasons.tsx +105 -10
  222. package/src/hooks/table/columns/index.ts +1 -0
  223. package/src/hooks/table/columns/use-refund-reason-table-columns.tsx +32 -0
  224. package/src/hooks/table/query/index.ts +1 -0
  225. package/src/hooks/table/query/use-refund-reason-table-query.tsx +32 -0
  226. package/src/hooks/use-document-direction.tsx +54 -0
  227. package/src/i18n/translations/$schema.json +185 -65
  228. package/src/i18n/translations/en.json +32 -0
  229. package/src/providers/i18n-provider/i18n-provider.tsx +9 -4
  230. package/src/routes/campaigns/campaign-detail/components/campaign-budget/campaign-budget.tsx +3 -3
  231. package/src/routes/campaigns/common/components/create-campaign-form-fields/create-campaign-form-fields.tsx +4 -1
  232. package/src/routes/categories/category-create/components/create-category-form/create-category-details.tsx +12 -3
  233. package/src/routes/categories/category-create/components/create-category-form/create-category-form.tsx +4 -3
  234. package/src/routes/categories/category-detail/components/category-organize-section/category-organize-section.tsx +1 -1
  235. package/src/routes/categories/category-edit/components/edit-category-form/edit-category-form.tsx +12 -3
  236. package/src/routes/inventory/inventory-create/components/inventory-create-form/inventory-create-form.tsx +3 -1
  237. package/src/routes/inventory/inventory-detail/components/inventory-item-variants/variants-section.tsx +1 -1
  238. package/src/routes/locations/location-service-zone-shipping-option-create/components/create-shipping-options-form/create-shipping-option-details-form.tsx +4 -1
  239. package/src/routes/locations/location-service-zone-shipping-option-create/components/create-shipping-options-form/create-shipping-options-form.tsx +3 -1
  240. package/src/routes/locations/location-service-zone-shipping-option-edit/components/edit-region-form/edit-shipping-option-form.tsx +7 -2
  241. package/src/routes/orders/order-allocate-items/components/order-create-fulfillment-form/order-allocate-items-form.tsx +7 -2
  242. package/src/routes/orders/order-create-claim/components/claim-create-form/claim-create-form.tsx +2 -1
  243. package/src/routes/orders/order-create-edit/components/order-edit-create-form/order-edit-create-form.tsx +2 -1
  244. package/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-create-form.tsx +2 -1
  245. package/src/routes/orders/order-create-fulfillment/components/order-create-fulfillment-form/order-create-fulfillment-form.tsx +5 -1
  246. package/src/routes/orders/order-create-refund/components/create-refund-form/create-refund-form.tsx +3 -0
  247. package/src/routes/orders/order-create-return/components/return-create-form/return-create-form.tsx +2 -1
  248. package/src/routes/orders/order-create-shipment/components/order-create-shipment-form/order-create-shipment-form.tsx +2 -0
  249. package/src/routes/orders/order-receive-return/components/order-receive-return-form/order-receive-return-form.tsx +2 -1
  250. package/src/routes/price-lists/price-list-create/components/price-list-create-form/price-list-create-form.tsx +3 -1
  251. package/src/routes/price-lists/price-list-create/components/price-list-create-form/price-list-details-form.tsx +8 -2
  252. package/src/routes/price-lists/price-list-edit/components/price-list-edit-form/edit-price-list-form.tsx +12 -3
  253. package/src/routes/price-lists/price-list-prices-add/components/price-list-prices-add-form/price-list-prices-add-form.tsx +10 -5
  254. package/src/routes/product-variants/product-variant-edit/components/product-edit-variant-form/product-edit-variant-form.tsx +4 -0
  255. package/src/routes/products/common/components/category-combobox/category-combobox.tsx +11 -11
  256. package/src/routes/products/product-create/components/product-create-form/product-create-form.tsx +3 -1
  257. package/src/routes/products/product-create-variant/components/create-product-variant-form/create-product-variant-form.tsx +10 -5
  258. package/src/routes/products/product-create-variant/components/create-product-variant-form/details-tab.tsx +6 -1
  259. package/src/routes/products/product-edit/components/edit-product-form/edit-product-form.tsx +7 -2
  260. package/src/routes/products/product-media/components/product-media-gallery/product-media-gallery.tsx +2 -2
  261. package/src/routes/products/product-stock/hooks/use-product-stock-columns.tsx +2 -1
  262. package/src/routes/profile/profile-edit/components/edit-profile-form/edit-profile-form.tsx +9 -3
  263. package/src/routes/promotions/common/edit-rules/components/rules-form-field/rules-form-field.tsx +4 -0
  264. package/src/routes/promotions/promotion-add-campaign/components/add-campaign-promotion-form/add-campaign-promotion-form.tsx +8 -2
  265. package/src/routes/promotions/promotion-create/components/create-promotion-form/create-promotion-form.tsx +12 -3
  266. package/src/routes/promotions/promotion-edit-details/components/edit-promotion-form/edit-promotion-details-form.tsx +6 -1
  267. package/src/routes/refund-reasons/refund-reason-create/components/refund-reason-create-form/index.ts +1 -0
  268. package/src/routes/refund-reasons/refund-reason-create/components/refund-reason-create-form/refund-reason-create-form.tsx +131 -0
  269. package/src/routes/refund-reasons/refund-reason-create/index.ts +1 -0
  270. package/src/routes/refund-reasons/refund-reason-create/refund-reason-create.tsx +10 -0
  271. package/src/routes/refund-reasons/refund-reason-edit/components/refund-reason-edit-form/index.ts +1 -0
  272. package/src/routes/refund-reasons/refund-reason-edit/components/refund-reason-edit-form/refund-reason-edit-form.tsx +119 -0
  273. package/src/routes/refund-reasons/refund-reason-edit/index.ts +1 -0
  274. package/src/routes/refund-reasons/refund-reason-edit/refund-reason-edit.tsx +33 -0
  275. package/src/routes/refund-reasons/refund-reason-list/components/refund-reason-list-table/index.ts +1 -0
  276. package/src/routes/refund-reasons/refund-reason-list/components/refund-reason-list-table/refund-reason-list-table.tsx +130 -0
  277. package/src/routes/refund-reasons/refund-reason-list/index.ts +2 -0
  278. package/src/routes/refund-reasons/refund-reason-list/loader.ts +16 -0
  279. package/src/routes/refund-reasons/refund-reason-list/refund-reason-list.tsx +21 -0
  280. package/src/routes/regions/region-create/components/create-region-form/create-region-form.tsx +11 -2
  281. package/src/routes/regions/region-edit/components/edit-region-form/edit-region-form.tsx +11 -2
  282. package/src/routes/reservations/reservation-detail/components/edit-reservation/components/edit-reservation-form.tsx +3 -1
  283. package/src/routes/sales-channels/sales-channel-create/components/create-sales-channel-form/create-sales-channel-form.tsx +2 -0
  284. package/src/routes/sales-channels/sales-channel-edit/components/edit-sales-channel-form/edit-sales-channel-form.tsx +2 -0
  285. package/src/routes/store/store-add-currencies/components/add-currencies-form/add-currencies-form.tsx +2 -0
  286. package/src/routes/store/store-edit/components/edit-store-form/edit-store-form.tsx +7 -2
  287. package/src/routes/tax-regions/tax-region-tax-override-create/components/tax-region-override-create-form/tax-region-tax-override-create.tsx +3 -1
  288. 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
  289. package/src/routes/workflow-executions/workflow-execution-detail/components/workflow-execution-timeline-section/workflow-execution-timeline-section.tsx +3 -2
@@ -11,6 +11,7 @@ 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 { useDocumentDirection } from "../../../../../hooks/use-document-direction"
14
15
 
15
16
  type EditPromotionFormProps = {
16
17
  promotion: AdminPromotion
@@ -43,7 +44,7 @@ export const AddCampaignPromotionFields = ({
43
44
  })
44
45
 
45
46
  const selectedCampaign = campaigns.find((c) => c.id === watchCampaignId)
46
-
47
+ const direction = useDocumentDirection()
47
48
  return (
48
49
  <div className="flex flex-col gap-y-8">
49
50
  <Form.Field
@@ -56,6 +57,7 @@ export const AddCampaignPromotionFields = ({
56
57
 
57
58
  <Form.Control>
58
59
  <RadioGroup
60
+ dir={direction}
59
61
  className="grid grid-cols-1 gap-3"
60
62
  {...field}
61
63
  value={field.value}
@@ -105,7 +107,11 @@ export const AddCampaignPromotionFields = ({
105
107
  </Form.Label>
106
108
 
107
109
  <Form.Control>
108
- <Select onValueChange={onChange} {...field}>
110
+ <Select
111
+ dir={direction}
112
+ onValueChange={onChange}
113
+ {...field}
114
+ >
109
115
  <Select.Trigger ref={ref}>
110
116
  <Select.Value />
111
117
  </Select.Trigger>
@@ -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"
@@ -0,0 +1,130 @@
1
+ import { PencilSquare, Trash } from "@medusajs/icons"
2
+ import { HttpTypes } from "@medusajs/types"
3
+ import { Container, createDataTableColumnHelper, toast, usePrompt, } from "@medusajs/ui"
4
+ import { keepPreviousData } from "@tanstack/react-query"
5
+ import { useCallback, useMemo } from "react"
6
+ import { useTranslation } from "react-i18next"
7
+ import { useNavigate } from "react-router-dom"
8
+ import { DataTable } from "../../../../../components/data-table"
9
+ import { useDeleteRefundReasonLazy, useRefundReasons, } from "../../../../../hooks/api"
10
+ import { useRefundReasonTableColumns } from "../../../../../hooks/table/columns"
11
+ import { useRefundReasonTableQuery } from "../../../../../hooks/table/query"
12
+
13
+ const PAGE_SIZE = 20
14
+
15
+ export const RefundReasonListTable = () => {
16
+ const { t } = useTranslation()
17
+ const { searchParams } = useRefundReasonTableQuery({
18
+ pageSize: PAGE_SIZE,
19
+ })
20
+
21
+ const { refund_reasons, count, isPending, isError, error } = useRefundReasons(
22
+ searchParams,
23
+ {
24
+ placeholderData: keepPreviousData,
25
+ }
26
+ )
27
+
28
+ const columns = useColumns()
29
+
30
+ if (isError) {
31
+ throw error
32
+ }
33
+
34
+ return (
35
+ <Container className="divide-y px-0 py-0">
36
+ <DataTable
37
+ data={refund_reasons}
38
+ columns={columns}
39
+ rowCount={count}
40
+ pageSize={PAGE_SIZE}
41
+ getRowId={(row) => row.id}
42
+ heading={t("refundReasons.domain")}
43
+ subHeading={t("refundReasons.subtitle")}
44
+ emptyState={{
45
+ empty: {
46
+ heading: t("general.noRecordsMessage"),
47
+ },
48
+ filtered: {
49
+ heading: t("general.noRecordsMessage"),
50
+ description: t("general.noRecordsMessageFiltered"),
51
+ },
52
+ }}
53
+ actions={[
54
+ {
55
+ label: t("actions.create"),
56
+ to: "create",
57
+ },
58
+ ]}
59
+ isLoading={isPending}
60
+ enableSearch={true}
61
+ />
62
+ </Container>
63
+ )
64
+ }
65
+
66
+ const columnHelper = createDataTableColumnHelper<HttpTypes.AdminRefundReason>()
67
+
68
+ const useColumns = () => {
69
+ const { t } = useTranslation()
70
+ const prompt = usePrompt()
71
+ const navigate = useNavigate()
72
+ const base = useRefundReasonTableColumns()
73
+
74
+ const { mutateAsync } = useDeleteRefundReasonLazy()
75
+
76
+ const handleDelete = useCallback(
77
+ async (refundReason: HttpTypes.AdminRefundReason) => {
78
+ const confirm = await prompt({
79
+ title: t("general.areYouSure"),
80
+ description: t("refundReasons.delete.confirmation", {
81
+ label: refundReason.label,
82
+ }),
83
+ confirmText: t("actions.delete"),
84
+ cancelText: t("actions.cancel"),
85
+ })
86
+
87
+ if (!confirm) {
88
+ return
89
+ }
90
+
91
+ await mutateAsync(refundReason.id, {
92
+ onSuccess: () => {
93
+ toast.success(t("refundReasons.delete.successToast"))
94
+ },
95
+ onError: (e) => {
96
+ toast.error(e.message)
97
+ },
98
+ })
99
+ },
100
+ [t, prompt, mutateAsync]
101
+ )
102
+
103
+ return useMemo(
104
+ () => [
105
+ ...base,
106
+ columnHelper.action({
107
+ actions: (ctx) => [
108
+ [
109
+ {
110
+ icon: <PencilSquare />,
111
+ label: t("actions.edit"),
112
+ onClick: () =>
113
+ navigate(
114
+ `/settings/refund-reasons/${ctx.row.original.id}/edit`
115
+ ),
116
+ },
117
+ ],
118
+ [
119
+ {
120
+ icon: <Trash />,
121
+ label: t("actions.delete"),
122
+ onClick: () => handleDelete(ctx.row.original),
123
+ },
124
+ ],
125
+ ],
126
+ }),
127
+ ],
128
+ [base, handleDelete, navigate, t]
129
+ )
130
+ }
@@ -0,0 +1,2 @@
1
+ export { refundReasonListLoader as loader } from "./loader"
2
+ export { RefundReasonList as Component } from "./refund-reason-list"
@@ -0,0 +1,16 @@
1
+ import { refundReasonsQueryKeys } from "../../../hooks/api"
2
+ import { sdk } from "../../../lib/client"
3
+ import { queryClient } from "../../../lib/query-client"
4
+
5
+ const refundReasonListQuery = () => ({
6
+ queryKey: refundReasonsQueryKeys.list(),
7
+ queryFn: async () => sdk.admin.refundReason.list(),
8
+ })
9
+
10
+ export const refundReasonListLoader = async () => {
11
+ const query = refundReasonListQuery()
12
+ return (
13
+ queryClient.getQueryData(query.queryKey) ??
14
+ (await queryClient.fetchQuery(query))
15
+ )
16
+ }
@@ -0,0 +1,21 @@
1
+ import { SingleColumnPage } from "../../../components/layout/pages"
2
+ import { useExtension } from "../../../providers/extension-provider"
3
+ import { RefundReasonListTable } from "./components/refund-reason-list-table"
4
+
5
+ export const RefundReasonList = () => {
6
+ const { getWidgets } = useExtension()
7
+
8
+ return (
9
+ <SingleColumnPage
10
+ showMetadata={false}
11
+ showJSON={false}
12
+ hasOutlet
13
+ widgets={{
14
+ after: getWidgets("refund_reason.list.after"),
15
+ before: getWidgets("refund_reason.list.before"),
16
+ }}
17
+ >
18
+ <RefundReasonListTable />
19
+ </SingleColumnPage>
20
+ )
21
+ }