@medusajs/dashboard 2.12.2-snapshot-20251209184934 → 2.12.2

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 (228) hide show
  1. package/dist/{add-campaign-promotions-PHAHMGXP.mjs → add-campaign-promotions-JQKPED4U.mjs} +2 -2
  2. package/dist/{adjust-inventory-I5VYMAI4.mjs → adjust-inventory-2MFA656V.mjs} +2 -2
  3. package/dist/{api-key-management-create-CVRFY4PL.mjs → api-key-management-create-ZUVF3SLR.mjs} +2 -2
  4. package/dist/{api-key-management-detail-APCZDVLI.mjs → api-key-management-detail-AWFAZIS3.mjs} +4 -4
  5. package/dist/{api-key-management-edit-JMU3WEPX.mjs → api-key-management-edit-42HNUSXL.mjs} +2 -2
  6. package/dist/{api-key-management-sales-channels-4OU5VGIG.mjs → api-key-management-sales-channels-7FVABESO.mjs} +2 -2
  7. package/dist/app.css +0 -4
  8. package/dist/app.js +4811 -5729
  9. package/dist/app.mjs +4 -4
  10. package/dist/{campaign-budget-edit-B5MSE26J.mjs → campaign-budget-edit-6DMZGUCI.mjs} +2 -2
  11. package/dist/{campaign-configuration-QOE3D2BE.mjs → campaign-configuration-UNFRB5HR.mjs} +2 -2
  12. package/dist/{campaign-create-FJOECKGT.mjs → campaign-create-QXG7PD3S.mjs} +3 -3
  13. package/dist/{campaign-detail-ALXFJ4HV.mjs → campaign-detail-63VVZZRR.mjs} +3 -3
  14. package/dist/{campaign-edit-K2POQH7M.mjs → campaign-edit-HN4US7DV.mjs} +2 -2
  15. package/dist/{categories-metadata-JQP6TFX3.mjs → categories-metadata-MWCZ2DYL.mjs} +6 -6
  16. package/dist/{category-create-L2KJCHPO.mjs → category-create-FFIBWXAH.mjs} +2 -2
  17. package/dist/{category-detail-VGMUHRD2.mjs → category-detail-XL6NRY6P.mjs} +6 -22
  18. package/dist/{category-edit-U6SLZSAX.mjs → category-edit-74MZ6TXN.mjs} +2 -2
  19. package/dist/{category-list-W7JW4PWA.mjs → category-list-AH2EGTI7.mjs} +1 -16
  20. package/dist/{category-organize-LLSVAO3U.mjs → category-organize-B6EFBFKB.mjs} +2 -2
  21. package/dist/{category-products-26UAVYOO.mjs → category-products-STYU4DUG.mjs} +6 -6
  22. package/dist/{chunk-RKUXD6IZ.mjs → chunk-25UWYEJX.mjs} +1 -1
  23. package/dist/{chunk-BZKI5J2M.mjs → chunk-3YPRDSZ6.mjs} +1 -1
  24. package/dist/{chunk-D6UW7URG.mjs → chunk-42OOM4DJ.mjs} +6 -23
  25. package/dist/{chunk-7GJ5T4R3.mjs → chunk-4G2UHUXX.mjs} +2 -2
  26. package/dist/{chunk-ATP7TOOL.mjs → chunk-4YAPXPLM.mjs} +1 -1
  27. package/dist/{chunk-DCYB22MH.mjs → chunk-AMOGGDOW.mjs} +1 -1
  28. package/dist/{chunk-HPPR6PXK.mjs → chunk-CZFLKMYE.mjs} +1 -1
  29. package/dist/{chunk-N3SAXQVR.mjs → chunk-D4J3CEWH.mjs} +2 -2
  30. package/dist/{chunk-F5I264Q3.mjs → chunk-EQTBJSBZ.mjs} +0 -3
  31. package/dist/{chunk-UEJOY5PF.mjs → chunk-EXDBX4YX.mjs} +3 -3
  32. package/dist/{chunk-I6C52ARQ.mjs → chunk-HWKLNKOY.mjs} +1 -1
  33. package/dist/{chunk-3ESSTIV2.mjs → chunk-JUVGXLY5.mjs} +12 -187
  34. package/dist/{chunk-LCEKY54O.mjs → chunk-KF7ZWW4K.mjs} +2 -2
  35. package/dist/{chunk-YIOBBZUB.mjs → chunk-L4NOVTH5.mjs} +2 -2
  36. package/dist/{chunk-K43NZTDO.mjs → chunk-LHNU4DYZ.mjs} +2 -2
  37. package/dist/{chunk-MSBISMBI.mjs → chunk-PNPT4W2F.mjs} +1 -1
  38. package/dist/{chunk-6GLZIACV.mjs → chunk-Q6MSICBU.mjs} +1 -1
  39. package/dist/{chunk-AE6R7KDB.mjs → chunk-Q6ULXDU6.mjs} +180 -230
  40. package/dist/{chunk-PS5T2R6J.mjs → chunk-UKECZ5PA.mjs} +3 -3
  41. package/dist/{chunk-CFQNWTZV.mjs → chunk-UM4OIJZ3.mjs} +1 -1
  42. package/dist/{chunk-R2EBIESZ.mjs → chunk-XTQ7UFA3.mjs} +1 -1
  43. package/dist/{chunk-WVA4O7QS.mjs → chunk-XXBP2Z5M.mjs} +1 -1
  44. package/dist/{chunk-AFXODJBA.mjs → chunk-YV4ANEZF.mjs} +1 -1
  45. package/dist/{collection-add-products-42BUUEGQ.mjs → collection-add-products-ESZEWJ46.mjs} +6 -6
  46. package/dist/{collection-create-4JX4YE47.mjs → collection-create-DCRW344Z.mjs} +2 -2
  47. package/dist/{collection-detail-JLSDQPJA.mjs → collection-detail-K6IVWLIL.mjs} +5 -20
  48. package/dist/{collection-edit-MXL35GQQ.mjs → collection-edit-UNFEW6HT.mjs} +2 -2
  49. package/dist/{collection-list-CSUDRQPF.mjs → collection-list-BL7A7SEI.mjs} +5 -20
  50. package/dist/{collection-metadata-NHI7Q5PP.mjs → collection-metadata-4EYMP7BJ.mjs} +6 -6
  51. package/dist/{customer-create-IA56MXE6.mjs → customer-create-XCLZENJS.mjs} +2 -2
  52. package/dist/{customer-create-address-27M25HTO.mjs → customer-create-address-4HZUIAM7.mjs} +2 -2
  53. package/dist/{customer-detail-TQBDVGSS.mjs → customer-detail-KAS23VQF.mjs} +3 -3
  54. package/dist/{customer-edit-XQ5NWIVX.mjs → customer-edit-BW5GVTQI.mjs} +2 -2
  55. package/dist/{customer-group-add-customers-FRJP6RCY.mjs → customer-group-add-customers-HUGHHMU6.mjs} +2 -2
  56. package/dist/{customer-group-create-RY4FVEIW.mjs → customer-group-create-6YV7W6TI.mjs} +2 -2
  57. package/dist/{customer-group-detail-VZ2LCJTM.mjs → customer-group-detail-NDATWX3X.mjs} +3 -3
  58. package/dist/{customer-group-edit-MQWARIQZ.mjs → customer-group-edit-7NXU34BQ.mjs} +2 -2
  59. package/dist/{customer-group-list-TMPPZ5UL.mjs → customer-group-list-IASP3QHT.mjs} +3 -3
  60. package/dist/{customer-group-metadata-JQJRLLXG.mjs → customer-group-metadata-WK2BGEGO.mjs} +3 -3
  61. package/dist/{customer-metadata-HN2DYD5I.mjs → customer-metadata-ZUWCUTM7.mjs} +3 -3
  62. package/dist/{customers-add-customer-group-U6N2EYQP.mjs → customers-add-customer-group-UCCFXRXX.mjs} +5 -5
  63. package/dist/{edit-inventory-item-RATTNP2Y.mjs → edit-inventory-item-Y5W6VTHJ.mjs} +2 -2
  64. package/dist/{edit-inventory-item-attributes-JHH5GSNL.mjs → edit-inventory-item-attributes-NAAZDFEJ.mjs} +2 -2
  65. package/dist/{edit-reservation-UZCSNLHY.mjs → edit-reservation-2UD4RZJX.mjs} +2 -2
  66. package/dist/{edit-rules-7TPOBXFZ.mjs → edit-rules-P5A2TLLU.mjs} +5 -5
  67. package/dist/en.json +0 -12
  68. package/dist/{inventory-create-2Y5QC3OA.mjs → inventory-create-KXFY3TQL.mjs} +6 -6
  69. package/dist/{inventory-detail-ZQCVV4RJ.mjs → inventory-detail-ZAZCDL6E.mjs} +3 -3
  70. package/dist/{inventory-metadata-UVG65D5W.mjs → inventory-metadata-4HGPMO4B.mjs} +6 -6
  71. package/dist/{inventory-stock-2ERQRZLC.mjs → inventory-stock-KFPSSUND.mjs} +7 -7
  72. package/dist/{invite-WISVECE2.mjs → invite-VKHAAF4Z.mjs} +2 -3
  73. package/dist/{location-create-WZ43K3W7.mjs → location-create-RPLEXUZR.mjs} +2 -2
  74. package/dist/{location-detail-SFDVGAXL.mjs → location-detail-YFDGVGAX.mjs} +5 -7
  75. package/dist/{location-edit-VCS7GVWQ.mjs → location-edit-L4ISEQHX.mjs} +2 -2
  76. package/dist/{location-fulfillment-providers-P6H2RGA5.mjs → location-fulfillment-providers-EGPKJDEL.mjs} +6 -6
  77. package/dist/{location-list-UK3WRDL5.mjs → location-list-Z42ZYHUF.mjs} +2 -3
  78. package/dist/{location-sales-channels-NKNM5TQK.mjs → location-sales-channels-YMABMECM.mjs} +2 -2
  79. package/dist/{location-service-zone-create-3FWF3DG5.mjs → location-service-zone-create-NSMZCD5N.mjs} +3 -3
  80. package/dist/{location-service-zone-edit-KHHMSPXD.mjs → location-service-zone-edit-6OUAFEZD.mjs} +2 -2
  81. package/dist/{location-service-zone-manage-areas-YFEAZUUN.mjs → location-service-zone-manage-areas-SEC6LKCZ.mjs} +3 -3
  82. package/dist/{location-service-zone-shipping-option-create-5DDMRKOC.mjs → location-service-zone-shipping-option-create-LEPP6ZKF.mjs} +7 -7
  83. package/dist/{location-service-zone-shipping-option-edit-QCURIIGL.mjs → location-service-zone-shipping-option-edit-QS6HTWST.mjs} +2 -2
  84. package/dist/{location-service-zone-shipping-option-pricing-UPEPQWLW.mjs → location-service-zone-shipping-option-pricing-23QLNSBT.mjs} +4 -4
  85. package/dist/{login-7SC4ZVX5.mjs → login-IQH2HKVZ.mjs} +5 -6
  86. package/dist/{manage-locations-MLNMPQ5I.mjs → manage-locations-JD6FSBOT.mjs} +2 -2
  87. package/dist/{order-allocate-items-I5KMPZY5.mjs → order-allocate-items-3DDI4V3W.mjs} +2 -2
  88. package/dist/{order-create-claim-RNAQKT2N.mjs → order-create-claim-WHQYED4S.mjs} +5 -5
  89. package/dist/{order-create-edit-SNNGAEC3.mjs → order-create-edit-RAWEHXCU.mjs} +5 -5
  90. package/dist/{order-create-exchange-OGI2AOM3.mjs → order-create-exchange-P73XCSR7.mjs} +5 -5
  91. package/dist/{order-create-fulfillment-O77TLXZZ.mjs → order-create-fulfillment-YOL4SA4B.mjs} +5 -5
  92. package/dist/{order-create-refund-TA6UIOZ2.mjs → order-create-refund-NMP4UN7F.mjs} +5 -5
  93. package/dist/{order-create-return-LTGYASZZ.mjs → order-create-return-QGXWSPMP.mjs} +2 -2
  94. package/dist/{order-create-shipment-6WZM3GL3.mjs → order-create-shipment-UTNVNIGA.mjs} +5 -5
  95. package/dist/{order-detail-6E3BT4AZ.mjs → order-detail-4EFWM3R4.mjs} +3 -3
  96. package/dist/{order-edit-billing-address-6BPGH6UU.mjs → order-edit-billing-address-WBSP4RAG.mjs} +5 -5
  97. package/dist/{order-edit-email-WK6ROFAD.mjs → order-edit-email-CBAUBHW7.mjs} +5 -5
  98. package/dist/{order-edit-shipping-address-4V6MN24B.mjs → order-edit-shipping-address-2TEO4ZRQ.mjs} +5 -5
  99. package/dist/{order-metadata-LEMDXDSV.mjs → order-metadata-66OZ5ZMN.mjs} +6 -6
  100. package/dist/{order-receive-return-Q65ZRAPJ.mjs → order-receive-return-2LQFBB4G.mjs} +5 -5
  101. package/dist/{order-request-transfer-KODTTNE7.mjs → order-request-transfer-IH3PQCCL.mjs} +5 -5
  102. package/dist/{price-list-configuration-RDE5YPJK.mjs → price-list-configuration-OLIGCEN5.mjs} +3 -3
  103. package/dist/{price-list-create-GFB6ASPT.mjs → price-list-create-3DCACAZ4.mjs} +9 -9
  104. package/dist/{price-list-detail-VG7YTBLM.mjs → price-list-detail-2IW4SDOL.mjs} +4 -4
  105. package/dist/{price-list-edit-LDF52VQU.mjs → price-list-edit-B3LQZSW6.mjs} +2 -2
  106. package/dist/{price-list-prices-add-4QGLHLRI.mjs → price-list-prices-add-B5LQAR7J.mjs} +8 -8
  107. package/dist/{price-list-prices-edit-PROYTJF5.mjs → price-list-prices-edit-MAR2T4LM.mjs} +4 -4
  108. package/dist/{product-attributes-ADDY3FXA.mjs → product-attributes-DY4HDYTW.mjs} +6 -6
  109. package/dist/{product-create-FZOWZNUP.mjs → product-create-EMK2FPWY.mjs} +7 -7
  110. package/dist/{product-create-option-UMZKRNTC.mjs → product-create-option-GEGQNSMQ.mjs} +2 -2
  111. package/dist/{product-create-variant-TXLZHYFS.mjs → product-create-variant-UHUBSUIV.mjs} +6 -6
  112. package/dist/{product-detail-VXKYKOMR.mjs → product-detail-M3PFNUX7.mjs} +10 -52
  113. package/dist/{product-edit-52CPZNCH.mjs → product-edit-ULKEZHDA.mjs} +6 -6
  114. package/dist/{product-edit-option-ZMTSLRG5.mjs → product-edit-option-HBIOBQTS.mjs} +2 -2
  115. package/dist/{product-export-ZMWNVJL7.mjs → product-export-X7MNQLBY.mjs} +6 -6
  116. package/dist/{product-image-variants-edit-OB4NVQKS.mjs → product-image-variants-edit-RR5RXMSX.mjs} +5 -5
  117. package/dist/{product-import-X7YB4W4N.mjs → product-import-OJWU5AHL.mjs} +5 -5
  118. package/dist/{product-list-TIVHW3ZJ.mjs → product-list-FAVJ2A46.mjs} +5 -17
  119. package/dist/{product-media-ULNJ7JJY.mjs → product-media-EGK66SRX.mjs} +2 -2
  120. package/dist/{product-metadata-DPMEFUWJ.mjs → product-metadata-VRLBFMKG.mjs} +6 -6
  121. package/dist/{product-organization-3RJVV3K2.mjs → product-organization-4PH2ZOSM.mjs} +6 -6
  122. package/dist/{product-prices-OO7OYVO6.mjs → product-prices-WQDE4XYT.mjs} +3 -3
  123. package/dist/{product-sales-channels-2PN4L7II.mjs → product-sales-channels-ZICOOOKY.mjs} +2 -2
  124. package/dist/{product-shipping-profile-45XXB7FM.mjs → product-shipping-profile-KIDRTPWA.mjs} +2 -2
  125. package/dist/{product-stock-45QDRJSR.mjs → product-stock-EVY7L4ID.mjs} +7 -7
  126. package/dist/{product-tag-create-L4Y3ZJVU.mjs → product-tag-create-UOQUAMYT.mjs} +5 -5
  127. package/dist/{product-tag-detail-IE3W2UVN.mjs → product-tag-detail-L2J3IXMC.mjs} +6 -21
  128. package/dist/{product-tag-edit-OHJGEEDL.mjs → product-tag-edit-AKATEM3L.mjs} +5 -5
  129. package/dist/{product-tag-list-QWNKVQAP.mjs → product-tag-list-FUQN7YF5.mjs} +6 -21
  130. package/dist/{product-tag-metadata-PCA3HTLU.mjs → product-tag-metadata-UEOSDTSK.mjs} +6 -6
  131. package/dist/{product-type-create-KHSNCQCV.mjs → product-type-create-HBDROTGB.mjs} +2 -2
  132. package/dist/{product-type-detail-XZH6HETD.mjs → product-type-detail-2KUITRE3.mjs} +5 -20
  133. package/dist/{product-type-edit-3LRBWZ3S.mjs → product-type-edit-H3JCMVRV.mjs} +2 -2
  134. package/dist/{product-type-list-XU6DADMO.mjs → product-type-list-QX7QC6RI.mjs} +1 -16
  135. package/dist/{product-type-metadata-5BPLWPOK.mjs → product-type-metadata-7E66UACZ.mjs} +6 -6
  136. package/dist/{product-variant-detail-7MIRJILL.mjs → product-variant-detail-JHH3ICCS.mjs} +5 -21
  137. package/dist/{product-variant-edit-JWKDUIEU.mjs → product-variant-edit-IIT3QIHD.mjs} +5 -5
  138. package/dist/{product-variant-manage-inventory-items-OGM64KYP.mjs → product-variant-manage-inventory-items-BLHCH6QD.mjs} +2 -2
  139. package/dist/{product-variant-media-C3KCFODU.mjs → product-variant-media-KLSUISGH.mjs} +2 -2
  140. package/dist/{product-variant-metadata-3CZ67ORB.mjs → product-variant-metadata-UXHU6PFJ.mjs} +6 -6
  141. package/dist/{profile-edit-YZCUGEXF.mjs → profile-edit-5EEKOEO5.mjs} +2 -2
  142. package/dist/{promotion-add-campaign-DO67QK6M.mjs → promotion-add-campaign-JRTM7WBR.mjs} +3 -3
  143. package/dist/{promotion-create-MXMWVA5U.mjs → promotion-create-KPDZWJWC.mjs} +7 -7
  144. package/dist/{promotion-detail-TZIERYRJ.mjs → promotion-detail-SQARSSGK.mjs} +3 -3
  145. package/dist/{promotion-edit-details-6BSOOWQN.mjs → promotion-edit-details-AREFQ6O5.mjs} +2 -2
  146. package/dist/{refund-reason-create-FUW7HCCF.mjs → refund-reason-create-IPZKKRQM.mjs} +5 -5
  147. package/dist/{refund-reason-edit-N3PKOFRF.mjs → refund-reason-edit-LB66UGH7.mjs} +5 -5
  148. package/dist/{refund-reason-list-O5ZXIXE5.mjs → refund-reason-list-GOKBW63P.mjs} +3 -3
  149. package/dist/{region-add-countries-7U4J5RW6.mjs → region-add-countries-AFWXMQ6W.mjs} +2 -2
  150. package/dist/{region-create-IUGX33M5.mjs → region-create-YC4VZ4AS.mjs} +2 -2
  151. package/dist/{region-edit-WAU347DP.mjs → region-edit-5GO25GDF.mjs} +2 -2
  152. package/dist/{region-metadata-IADU5YNP.mjs → region-metadata-S7BUDXPD.mjs} +6 -6
  153. package/dist/{reservation-create-C6HTEF3R.mjs → reservation-create-Z2SUMBGT.mjs} +2 -2
  154. package/dist/{reservation-detail-RLP2F23R.mjs → reservation-detail-ZL4WMT4A.mjs} +3 -3
  155. package/dist/{reservation-metadata-2PRGO5QF.mjs → reservation-metadata-QVEVN2FO.mjs} +6 -6
  156. package/dist/{reset-password-XKX43KUT.mjs → reset-password-5TAYQEUV.mjs} +2 -3
  157. package/dist/{return-reason-create-HM54WRJY.mjs → return-reason-create-NXWDC6AC.mjs} +2 -2
  158. package/dist/{return-reason-edit-VSIRHVQ6.mjs → return-reason-edit-M6IKNNKB.mjs} +2 -2
  159. package/dist/{sales-channel-add-products-O6RKQB6J.mjs → sales-channel-add-products-LCB33I6H.mjs} +6 -6
  160. package/dist/{sales-channel-create-4XLJDVJO.mjs → sales-channel-create-E7BDTPWD.mjs} +2 -2
  161. package/dist/{sales-channel-detail-25VU2BIX.mjs → sales-channel-detail-RUULD6Q7.mjs} +4 -4
  162. package/dist/{sales-channel-edit-UZGSXD5X.mjs → sales-channel-edit-HMPA3Y3L.mjs} +2 -2
  163. package/dist/{sales-channel-list-UV44SKO6.mjs → sales-channel-list-5TFALQQS.mjs} +3 -3
  164. package/dist/{sales-channel-metadata-JODUF46V.mjs → sales-channel-metadata-6WSCB67B.mjs} +6 -6
  165. package/dist/{shipping-option-type-create-SDJBL6L4.mjs → shipping-option-type-create-IMF4RHSO.mjs} +5 -5
  166. package/dist/{shipping-option-type-detail-ZPUV6VUQ.mjs → shipping-option-type-detail-PHIHWW6G.mjs} +4 -4
  167. package/dist/{shipping-option-type-edit-J2LDCKOC.mjs → shipping-option-type-edit-SG4JQZGW.mjs} +5 -5
  168. package/dist/{shipping-option-type-list-DZY43TDW.mjs → shipping-option-type-list-RB2EKPWN.mjs} +4 -4
  169. package/dist/{shipping-profile-create-26R64I3Z.mjs → shipping-profile-create-752TMBBE.mjs} +2 -2
  170. package/dist/{shipping-profile-metadata-ZWYRX3I7.mjs → shipping-profile-metadata-M3DVX5KX.mjs} +6 -6
  171. package/dist/{store-add-currencies-ZFS3WZHG.mjs → store-add-currencies-3VMLZ6KB.mjs} +2 -2
  172. package/dist/{store-add-locales-ZUQOMLGE.mjs → store-add-locales-WAHERXN3.mjs} +4 -4
  173. package/dist/{store-detail-ZQW7H3CD.mjs → store-detail-EY2ZQKZO.mjs} +3 -3
  174. package/dist/{store-edit-AB5CDUTK.mjs → store-edit-EPAHLLKP.mjs} +2 -2
  175. package/dist/{store-metadata-VJRBOHHB.mjs → store-metadata-7UPGGK7F.mjs} +6 -6
  176. package/dist/{tax-region-create-X6TI7GS2.mjs → tax-region-create-LQZKNYTD.mjs} +5 -5
  177. package/dist/{tax-region-detail-RWVU53ZI.mjs → tax-region-detail-AVG3XLVL.mjs} +12 -13
  178. package/dist/{tax-region-edit-EAS5YZS4.mjs → tax-region-edit-XR3ABTNA.mjs} +5 -5
  179. package/dist/{tax-region-list-4MQMCMKY.mjs → tax-region-list-BXZBUXRJ.mjs} +3 -4
  180. package/dist/{tax-region-province-create-GKJ7WMRS.mjs → tax-region-province-create-5JP3PVID.mjs} +2 -2
  181. package/dist/{tax-region-province-detail-QAJFG3C4.mjs → tax-region-province-detail-I7FF7NBE.mjs} +11 -12
  182. package/dist/{tax-region-tax-override-create-UNHHY3TK.mjs → tax-region-tax-override-create-H6LWWOPU.mjs} +7 -7
  183. package/dist/{tax-region-tax-override-edit-EEOWMLFA.mjs → tax-region-tax-override-edit-SZWBWRCA.mjs} +8 -8
  184. package/dist/{tax-region-tax-rate-create-MECFGVPL.mjs → tax-region-tax-rate-create-O2SDSXCH.mjs} +2 -2
  185. package/dist/{tax-region-tax-rate-edit-7DYSPYOD.mjs → tax-region-tax-rate-edit-W62VEVKT.mjs} +2 -2
  186. package/dist/{user-edit-ZBB4RMTP.mjs → user-edit-LXQCTDGA.mjs} +2 -2
  187. package/dist/{user-invite-XB635N26.mjs → user-invite-2OKB7SCF.mjs} +2 -2
  188. package/dist/{user-metadata-EQIFAEGE.mjs → user-metadata-X36GKJ47.mjs} +6 -6
  189. package/dist/{workflow-execution-detail-XURIJZJ6.mjs → workflow-execution-detail-P6H5AUWI.mjs} +3 -3
  190. package/package.json +9 -9
  191. package/src/components/common/icon-avatar/icon-avatar.tsx +0 -4
  192. package/src/components/layout/settings-layout/settings-layout.tsx +1 -11
  193. package/src/components/modals/route-focus-modal/route-focus-modal.tsx +3 -8
  194. package/src/components/modals/route-modal-form/route-modal-form.tsx +1 -6
  195. package/src/components/modals/route-modal-provider/route-provider.tsx +4 -16
  196. package/src/dashboard-app/routes/get-route.map.tsx +0 -20
  197. package/src/hooks/api/index.ts +0 -1
  198. package/src/hooks/api/product-variants.tsx +1 -7
  199. package/src/i18n/translations/$schema.json +0 -36
  200. package/src/i18n/translations/en.json +0 -12
  201. package/src/i18n/translations/es.json +0 -12
  202. package/src/routes/categories/category-detail/components/category-general-section/category-general-section.tsx +1 -16
  203. package/src/routes/categories/category-list/components/category-list-table/category-list-table.tsx +1 -16
  204. package/src/routes/collections/collection-detail/components/collection-general-section/collection-general-section.tsx +1 -16
  205. package/src/routes/collections/collection-list/components/collection-list-table/collection-row-actions.tsx +1 -16
  206. package/src/routes/product-tags/product-tag-detail/components/product-tag-general-section/product-tag-general-section.tsx +1 -16
  207. package/src/routes/product-tags/product-tag-list/components/product-tag-list-table/product-tag-list-table.tsx +1 -16
  208. package/src/routes/product-types/product-type-detail/components/product-type-general-section/product-type-general-section.tsx +1 -16
  209. package/src/routes/product-types/product-type-list/components/product-type-list-table/product-table-row-actions.tsx +1 -16
  210. package/src/routes/product-variants/product-variant-detail/components/variant-general-section/variant-general-section.tsx +1 -16
  211. package/src/routes/products/product-detail/components/product-general-section/product-general-section.tsx +1 -16
  212. package/src/routes/products/product-detail/components/product-variant-section/product-variant-section.tsx +1 -32
  213. package/src/routes/products/product-list/components/product-list-table/product-list-table.tsx +1 -15
  214. package/dist/chunk-4Y2NYEXF.mjs +0 -0
  215. package/dist/chunk-JQBWAJQZ.mjs +0 -0
  216. package/dist/translation-list-5ZOAGLCT.mjs +0 -146
  217. package/dist/translations-edit-I6R5ZNFX.mjs +0 -374
  218. package/src/hooks/api/translations.tsx +0 -254
  219. package/src/routes/translations/translation-list/index.tsx +0 -1
  220. package/src/routes/translations/translation-list/translation-list.tsx +0 -131
  221. package/src/routes/translations/translations-edit/components/translations-edit-form/index.ts +0 -1
  222. package/src/routes/translations/translations-edit/components/translations-edit-form/translations-edit-form.tsx +0 -405
  223. package/src/routes/translations/translations-edit/index.ts +0 -1
  224. package/src/routes/translations/translations-edit/translations-edit.tsx +0 -66
  225. package/src/routes/translations/translations-edit/utils/index.ts +0 -1
  226. package/src/routes/translations/translations-edit/utils/reference-label-map.ts +0 -10
  227. /package/dist/{chunk-CTUJXJYA.mjs → chunk-6WKBBTKM.mjs} +0 -0
  228. /package/dist/{chunk-IPG3I3J7.mjs → chunk-W7SLPIO2.mjs} +0 -0
@@ -1,131 +0,0 @@
1
- import { Button, Container, Heading, Text } from "@medusajs/ui"
2
- import { SingleColumnPage } from "../../../components/layout/pages"
3
- import { useTranslation } from "react-i18next"
4
- import { Link, useNavigate } from "react-router-dom"
5
- import { Buildings, Pencil } from "@medusajs/icons"
6
- import { IconAvatar } from "../../../components/common/icon-avatar/icon-avatar"
7
- import { ActionMenu } from "../../../components/common/action-menu"
8
- import { LinkButton } from "../../../components/common/link-button/link-button"
9
-
10
- type TranslatableEntity = {
11
- icon: React.ReactNode
12
- label: string
13
- reference: string
14
- }
15
-
16
- const TRANSLATABLE_ENTITIES: TranslatableEntity[] = [
17
- {
18
- icon: <Buildings />,
19
- label: "Product",
20
- reference: "product",
21
- },
22
- {
23
- icon: <Buildings />,
24
- label: "Product Variants",
25
- reference: "product_variant",
26
- },
27
- {
28
- icon: <Buildings />,
29
- label: "Product Categories",
30
- reference: "product_category",
31
- },
32
- {
33
- icon: <Buildings />,
34
- label: "Product Collections",
35
- reference: "product_collection",
36
- },
37
- {
38
- icon: <Buildings />,
39
- label: "Product Types",
40
- reference: "product_type",
41
- },
42
- {
43
- icon: <Buildings />,
44
- label: "Product Tags",
45
- reference: "product_tag",
46
- },
47
- {
48
- icon: <Buildings />,
49
- label: "Product Options",
50
- reference: "product_option",
51
- },
52
- {
53
- icon: <Buildings />,
54
- label: "Product Option Values",
55
- reference: "product_option_value",
56
- },
57
- ]
58
-
59
- export const TranslationList = () => {
60
- const { t } = useTranslation()
61
- const navigate = useNavigate()
62
-
63
- const handleManageLocales = () => {
64
- navigate("/settings/store/locales")
65
- }
66
-
67
- return (
68
- <SingleColumnPage
69
- widgets={{
70
- before: [],
71
- after: [],
72
- }}
73
- >
74
- <Container className="p-0">
75
- <div className="flex items-center justify-between px-6 py-4">
76
- <div>
77
- <Heading>Manage {t("translations.domain")}</Heading>
78
- <Text className="text-ui-fg-subtle" size="small">
79
- {t("translations.subtitle")}
80
- </Text>
81
- </div>
82
- <Button
83
- variant="secondary"
84
- size="small"
85
- onClick={handleManageLocales}
86
- >
87
- {t("translations.actions.manageLocales")}
88
- </Button>
89
- </div>
90
- </Container>
91
- {TRANSLATABLE_ENTITIES.map((entity) => (
92
- <Container key={entity.label} className="p-0">
93
- <div className="flex items-center justify-between px-6 py-3">
94
- <Link
95
- to={`/settings/translations/edit?reference=${entity.reference}`}
96
- className="transition-fg hover:bg-ui-bg-base-hover active:bg-ui-bg-base-pressed focus-visible:shadow-borders-interactive-with-active -mx-2 flex flex-1 items-center gap-x-2 rounded-md px-2 py-1.5 outline-none"
97
- >
98
- <IconAvatar variant="squared">{entity.icon}</IconAvatar>
99
- <Text size="small">{entity.label}</Text>
100
- </Link>
101
- <div className="flex items-center gap-x-2">
102
- <ActionMenu
103
- groups={[
104
- {
105
- actions: [
106
- {
107
- icon: <Pencil />,
108
- label: t("actions.edit"),
109
- onClick: () => {
110
- navigate(
111
- `/settings/translations/edit?reference=${entity.label.toLowerCase()}`
112
- )
113
- },
114
- },
115
- ],
116
- },
117
- ]}
118
- ></ActionMenu>
119
- <Text>|</Text>
120
- <LinkButton
121
- to={`/settings/translations/${entity.label.toLowerCase()}`}
122
- >
123
- {t("actions.viewDetails")}
124
- </LinkButton>
125
- </div>
126
- </div>
127
- </Container>
128
- ))}
129
- </SingleColumnPage>
130
- )
131
- }
@@ -1 +0,0 @@
1
- export * from "./translations-edit-form"
@@ -1,405 +0,0 @@
1
- import { zodResolver } from "@hookform/resolvers/zod"
2
- import { AdminStoreLocale, HttpTypes } from "@medusajs/types"
3
- import { Button, ProgressTabs, toast } from "@medusajs/ui"
4
- import { ColumnDef } from "@tanstack/react-table"
5
- import { useMemo, useRef } from "react"
6
- import { useForm } from "react-hook-form"
7
- import { useTranslation } from "react-i18next"
8
- import { z } from "zod"
9
-
10
- import {
11
- createDataGridHelper,
12
- DataGrid,
13
- } from "../../../../../components/data-grid"
14
- import {
15
- RouteFocusModal,
16
- useRouteModal,
17
- } from "../../../../../components/modals"
18
- import { KeyboundForm } from "../../../../../components/utilities/keybound-form"
19
- import { useBatchTranslations } from "../../../../../hooks/api/translations"
20
- import { useDocumentDirection } from "../../../../../hooks/use-document-direction"
21
- import { REFERENCE_LABEL_MAP } from "../../utils"
22
-
23
- /**
24
- * Schema for a single locale translation (subrow in DataGrid).
25
- */
26
- const LocaleTranslationSchema = z.object({
27
- id: z.string().nullish(),
28
- locale_code: z.string(),
29
- fields: z.record(z.string().optional()),
30
- })
31
- export type LocaleTranslationSchema = z.infer<typeof LocaleTranslationSchema>
32
-
33
- /**
34
- * Schema for an entity's translations (parent row in DataGrid).
35
- * Contains all locale translations for that entity.
36
- */
37
- const EntityTranslationsSchema = z.object({
38
- locales: z.record(LocaleTranslationSchema),
39
- })
40
- export type EntityTranslationsSchema = z.infer<typeof EntityTranslationsSchema>
41
-
42
- /**
43
- * Form schema
44
- * Maps each reference_id to their corresponding translations for each locale
45
- */
46
- export const TranslationsFormSchema = z.object({
47
- entities: z.record(EntityTranslationsSchema),
48
- })
49
- export type TranslationsFormSchema = z.infer<typeof TranslationsFormSchema>
50
-
51
- /**
52
- * Row types for the DataGrid.
53
- * Parent rows are entities, subrows are locale translations.
54
- */
55
- export type TranslationRow = EntityRow | LocaleRow
56
-
57
- export type EntityRow = {
58
- _type: "entity"
59
- reference_id: string
60
- subRows: LocaleRow[]
61
- }
62
-
63
- export type LocaleRow = {
64
- _type: "locale"
65
- reference_id: string
66
- locale_code: string
67
- locale_name: string
68
- id?: string
69
- }
70
-
71
- export function isEntityRow(row: TranslationRow): row is EntityRow {
72
- return row._type === "entity"
73
- }
74
-
75
- export function isLocaleRow(row: TranslationRow): row is LocaleRow {
76
- return row._type === "locale"
77
- }
78
-
79
- function initTranslationsFormState(
80
- translations: HttpTypes.AdminTranslation[],
81
- references: { id: string; [key: string]: string }[],
82
- availableLocales: AdminStoreLocale[],
83
- translatableFields: string[]
84
- ): TranslationsFormSchema {
85
- const existingMap = new Map<string, HttpTypes.AdminTranslation>()
86
- for (const t of translations) {
87
- existingMap.set(`${t.reference_id}:${t.locale_code}`, t)
88
- }
89
-
90
- const entitiesTranslationState: Record<string, EntityTranslationsSchema> = {}
91
-
92
- for (const reference of references) {
93
- const locales: Record<string, LocaleTranslationSchema> = {}
94
-
95
- for (const locale of availableLocales) {
96
- const key = `${reference.id}:${locale.locale_code}`
97
- const existing = existingMap.get(key)
98
- const isDefaultLocale = locale.is_default
99
-
100
- const fields: Record<string, string> = {}
101
- for (const fieldName of translatableFields) {
102
- const fieldValue = isDefaultLocale
103
- ? (existing?.translations?.[fieldName] as string) ??
104
- reference[fieldName]
105
- : (existing?.translations?.[fieldName] as string) ?? ""
106
- fields[fieldName] = fieldValue
107
- }
108
-
109
- locales[locale.locale_code] = {
110
- id: existing?.id ?? null,
111
- locale_code: locale.locale_code,
112
- fields,
113
- }
114
- }
115
-
116
- entitiesTranslationState[reference.id] = { locales }
117
- }
118
-
119
- return {
120
- entities: entitiesTranslationState,
121
- }
122
- }
123
-
124
- function buildTranslationRows(
125
- references: { id: string; [key: string]: string }[],
126
- availableLocales: AdminStoreLocale[],
127
- translations: HttpTypes.AdminTranslation[]
128
- ): TranslationRow[] {
129
- // Index existing translations by reference_id:locale_code
130
- const existingMap = new Map<string, HttpTypes.AdminTranslation>()
131
- for (const t of translations) {
132
- existingMap.set(`${t.reference_id}:${t.locale_code}`, t)
133
- }
134
-
135
- return references.map((reference) => ({
136
- _type: "entity" as const,
137
- reference_id: reference.id,
138
- subRows: availableLocales.map((locale) => {
139
- const key = `${reference.id}:${locale.locale_code}`
140
- const existing = existingMap.get(key)
141
- return {
142
- _type: "locale" as const,
143
- reference_id: reference.id,
144
- locale_code: locale.locale_code,
145
- locale_name: locale.locale.name,
146
- id: existing?.id,
147
- }
148
- }),
149
- }))
150
- }
151
-
152
- function transformToBatchPayload(
153
- currentState: TranslationsFormSchema,
154
- initialState: TranslationsFormSchema,
155
- entityType: string
156
- ): Required<HttpTypes.AdminBatchTranslations> {
157
- const payload: Required<HttpTypes.AdminBatchTranslations> = {
158
- create: [],
159
- update: [],
160
- delete: [],
161
- }
162
-
163
- for (const [entityId, entityData] of Object.entries(currentState.entities)) {
164
- for (const [localeCode, localeTranslations] of Object.entries(
165
- entityData.locales
166
- )) {
167
- const initial = initialState.entities[entityId]?.locales[localeCode]
168
- const hasContent = Object.values(localeTranslations.fields).some(
169
- (v) => v !== undefined && v.trim() !== ""
170
- )
171
- const hadContent =
172
- initial &&
173
- Object.values(initial.fields).some(
174
- (v) => v !== undefined && v.trim() !== ""
175
- )
176
-
177
- if (!localeTranslations.id && hasContent) {
178
- payload.create.push({
179
- reference_id: entityId,
180
- reference: entityType,
181
- locale_code: localeTranslations.locale_code,
182
- translations: localeTranslations.fields,
183
- })
184
- } else if (localeTranslations.id && hasContent) {
185
- // UPDATE: Has ID and has content - check if changed
186
- const hasChanged =
187
- !initial ||
188
- JSON.stringify(localeTranslations.fields) !==
189
- JSON.stringify(initial.fields)
190
-
191
- if (hasChanged) {
192
- payload.update.push({
193
- id: localeTranslations.id,
194
- translations: localeTranslations.fields,
195
- })
196
- }
197
- } else if (localeTranslations.id && !hasContent && hadContent) {
198
- payload.delete.push(localeTranslations.id)
199
- }
200
- }
201
- }
202
-
203
- return payload
204
- }
205
-
206
- const columnHelper = createDataGridHelper<
207
- TranslationRow,
208
- TranslationsFormSchema
209
- >()
210
-
211
- function useTranslationsGridColumns({
212
- translatableFields,
213
- }: {
214
- translatableFields: string[]
215
- }) {
216
- const { t } = useTranslation()
217
-
218
- const columns: ColumnDef<TranslationRow>[] = useMemo(() => {
219
- return [
220
- columnHelper.column({
221
- id: "locale",
222
- header: t("translations.bulk.mainColumn"),
223
- cell: (context) => {
224
- const row = context.row.original
225
-
226
- if (isEntityRow(row)) {
227
- return (
228
- <DataGrid.ReadonlyCell context={context}></DataGrid.ReadonlyCell>
229
- )
230
- }
231
-
232
- return (
233
- <DataGrid.ReadonlyCell context={context} color="normal">
234
- <div className="flex h-full w-full items-center gap-x-2 overflow-hidden">
235
- <span className="truncate">{row.locale_name}</span>
236
- </div>
237
- </DataGrid.ReadonlyCell>
238
- )
239
- },
240
- disableHiding: true,
241
- }),
242
- ...translatableFields.map((fieldName) =>
243
- columnHelper.column({
244
- id: fieldName,
245
- header: t(`fields.${fieldName}`, { defaultValue: fieldName }),
246
- cell: (context) => {
247
- const row = context.row.original
248
-
249
- if (isEntityRow(row)) {
250
- return (
251
- <DataGrid.ReadonlyCell context={context}>
252
- <span className="text-ui-fg-muted">—</span>
253
- </DataGrid.ReadonlyCell>
254
- )
255
- }
256
-
257
- return <DataGrid.TextCell context={context} />
258
- },
259
- field: (context) => {
260
- const row = context.row.original
261
-
262
- if (isEntityRow(row)) {
263
- return null
264
- }
265
-
266
- return `entities.${row.reference_id}.locales.${row.locale_code}.fields.${fieldName}`
267
- },
268
- type: "text",
269
- })
270
- ),
271
- ]
272
- }, [t, translatableFields])
273
-
274
- return columns
275
- }
276
-
277
- type TranslationsEditFormProps = {
278
- translations: HttpTypes.AdminTranslation[]
279
- references: { id: string; [key: string]: string }[]
280
- entityType: string
281
- availableLocales: AdminStoreLocale[]
282
- translatableFields: string[]
283
- }
284
-
285
- export const TranslationsEditForm = ({
286
- translations,
287
- references,
288
- entityType,
289
- availableLocales,
290
- translatableFields,
291
- }: TranslationsEditFormProps) => {
292
- const { t } = useTranslation()
293
- const { handleSuccess, setCloseOnEscape } = useRouteModal()
294
- const direction = useDocumentDirection()
295
-
296
- const entities = useMemo(() => references, [references])
297
-
298
- const initialState = useRef(
299
- initTranslationsFormState(
300
- translations,
301
- entities,
302
- availableLocales,
303
- translatableFields
304
- )
305
- )
306
-
307
- const form = useForm<TranslationsFormSchema>({
308
- resolver: zodResolver(TranslationsFormSchema),
309
- defaultValues: initialState.current,
310
- })
311
-
312
- const rows = useMemo(
313
- () => buildTranslationRows(entities, availableLocales, translations),
314
- [entities, availableLocales, translations]
315
- )
316
-
317
- const { mutateAsync, isPending } = useBatchTranslations(entityType)
318
-
319
- const handleSubmit = form.handleSubmit(async (values) => {
320
- const payload = transformToBatchPayload(
321
- values,
322
- initialState.current,
323
- entityType
324
- )
325
-
326
- if (
327
- payload.create.length === 0 &&
328
- payload.update.length === 0 &&
329
- payload.delete.length === 0
330
- ) {
331
- toast.info(
332
- t("translations.noChanges", { defaultValue: "No changes to save" })
333
- )
334
- return
335
- }
336
-
337
- await mutateAsync(payload, {
338
- onSuccess: () => {
339
- toast.success(
340
- t("translations.edit.successToast", {
341
- defaultValue: "Translations updated successfully",
342
- })
343
- )
344
- handleSuccess()
345
- },
346
- onError: (error) => {
347
- toast.error(error.message)
348
- },
349
- })
350
- })
351
-
352
- const columns = useTranslationsGridColumns({ translatableFields })
353
-
354
- return (
355
- <RouteFocusModal.Form form={form}>
356
- <KeyboundForm onSubmit={handleSubmit} className="flex h-full flex-col">
357
- <ProgressTabs
358
- dir={direction}
359
- defaultValue={entityType}
360
- className="flex h-full flex-col overflow-hidden"
361
- >
362
- <RouteFocusModal.Header>
363
- <div className="-my-2 w-full border-l">
364
- <ProgressTabs.List className="justify-start-start flex w-full items-center">
365
- <ProgressTabs.Trigger value={entityType}>
366
- {REFERENCE_LABEL_MAP[entityType]}
367
- </ProgressTabs.Trigger>
368
- </ProgressTabs.List>
369
- </div>
370
- </RouteFocusModal.Header>
371
- <RouteFocusModal.Body className="size-full overflow-hidden">
372
- <ProgressTabs.Content
373
- value={entityType}
374
- className="size-full overflow-y-auto"
375
- >
376
- <DataGrid
377
- columns={columns}
378
- data={rows}
379
- getSubRows={(row) => {
380
- if (isEntityRow(row)) {
381
- return row.subRows
382
- }
383
- }}
384
- state={form}
385
- onEditingChange={(editing) => setCloseOnEscape(!editing)}
386
- />
387
- </ProgressTabs.Content>
388
- </RouteFocusModal.Body>
389
- <RouteFocusModal.Footer>
390
- <div className="flex items-center justify-end gap-x-2">
391
- <RouteFocusModal.Close asChild>
392
- <Button size="small" variant="secondary">
393
- {t("actions.cancel")}
394
- </Button>
395
- </RouteFocusModal.Close>
396
- <Button size="small" type="submit" isLoading={isPending}>
397
- {t("actions.save")}
398
- </Button>
399
- </div>
400
- </RouteFocusModal.Footer>
401
- </ProgressTabs>
402
- </KeyboundForm>
403
- </RouteFocusModal.Form>
404
- )
405
- }
@@ -1 +0,0 @@
1
- export { TranslationsEdit as Component } from "./translations-edit"
@@ -1,66 +0,0 @@
1
- import { useNavigate, useSearchParams } from "react-router-dom"
2
- import { useReferenceTranslations, useStore } from "../../../hooks/api"
3
- import { TranslationsEditForm } from "./components/translations-edit-form"
4
- import { useEffect } from "react"
5
- import { RouteFocusModal } from "../../../components/modals"
6
- import { useFeatureFlag } from "../../../providers/feature-flag-provider"
7
-
8
- export const TranslationsEdit = () => {
9
- const isTranslationsEnabled = useFeatureFlag("translation")
10
- const navigate = useNavigate()
11
- const [searchParams] = useSearchParams()
12
- const reference = searchParams.get("reference")
13
- const referenceIdParam = searchParams.getAll("reference_id")
14
-
15
- useEffect(() => {
16
- if (!reference || !isTranslationsEnabled) {
17
- navigate(-1)
18
- return
19
- }
20
- }, [reference, navigate, isTranslationsEnabled])
21
-
22
- const {
23
- translations,
24
- references,
25
- translatableFields,
26
- isPending,
27
- isError,
28
- error,
29
- } = useReferenceTranslations(reference!, referenceIdParam, {
30
- enabled: !!reference,
31
- })
32
-
33
- const {
34
- store,
35
- isPending: isStorePending,
36
- isError: isStoreError,
37
- error: storeError,
38
- } = useStore()
39
-
40
- const ready =
41
- !isPending &&
42
- !!translations &&
43
- !!translatableFields &&
44
- !!references &&
45
- !isStorePending &&
46
- !!store
47
-
48
- if (isError || isStoreError) {
49
- throw error || storeError
50
- }
51
-
52
- return (
53
- <RouteFocusModal prev={referenceIdParam.length ? -1 : ".."}>
54
- {ready && (
55
- <TranslationsEditForm
56
- translations={translations}
57
- references={references}
58
- entityType={reference!}
59
- availableLocales={store?.supported_locales ?? []}
60
- // TODO: change this to get it from the entity translation config when we have it
61
- translatableFields={translatableFields}
62
- />
63
- )}
64
- </RouteFocusModal>
65
- )
66
- }
@@ -1 +0,0 @@
1
- export * from "./reference-label-map"
@@ -1,10 +0,0 @@
1
- export const REFERENCE_LABEL_MAP: Record<string, string> = {
2
- product: "Products",
3
- product_variant: "Product Variants",
4
- product_category: "Product Categories",
5
- product_collection: "Product Collections",
6
- product_type: "Product Types",
7
- product_tag: "Product Tags",
8
- product_option: "Product Options",
9
- product_option_value: "Product Option Values",
10
- }
File without changes
File without changes