@medusajs/dashboard 3.0.0-snapshot-20251114155958 → 3.0.0-snapshot-20251126221441

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 (253) hide show
  1. package/dist/{adjust-inventory-ZB3AVET7.mjs → adjust-inventory-WZOCLB5V.mjs} +1 -1
  2. package/dist/{api-key-management-create-U6VGZK7R.mjs → api-key-management-create-W7NL2IYN.mjs} +3 -3
  3. package/dist/{api-key-management-detail-B5XNEGKF.mjs → api-key-management-detail-3F77JKQT.mjs} +13 -13
  4. package/dist/{api-key-management-edit-TJM737A7.mjs → api-key-management-edit-TLVLXAVK.mjs} +3 -3
  5. package/dist/{api-key-management-list-ZRYMMTF5.mjs → api-key-management-list-FTLC3ELT.mjs} +3 -3
  6. package/dist/{api-key-management-sales-channels-D2RAHI7W.mjs → api-key-management-sales-channels-NYY3NZOE.mjs} +4 -4
  7. package/dist/app.css +3 -3
  8. package/dist/app.js +16021 -17376
  9. package/dist/app.mjs +11 -11
  10. package/dist/{campaign-create-IXOWJQ4L.mjs → campaign-create-LHL7FKQK.mjs} +3 -3
  11. package/dist/{campaign-detail-RCA3TBE4.mjs → campaign-detail-G2FIHVM2.mjs} +10 -10
  12. package/dist/{categories-metadata-5NBC7HX4.mjs → categories-metadata-YEF2WFML.mjs} +10 -10
  13. package/dist/{category-create-BTMZYQ5R.mjs → category-create-ELMCLH4J.mjs} +5 -5
  14. package/dist/{category-detail-RBUJVFPN.mjs → category-detail-ORXA4DBA.mjs} +14 -14
  15. package/dist/{category-edit-Q3KEELHO.mjs → category-edit-TYKLEYGE.mjs} +2 -2
  16. package/dist/{category-list-Z6HS6N75.mjs → category-list-IJ3DLPYQ.mjs} +5 -5
  17. package/dist/{category-organize-45NPSRNG.mjs → category-organize-PDLC54E2.mjs} +2 -2
  18. package/dist/{category-products-KREOO2KQ.mjs → category-products-GXTUJNT6.mjs} +13 -13
  19. package/dist/{chunk-SAZHCRHS.mjs → chunk-2PZVZSZW.mjs} +1 -1
  20. package/dist/{chunk-NFEW5CVI.mjs → chunk-3C6WQ7NH.mjs} +3 -37
  21. package/dist/{chunk-KF22R23X.mjs → chunk-3UOOSL7Y.mjs} +1 -1
  22. package/dist/{chunk-BYZSMXJ7.mjs → chunk-4DDI2KIE.mjs} +1 -1
  23. package/dist/{chunk-5N33TBBX.mjs → chunk-56TDUOXV.mjs} +1 -1
  24. package/dist/{chunk-67RC6SEX.mjs → chunk-5LGRZSEH.mjs} +1 -1
  25. package/dist/{chunk-W4TIFG3A.mjs → chunk-6KMZSZIA.mjs} +5 -5
  26. package/dist/{chunk-P23S5LDK.mjs → chunk-7V2JZU2B.mjs} +2 -2
  27. package/dist/{chunk-GHBURGZC.mjs → chunk-A6PWH2CK.mjs} +1 -1
  28. package/dist/{chunk-KJU3T6BK.mjs → chunk-AEMKNDRM.mjs} +2 -2
  29. package/dist/{chunk-QW4SQVMT.mjs → chunk-AENRV3N7.mjs} +50 -109
  30. package/dist/{chunk-O5DGX2NZ.mjs → chunk-AF7A24XI.mjs} +1 -1
  31. package/dist/{chunk-F7LJJHQT.mjs → chunk-C7F7MMXS.mjs} +1 -0
  32. package/dist/{chunk-CWIMWR6L.mjs → chunk-D6DIMX3W.mjs} +15 -15
  33. package/dist/{chunk-3RRA56WC.mjs → chunk-DODQ3KJT.mjs} +3 -8
  34. package/dist/{chunk-FJHAGJ5G.mjs → chunk-ETOJCN3Q.mjs} +1 -1
  35. package/dist/{chunk-YVQIO3JS.mjs → chunk-GYHQTVXN.mjs} +236 -318
  36. package/dist/{chunk-FNQ227BC.mjs → chunk-K5QWNI6V.mjs} +1 -1
  37. package/dist/{chunk-ZOJRDXH3.mjs → chunk-KC64IT2X.mjs} +1 -1
  38. package/dist/{chunk-K75OQ7QA.mjs → chunk-KHNOLBMA.mjs} +2 -2
  39. package/dist/{chunk-MOGV3UZD.mjs → chunk-KLNRCI3K.mjs} +1 -1
  40. package/dist/{chunk-YGEJFHC3.mjs → chunk-M3CKVBZC.mjs} +1 -1
  41. package/dist/{chunk-VW34SZWE.mjs → chunk-MDVO5GXZ.mjs} +2 -2
  42. package/dist/{chunk-7H6DB666.mjs → chunk-O4RZ3Y65.mjs} +1 -1
  43. package/dist/{chunk-5AM254NB.mjs → chunk-OFN7DIZA.mjs} +3 -83
  44. package/dist/{chunk-42TMWI76.mjs → chunk-OXPE5TAY.mjs} +1 -1
  45. package/dist/{chunk-NZNJSGGE.mjs → chunk-SIR4PJ4E.mjs} +3 -3
  46. package/dist/{chunk-QPJUVTKW.mjs → chunk-SWS2BE3M.mjs} +1 -1
  47. package/dist/{chunk-OMRGW7JS.mjs → chunk-T2ANPJ36.mjs} +3 -3
  48. package/dist/{chunk-ZE34KAKV.mjs → chunk-U63NCO35.mjs} +2 -2
  49. package/dist/{chunk-2WLOIS3L.mjs → chunk-WGRVE7KY.mjs} +21 -2
  50. package/dist/{chunk-BKJMQ6RP.mjs → chunk-WYITLR2E.mjs} +1 -1
  51. package/dist/{chunk-Y5TTJDGO.mjs → chunk-ZT7CR32D.mjs} +1 -1
  52. package/dist/{collection-add-products-KM4VO5G5.mjs → collection-add-products-D2KOVZPZ.mjs} +14 -14
  53. package/dist/{collection-create-RIGJHEX5.mjs → collection-create-I2A2X4VK.mjs} +2 -2
  54. package/dist/{collection-detail-MLVNULUS.mjs → collection-detail-ZT535E5T.mjs} +14 -14
  55. package/dist/{collection-edit-WX5G3FHR.mjs → collection-edit-RGH7NCUE.mjs} +2 -2
  56. package/dist/{collection-list-KWAHQGFE.mjs → collection-list-53JPFHPN.mjs} +23 -24
  57. package/dist/{collection-metadata-OMFOP3LA.mjs → collection-metadata-SQCA35II.mjs} +11 -11
  58. package/dist/{customer-detail-SVDGB2QD.mjs → customer-detail-W55EJ6LX.mjs} +14 -14
  59. package/dist/{customer-group-detail-OCQTI4GG.mjs → customer-group-detail-2WFTU5KU.mjs} +13 -13
  60. package/dist/{customer-group-list-K5MTMFLG.mjs → customer-group-list-GLF37WEN.mjs} +13 -13
  61. package/dist/{customers-add-customer-group-2LLBHTX3.mjs → customers-add-customer-group-KXT7RDV3.mjs} +13 -13
  62. package/dist/{edit-inventory-item-O6JLGZE4.mjs → edit-inventory-item-LMDNUI6M.mjs} +1 -1
  63. package/dist/{edit-inventory-item-attributes-AUVR3GYY.mjs → edit-inventory-item-attributes-DPJIHBP3.mjs} +1 -1
  64. package/dist/{edit-reservation-GQ6R6GVA.mjs → edit-reservation-IOOZBJ2T.mjs} +2 -2
  65. package/dist/{edit-rules-G7YMD5RC.mjs → edit-rules-7TG76PR3.mjs} +12 -12
  66. package/dist/en.json +3 -49
  67. package/dist/{inventory-create-GMFEGLE4.mjs → inventory-create-NQUETR3V.mjs} +10 -10
  68. package/dist/{inventory-detail-3BTAVXLJ.mjs → inventory-detail-ADLVUQJM.mjs} +10 -10
  69. package/dist/{inventory-list-ADJQDNX5.mjs → inventory-list-RQBI7UJX.mjs} +1 -1
  70. package/dist/{inventory-metadata-JJBXLQJG.mjs → inventory-metadata-45YATS7H.mjs} +10 -10
  71. package/dist/{inventory-stock-RHLN6ARK.mjs → inventory-stock-UG3CW3TM.mjs} +10 -10
  72. package/dist/{location-detail-F5QYFPUH.mjs → location-detail-BBPTVSP5.mjs} +15 -15
  73. package/dist/{location-fulfillment-providers-7JXNE6YT.mjs → location-fulfillment-providers-6AHWONY4.mjs} +14 -15
  74. package/dist/{location-sales-channels-JPH5BTUY.mjs → location-sales-channels-UVYT52SH.mjs} +3 -3
  75. package/dist/{location-service-zone-shipping-option-create-7VTPJAPA.mjs → location-service-zone-shipping-option-create-WEIDYZZT.mjs} +11 -11
  76. package/dist/{location-service-zone-shipping-option-edit-OYTEZGGC.mjs → location-service-zone-shipping-option-edit-TQNTCYII.mjs} +4 -4
  77. package/dist/{login-BGH5LSM4.mjs → login-VQ7YFW6V.mjs} +10 -10
  78. package/dist/{manage-locations-ATCDVTSR.mjs → manage-locations-2VDQ3ILT.mjs} +1 -1
  79. package/dist/{order-allocate-items-PHIW64XK.mjs → order-allocate-items-SSDLHV7A.mjs} +3 -3
  80. package/dist/{order-create-claim-NPQ6E5DR.mjs → order-create-claim-RAGNQ2RR.mjs} +18 -18
  81. package/dist/{order-create-edit-R4ZITC5I.mjs → order-create-edit-PRJWTWWE.mjs} +31 -16
  82. package/dist/{order-create-exchange-6XPYKVYN.mjs → order-create-exchange-DRSFEEL3.mjs} +60 -34
  83. package/dist/{order-create-fulfillment-7DVPBUES.mjs → order-create-fulfillment-URKHLFR7.mjs} +14 -14
  84. package/dist/{order-create-refund-7KEOYZTF.mjs → order-create-refund-VZG3UXLV.mjs} +15 -15
  85. package/dist/{order-create-return-J23AFCKP.mjs → order-create-return-P3OCXJSI.mjs} +6 -6
  86. package/dist/{order-create-shipment-KNXCANID.mjs → order-create-shipment-QZBUE342.mjs} +10 -10
  87. package/dist/{order-detail-7ATBL7GN.mjs → order-detail-32Y6JK42.mjs} +31 -31
  88. package/dist/{order-edit-billing-address-VS75YMUY.mjs → order-edit-billing-address-MUICLYNN.mjs} +11 -11
  89. package/dist/{order-edit-email-GEE7SF2E.mjs → order-edit-email-ADNCGCS3.mjs} +11 -11
  90. package/dist/{order-edit-shipping-address-HSRXSRLU.mjs → order-edit-shipping-address-NZF3KMVV.mjs} +11 -11
  91. package/dist/{order-list-GJTJHLZF.mjs → order-list-33SMDKZD.mjs} +5 -4
  92. package/dist/{order-metadata-LUBKP5Y4.mjs → order-metadata-UEKHMTAD.mjs} +10 -10
  93. package/dist/{order-receive-return-FLI44JN2.mjs → order-receive-return-5SB26KCQ.mjs} +11 -11
  94. package/dist/{order-request-transfer-NH2XCHMV.mjs → order-request-transfer-QS3LMEBW.mjs} +12 -12
  95. package/dist/{price-list-configuration-SS2VMD4N.mjs → price-list-configuration-CZPMKLNL.mjs} +4 -4
  96. package/dist/{price-list-create-DZR7JCDG.mjs → price-list-create-2YZRNBRI.mjs} +17 -17
  97. package/dist/{price-list-detail-4INABJQQ.mjs → price-list-detail-EGGLDH5B.mjs} +24 -20
  98. package/dist/{price-list-edit-VRI5T4W3.mjs → price-list-edit-3VNSZH4F.mjs} +2 -2
  99. package/dist/{price-list-list-S2HWTXKV.mjs → price-list-list-AU4IVCQN.mjs} +34 -18
  100. package/dist/{price-list-prices-add-DO43IEAD.mjs → price-list-prices-add-YRXYOXUG.mjs} +16 -14
  101. package/dist/{price-list-prices-edit-TRCLLGU4.mjs → price-list-prices-edit-UHOZKA75.mjs} +5 -3
  102. package/dist/{product-attributes-D6MNCAJB.mjs → product-attributes-W2PIZ6AU.mjs} +12 -12
  103. package/dist/{product-create-JQQTUEQL.mjs → product-create-UY3QXGNY.mjs} +554 -377
  104. package/dist/product-create-option-GAEPSU6J.mjs +145 -0
  105. package/dist/{product-create-variant-6UQRMACE.mjs → product-create-variant-RQEPRPG5.mjs} +11 -11
  106. package/dist/{product-detail-JMOULY3O.mjs → product-detail-FOLQUXCM.mjs} +54 -38
  107. package/dist/{product-edit-CC4OUBEC.mjs → product-edit-WRONAZ5F.mjs} +12 -12
  108. package/dist/product-edit-option-VIU3ZICO.mjs +150 -0
  109. package/dist/{product-export-BVREOXJT.mjs → product-export-ITQPBLG7.mjs} +22 -23
  110. package/dist/{product-image-variants-edit-7BBTFZO7.mjs → product-image-variants-edit-P2ZWO6DN.mjs} +10 -10
  111. package/dist/{product-import-UEXWOHOZ.mjs → product-import-WEHFNQXM.mjs} +10 -10
  112. package/dist/{product-list-RHHY3NAS.mjs → product-list-7QL2GZEA.mjs} +17 -17
  113. package/dist/{product-media-EKXMOSO4.mjs → product-media-WCLPCVR3.mjs} +2 -2
  114. package/dist/{product-metadata-DU2CNDKQ.mjs → product-metadata-LP3B3LXR.mjs} +10 -10
  115. package/dist/{product-organization-HU6YVPPV.mjs → product-organization-GKKUOJQV.mjs} +14 -14
  116. package/dist/{product-prices-UMEIS5AZ.mjs → product-prices-MKMKBH6P.mjs} +1 -1
  117. package/dist/{product-sales-channels-2SALTLTF.mjs → product-sales-channels-5YIO22UW.mjs} +3 -3
  118. package/dist/{product-shipping-profile-T4ZKHINJ.mjs → product-shipping-profile-GOESXQYV.mjs} +13 -13
  119. package/dist/{product-stock-CKBS4YDA.mjs → product-stock-KZ5NJINL.mjs} +10 -10
  120. package/dist/{product-tag-create-GFGPI7ML.mjs → product-tag-create-KOTNIDPO.mjs} +10 -10
  121. package/dist/{product-tag-detail-TTEWVF3I.mjs → product-tag-detail-4NEU4CQ4.mjs} +27 -28
  122. package/dist/{product-tag-edit-3XNTLATZ.mjs → product-tag-edit-UBVJB75M.mjs} +10 -10
  123. package/dist/{product-tag-list-24IJRVFR.mjs → product-tag-list-2JDK7DBC.mjs} +25 -26
  124. package/dist/{product-tag-metadata-JANWHZ3K.mjs → product-tag-metadata-H4QYJB5I.mjs} +10 -10
  125. package/dist/{product-type-detail-MAUHCM3C.mjs → product-type-detail-QSKBQZOO.mjs} +13 -13
  126. package/dist/{product-type-metadata-FAKUWQQF.mjs → product-type-metadata-OSGO33SD.mjs} +10 -10
  127. package/dist/{product-variant-detail-WHPECDUY.mjs → product-variant-detail-ATHRI3BX.mjs} +10 -10
  128. package/dist/{product-variant-edit-GR4RNE5G.mjs → product-variant-edit-457GNHH5.mjs} +11 -11
  129. package/dist/{product-variant-manage-inventory-items-IGDCLZQE.mjs → product-variant-manage-inventory-items-B7TUBSD5.mjs} +2 -2
  130. package/dist/{product-variant-media-EKI4BTEV.mjs → product-variant-media-6WWLRINP.mjs} +1 -1
  131. package/dist/{product-variant-metadata-DA2HKXXB.mjs → product-variant-metadata-GOUTYBDT.mjs} +10 -10
  132. package/dist/{promotion-add-campaign-DOALJUKJ.mjs → promotion-add-campaign-MKDYE7MW.mjs} +3 -3
  133. package/dist/{promotion-create-GGZULF2B.mjs → promotion-create-WCECPK2G.mjs} +18 -18
  134. package/dist/{promotion-detail-XK7U73XH.mjs → promotion-detail-JBM2LBZ4.mjs} +10 -10
  135. package/dist/{refund-reason-create-H7MHJ5C5.mjs → refund-reason-create-IAOKE37M.mjs} +10 -10
  136. package/dist/{refund-reason-edit-QY36CQVS.mjs → refund-reason-edit-D2VDINGV.mjs} +10 -10
  137. package/dist/{refund-reason-list-KSQW33QC.mjs → refund-reason-list-Q4TU7OVA.mjs} +13 -13
  138. package/dist/{region-create-UVJICJRX.mjs → region-create-QLPSK6TX.mjs} +1 -1
  139. package/dist/{region-edit-3NVXQECN.mjs → region-edit-JCJHA6TY.mjs} +1 -1
  140. package/dist/{region-metadata-4KQG6UL6.mjs → region-metadata-YLNPW7CL.mjs} +10 -10
  141. package/dist/{reservation-create-Z7TWUE2L.mjs → reservation-create-BW4CDTWR.mjs} +3 -3
  142. package/dist/{reservation-detail-W3FULMXT.mjs → reservation-detail-SMO3C2R5.mjs} +10 -10
  143. package/dist/{reservation-list-MN22JYAW.mjs → reservation-list-RGL67CIU.mjs} +2 -2
  144. package/dist/{reservation-metadata-AKAN5XNE.mjs → reservation-metadata-KU5AJF7S.mjs} +10 -10
  145. package/dist/{sales-channel-add-products-POHTQHMV.mjs → sales-channel-add-products-WGRIVVJA.mjs} +13 -13
  146. package/dist/{sales-channel-create-UFFXX5HK.mjs → sales-channel-create-TOBEDYFD.mjs} +2 -2
  147. package/dist/{sales-channel-detail-AACIFU2E.mjs → sales-channel-detail-VSTGXEZD.mjs} +13 -13
  148. package/dist/{sales-channel-edit-SP2HF4E3.mjs → sales-channel-edit-XUTE5GB5.mjs} +2 -2
  149. package/dist/{sales-channel-list-BY3KTVV6.mjs → sales-channel-list-2LXIRNZP.mjs} +11 -11
  150. package/dist/{sales-channel-metadata-KGOLI4BZ.mjs → sales-channel-metadata-RZMQYG4F.mjs} +10 -10
  151. package/dist/{shipping-option-type-create-PSQZW3RN.mjs → shipping-option-type-create-EQPBH6EA.mjs} +10 -10
  152. package/dist/{shipping-option-type-detail-WAW6TKJU.mjs → shipping-option-type-detail-BCCCVIIJ.mjs} +11 -11
  153. package/dist/{shipping-option-type-edit-2I44YHND.mjs → shipping-option-type-edit-CGTJ3HAR.mjs} +10 -10
  154. package/dist/{shipping-option-type-list-F4FRLW3P.mjs → shipping-option-type-list-3TLR4QZF.mjs} +11 -11
  155. package/dist/{shipping-profile-metadata-AZXPMPHG.mjs → shipping-profile-metadata-JSRQPOAD.mjs} +10 -10
  156. package/dist/{store-detail-AKRR64I6.mjs → store-detail-H53F5ESM.mjs} +10 -10
  157. package/dist/{store-edit-Q25HCMCQ.mjs → store-edit-3XS6IC2Z.mjs} +1 -1
  158. package/dist/{store-metadata-VLEDLAIJ.mjs → store-metadata-GHSJRHAV.mjs} +10 -10
  159. package/dist/{tax-region-create-JTM53LCS.mjs → tax-region-create-HYT3EOQO.mjs} +11 -11
  160. package/dist/{tax-region-detail-XBFYCVSH.mjs → tax-region-detail-TQS5425G.mjs} +28 -29
  161. package/dist/{tax-region-edit-2RRF7C7P.mjs → tax-region-edit-ZB36A456.mjs} +11 -11
  162. package/dist/{tax-region-province-detail-LGCYSFKE.mjs → tax-region-province-detail-CABVSQRU.mjs} +28 -29
  163. package/dist/{tax-region-tax-override-create-2W25EZNZ.mjs → tax-region-tax-override-create-ROK47GNE.mjs} +27 -28
  164. package/dist/{tax-region-tax-override-edit-ZSYNTYUG.mjs → tax-region-tax-override-edit-WRODO4LC.mjs} +26 -27
  165. package/dist/{user-detail-K5UMPO2L.mjs → user-detail-N6PT3KRP.mjs} +1 -1
  166. package/dist/{user-metadata-KOGHOQTW.mjs → user-metadata-DKZHLCPN.mjs} +10 -10
  167. package/dist/{workflow-execution-detail-4QAQ44YB.mjs → workflow-execution-detail-BQEMJSH6.mjs} +10 -10
  168. package/package.json +11 -11
  169. package/src/components/inputs/combobox/combobox.tsx +92 -173
  170. package/src/components/layout/main-layout/main-layout.tsx +4 -7
  171. package/src/dashboard-app/routes/get-route.map.tsx +12 -64
  172. package/src/hooks/api/index.ts +0 -1
  173. package/src/hooks/api/price-lists.tsx +32 -1
  174. package/src/hooks/api/products.tsx +66 -26
  175. package/src/hooks/table/filters/index.ts +0 -1
  176. package/src/i18n/translations/$schema.json +4 -172
  177. package/src/i18n/translations/en.json +3 -49
  178. package/src/routes/orders/order-create-edit/components/order-edit-create-form/order-edit-item.tsx +28 -3
  179. package/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-inbound-item.tsx +29 -4
  180. package/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-outbound-item.tsx +23 -4
  181. package/src/routes/orders/order-detail/constants.ts +1 -0
  182. package/src/routes/orders/order-list/const.ts +1 -0
  183. package/src/routes/price-lists/price-list-detail/components/price-list-general-section/price-list-general-section.tsx +10 -4
  184. package/src/routes/price-lists/price-list-list/components/price-list-list-table/price-count-cell.tsx +19 -0
  185. package/src/routes/price-lists/price-list-list/components/price-list-list-table/use-pricing-table-columns.tsx +5 -6
  186. package/src/routes/price-lists/price-list-prices-add/price-list-prices-add.tsx +4 -1
  187. package/src/routes/price-lists/price-list-prices-edit/price-list-prices-edit.tsx +3 -1
  188. package/src/routes/products/product-create/components/product-create-details-form/components/product-create-details-general-section/product-create-general-section.tsx +4 -16
  189. package/src/routes/products/product-create/components/product-create-details-form/components/product-create-details-variant-section/product-create-details-variant-section.tsx +198 -220
  190. package/src/routes/products/product-create/components/product-create-form/product-create-form.tsx +7 -4
  191. package/src/routes/products/product-create/constants.ts +0 -2
  192. package/src/routes/products/product-create/utils.ts +1 -6
  193. package/src/routes/products/product-create-option/components/create-product-option-form/create-product-option-form.tsx +122 -0
  194. package/src/routes/products/product-create-option/components/create-product-option-form/index.ts +1 -0
  195. package/src/routes/products/product-create-option/index.ts +1 -0
  196. package/src/routes/products/product-create-option/product-create-option.tsx +26 -0
  197. package/src/routes/products/product-detail/components/product-option-section/product-option-section.tsx +49 -31
  198. package/src/routes/products/product-edit-option/components/edit-product-option-form/edit-product-option-form.tsx +123 -0
  199. package/src/routes/products/product-edit-option/components/edit-product-option-form/index.ts +1 -0
  200. package/src/routes/products/product-edit-option/index.ts +1 -0
  201. package/src/routes/products/product-edit-option/product-edit-option.tsx +32 -0
  202. package/dist/chunk-ZHH3W7CN.mjs +0 -171
  203. package/dist/product-option-create-ML66ZKF3.mjs +0 -336
  204. package/dist/product-option-detail-DT7HJF5Q.mjs +0 -322
  205. package/dist/product-option-edit-GUKWRQQH.mjs +0 -324
  206. package/dist/product-option-list-KF3JSQ6Y.mjs +0 -262
  207. package/dist/product-option-metadata-BWWRRSAW.mjs +0 -71
  208. package/dist/product-options-manage-QYWBIHJA.mjs +0 -304
  209. package/src/hooks/api/product-options.tsx +0 -151
  210. package/src/hooks/table/columns/use-product-option-table-columns.tsx +0 -44
  211. package/src/hooks/table/filters/use-product-option-table-filters.tsx +0 -33
  212. package/src/hooks/table/query/use-product-option-table-query.tsx +0 -34
  213. package/src/routes/product-options/common/hooks/use-delete-product-option-action.tsx +0 -41
  214. package/src/routes/product-options/product-option-create/components/create-product-option-form/create-product-option-details.tsx +0 -71
  215. package/src/routes/product-options/product-option-create/components/create-product-option-form/create-product-option-form.tsx +0 -192
  216. package/src/routes/product-options/product-option-create/components/create-product-option-form/create-product-option-organize.tsx +0 -77
  217. package/src/routes/product-options/product-option-create/components/create-product-option-form/index.ts +0 -1
  218. package/src/routes/product-options/product-option-create/components/create-product-option-form/schema.ts +0 -15
  219. package/src/routes/product-options/product-option-create/index.ts +0 -1
  220. package/src/routes/product-options/product-option-create/product-option-create.tsx +0 -10
  221. package/src/routes/product-options/product-option-detail/breadcrumb.tsx +0 -14
  222. package/src/routes/product-options/product-option-detail/components/product-option-general-section/index.ts +0 -1
  223. package/src/routes/product-options/product-option-detail/components/product-option-general-section/product-option-general-section.tsx +0 -81
  224. package/src/routes/product-options/product-option-detail/components/product-option-product-section/index.ts +0 -1
  225. package/src/routes/product-options/product-option-detail/components/product-option-product-section/product-option-product-section.tsx +0 -74
  226. package/src/routes/product-options/product-option-detail/index.ts +0 -3
  227. package/src/routes/product-options/product-option-detail/loader.ts +0 -17
  228. package/src/routes/product-options/product-option-detail/product-option-detail.tsx +0 -50
  229. package/src/routes/product-options/product-option-edit/components/edit-product-option-form/edit-product-option-details.tsx +0 -94
  230. package/src/routes/product-options/product-option-edit/components/edit-product-option-form/edit-product-option-form.tsx +0 -116
  231. package/src/routes/product-options/product-option-edit/components/edit-product-option-form/edit-product-option-organize.tsx +0 -77
  232. package/src/routes/product-options/product-option-edit/components/edit-product-option-form/index.ts +0 -1
  233. package/src/routes/product-options/product-option-edit/components/edit-product-option-form/schema.ts +0 -13
  234. package/src/routes/product-options/product-option-edit/index.ts +0 -1
  235. package/src/routes/product-options/product-option-edit/product-option-edit.tsx +0 -34
  236. package/src/routes/product-options/product-option-list/components/product-option-list-table/index.ts +0 -1
  237. package/src/routes/product-options/product-option-list/components/product-option-list-table/product-option-list-table.tsx +0 -131
  238. package/src/routes/product-options/product-option-list/index.ts +0 -1
  239. package/src/routes/product-options/product-option-list/product-option-list.tsx +0 -19
  240. package/src/routes/product-options/product-option-metadata/index.ts +0 -1
  241. package/src/routes/product-options/product-option-metadata/product-option-metadata.tsx +0 -27
  242. package/src/routes/products/product-options-manage/components/product-options-manage-form/index.ts +0 -1
  243. package/src/routes/products/product-options-manage/components/product-options-manage-form/product-options-manage-form.tsx +0 -284
  244. package/src/routes/products/product-options-manage/index.ts +0 -1
  245. package/src/routes/products/product-options-manage/product-options-manage.tsx +0 -35
  246. package/dist/{chunk-2QH2TBJ2.mjs → chunk-ACJ3PPQJ.mjs} +3 -3
  247. package/dist/{customer-group-add-customers-2Y2GVCDV.mjs → customer-group-add-customers-QU4Q56SS.mjs} +3 -3
  248. package/dist/{customer-list-TG4D4QOT.mjs → customer-list-ZXCGIXJC.mjs} +3 -3
  249. package/dist/{location-list-ZJMZZ6T3.mjs → location-list-OYBI7EGV.mjs} +1 -1
  250. package/dist/{product-type-list-7WQ5D2KV.mjs → product-type-list-QX7QC6RI.mjs} +3 -3
  251. package/dist/{region-list-JAQXIBYD.mjs → region-list-XQRIBDMF.mjs} +3 -3
  252. package/dist/{return-reason-list-ATE2XU4H.mjs → return-reason-list-VYLLXDG4.mjs} +3 -3
  253. package/dist/{user-list-KPI3BTOA.mjs → user-list-6KATHOTJ.mjs} +3 -3
@@ -0,0 +1,26 @@
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 { useProduct } from "../../../hooks/api/products"
6
+ import { CreateProductOptionForm } from "./components/create-product-option-form"
7
+
8
+ export const ProductCreateOption = () => {
9
+ const { id } = useParams()
10
+ const { t } = useTranslation()
11
+
12
+ const { product, isLoading, isError, error } = useProduct(id!)
13
+
14
+ if (isError) {
15
+ throw error
16
+ }
17
+
18
+ return (
19
+ <RouteDrawer>
20
+ <RouteDrawer.Header>
21
+ <Heading>{t("products.options.create.header")}</Heading>
22
+ </RouteDrawer.Header>
23
+ {!isLoading && product && <CreateProductOptionForm product={product} />}
24
+ </RouteDrawer>
25
+ )
26
+ }
@@ -1,16 +1,38 @@
1
- import { PencilSquare } from "@medusajs/icons"
2
- import { Badge, Container, Heading } from "@medusajs/ui"
1
+ import { PencilSquare, Plus, Trash } from "@medusajs/icons"
2
+ import { Badge, Container, Heading, usePrompt } from "@medusajs/ui"
3
3
  import { useTranslation } from "react-i18next"
4
4
  import { ActionMenu } from "../../../../../components/common/action-menu"
5
5
  import { SectionRow } from "../../../../../components/common/section"
6
+ import { useDeleteProductOption } from "../../../../../hooks/api/products"
6
7
  import { HttpTypes } from "@medusajs/types"
7
8
 
8
9
  const OptionActions = ({
10
+ product,
9
11
  option,
10
12
  }: {
13
+ product: HttpTypes.AdminProduct
11
14
  option: HttpTypes.AdminProductOption
12
15
  }) => {
13
16
  const { t } = useTranslation()
17
+ const { mutateAsync } = useDeleteProductOption(product.id, option.id)
18
+ const prompt = usePrompt()
19
+
20
+ const handleDelete = async () => {
21
+ const res = await prompt({
22
+ title: t("general.areYouSure"),
23
+ description: t("products.options.deleteWarning", {
24
+ title: option.title,
25
+ }),
26
+ confirmText: t("actions.delete"),
27
+ cancelText: t("actions.cancel"),
28
+ })
29
+
30
+ if (!res) {
31
+ return
32
+ }
33
+
34
+ await mutateAsync()
35
+ }
14
36
 
15
37
  return (
16
38
  <ActionMenu
@@ -19,11 +41,20 @@ const OptionActions = ({
19
41
  actions: [
20
42
  {
21
43
  label: t("actions.edit"),
22
- to: `/product-options/${option.id}/edit`,
44
+ to: `options/${option.id}/edit`,
23
45
  icon: <PencilSquare />,
24
46
  },
25
47
  ],
26
48
  },
49
+ {
50
+ actions: [
51
+ {
52
+ label: t("actions.delete"),
53
+ onClick: handleDelete,
54
+ icon: <Trash />,
55
+ },
56
+ ],
57
+ },
27
58
  ]}
28
59
  />
29
60
  )
@@ -47,9 +78,9 @@ export const ProductOptionSection = ({
47
78
  {
48
79
  actions: [
49
80
  {
50
- label: t("actions.manage"),
51
- to: "options/manage",
52
- icon: <PencilSquare />,
81
+ label: t("actions.create"),
82
+ to: "options/create",
83
+ icon: <Plus />,
53
84
  },
54
85
  ],
55
86
  },
@@ -62,31 +93,18 @@ export const ProductOptionSection = ({
62
93
  <SectionRow
63
94
  title={option.title}
64
95
  key={option.id}
65
- value={option.values
66
- ?.sort((a, b) => {
67
- if (a.rank == null && b.rank == null) {
68
- return 0
69
- }
70
- if (a.rank == null) {
71
- return 1
72
- }
73
- if (b.rank == null) {
74
- return -1
75
- }
76
- return a.rank - b.rank
77
- })
78
- .map((val) => {
79
- return (
80
- <Badge
81
- key={val.value}
82
- size="2xsmall"
83
- className="flex min-w-[20px] items-center justify-center"
84
- >
85
- {val.value}
86
- </Badge>
87
- )
88
- })}
89
- actions={<OptionActions option={option} />}
96
+ value={option.values?.map((val) => {
97
+ return (
98
+ <Badge
99
+ key={val.value}
100
+ size="2xsmall"
101
+ className="flex min-w-[20px] items-center justify-center"
102
+ >
103
+ {val.value}
104
+ </Badge>
105
+ )
106
+ })}
107
+ actions={<OptionActions product={product} option={option} />}
90
108
  />
91
109
  )
92
110
  })}
@@ -0,0 +1,123 @@
1
+ import { zodResolver } from "@hookform/resolvers/zod"
2
+ import { Button, Input } from "@medusajs/ui"
3
+ import { useForm } from "react-hook-form"
4
+ import { useTranslation } from "react-i18next"
5
+ import { z } from "zod"
6
+
7
+ import { HttpTypes } from "@medusajs/types"
8
+ import { Form } from "../../../../../components/common/form"
9
+ import { ChipInput } from "../../../../../components/inputs/chip-input"
10
+ import { RouteDrawer, useRouteModal } from "../../../../../components/modals"
11
+ import { KeyboundForm } from "../../../../../components/utilities/keybound-form"
12
+ import { useUpdateProductOption } from "../../../../../hooks/api/products"
13
+
14
+ type EditProductOptionFormProps = {
15
+ option: HttpTypes.AdminProductOption
16
+ }
17
+
18
+ const CreateProductOptionSchema = z.object({
19
+ title: z.string().min(1),
20
+ values: z.array(z.string()).optional(),
21
+ })
22
+
23
+ export const CreateProductOptionForm = ({
24
+ option,
25
+ }: EditProductOptionFormProps) => {
26
+ const { t } = useTranslation()
27
+ const { handleSuccess } = useRouteModal()
28
+
29
+ const form = useForm<z.infer<typeof CreateProductOptionSchema>>({
30
+ defaultValues: {
31
+ title: option.title,
32
+ values: option.values.map((v: any) => v.value),
33
+ },
34
+ resolver: zodResolver(CreateProductOptionSchema),
35
+ })
36
+
37
+ const { mutateAsync, isPending } = useUpdateProductOption(
38
+ option.product_id,
39
+ option.id
40
+ )
41
+
42
+ const handleSubmit = form.handleSubmit(async (values) => {
43
+ mutateAsync(
44
+ {
45
+ id: option.id,
46
+ ...values,
47
+ },
48
+ {
49
+ onSuccess: () => {
50
+ handleSuccess()
51
+ },
52
+ }
53
+ )
54
+ })
55
+
56
+ return (
57
+ <RouteDrawer.Form form={form}>
58
+ <KeyboundForm
59
+ onSubmit={handleSubmit}
60
+ className="flex flex-1 flex-col overflow-hidden"
61
+ >
62
+ <RouteDrawer.Body className="flex flex-1 flex-col gap-y-4 overflow-auto">
63
+ <Form.Field
64
+ control={form.control}
65
+ name="title"
66
+ render={({ field }) => {
67
+ return (
68
+ <Form.Item>
69
+ <Form.Label>
70
+ {t("products.fields.options.optionTitle")}
71
+ </Form.Label>
72
+ <Form.Control>
73
+ <Input
74
+ {...field}
75
+ placeholder={t(
76
+ "products.fields.options.optionTitlePlaceholder"
77
+ )}
78
+ />
79
+ </Form.Control>
80
+ <Form.ErrorMessage />
81
+ </Form.Item>
82
+ )
83
+ }}
84
+ />
85
+ <Form.Field
86
+ control={form.control}
87
+ name="values"
88
+ render={({ field: { ...field } }) => {
89
+ return (
90
+ <Form.Item>
91
+ <Form.Label>
92
+ {t("products.fields.options.variations")}
93
+ </Form.Label>
94
+ <Form.Control>
95
+ <ChipInput
96
+ {...field}
97
+ placeholder={t(
98
+ "products.fields.options.variantionsPlaceholder"
99
+ )}
100
+ />
101
+ </Form.Control>
102
+ <Form.ErrorMessage />
103
+ </Form.Item>
104
+ )
105
+ }}
106
+ />
107
+ </RouteDrawer.Body>
108
+ <RouteDrawer.Footer>
109
+ <div className="flex items-center justify-end gap-x-2">
110
+ <RouteDrawer.Close asChild>
111
+ <Button variant="secondary" size="small">
112
+ {t("actions.cancel")}
113
+ </Button>
114
+ </RouteDrawer.Close>
115
+ <Button type="submit" size="small" isLoading={isPending}>
116
+ {t("actions.save")}
117
+ </Button>
118
+ </div>
119
+ </RouteDrawer.Footer>
120
+ </KeyboundForm>
121
+ </RouteDrawer.Form>
122
+ )
123
+ }
@@ -0,0 +1 @@
1
+ export * from "./edit-product-option-form"
@@ -0,0 +1 @@
1
+ export { ProductEditOption as Component } from "./product-edit-option"
@@ -0,0 +1,32 @@
1
+ import { Heading } from "@medusajs/ui"
2
+ import { useTranslation } from "react-i18next"
3
+ import { json, useParams } from "react-router-dom"
4
+ import { RouteDrawer } from "../../../components/modals"
5
+ import { useProduct } from "../../../hooks/api/products"
6
+ import { CreateProductOptionForm } from "./components/edit-product-option-form"
7
+
8
+ export const ProductEditOption = () => {
9
+ const { id, option_id } = useParams()
10
+ const { t } = useTranslation()
11
+
12
+ const { product, isPending, isFetching, isError, error } = useProduct(id!)
13
+
14
+ const option = product?.options.find((o) => o.id === option_id)
15
+
16
+ if (!isPending && !isFetching && !option) {
17
+ throw json({ message: `An option with ID ${option_id} was not found` }, 404)
18
+ }
19
+
20
+ if (isError) {
21
+ throw error
22
+ }
23
+
24
+ return (
25
+ <RouteDrawer>
26
+ <RouteDrawer.Header>
27
+ <Heading>{t("products.options.edit.header")}</Heading>
28
+ </RouteDrawer.Header>
29
+ {option && <CreateProductOptionForm option={option} />}
30
+ </RouteDrawer>
31
+ )
32
+ }
@@ -1,171 +0,0 @@
1
- // src/components/common/sortable-list/sortable-list.tsx
2
- import {
3
- DndContext,
4
- DragOverlay,
5
- KeyboardSensor,
6
- PointerSensor,
7
- defaultDropAnimationSideEffects,
8
- useSensor,
9
- useSensors
10
- } from "@dnd-kit/core";
11
- import {
12
- SortableContext,
13
- arrayMove,
14
- sortableKeyboardCoordinates,
15
- useSortable
16
- } from "@dnd-kit/sortable";
17
- import { CSS } from "@dnd-kit/utilities";
18
- import { DotsSix } from "@medusajs/icons";
19
- import { IconButton, clx } from "@medusajs/ui";
20
- import {
21
- Fragment,
22
- createContext,
23
- useContext,
24
- useMemo,
25
- useState
26
- } from "react";
27
- import { jsx, jsxs } from "react/jsx-runtime";
28
- var List = ({
29
- items,
30
- onChange,
31
- renderItem
32
- }) => {
33
- const [active, setActive] = useState(null);
34
- const [activeItem, activeIndex] = useMemo(() => {
35
- if (active === null) {
36
- return [null, null];
37
- }
38
- const index = items.findIndex(({ id }) => id === active.id);
39
- return [items[index], index];
40
- }, [active, items]);
41
- const sensors = useSensors(
42
- useSensor(PointerSensor),
43
- useSensor(KeyboardSensor, {
44
- coordinateGetter: sortableKeyboardCoordinates
45
- })
46
- );
47
- const handleDragStart = ({ active: active2 }) => {
48
- setActive(active2);
49
- };
50
- const handleDragEnd = ({ active: active2, over }) => {
51
- if (over && active2.id !== over.id) {
52
- const activeIndex2 = items.findIndex(({ id }) => id === active2.id);
53
- const overIndex = items.findIndex(({ id }) => id === over.id);
54
- onChange(arrayMove(items, activeIndex2, overIndex));
55
- }
56
- setActive(null);
57
- };
58
- const handleDragCancel = () => {
59
- setActive(null);
60
- };
61
- return /* @__PURE__ */ jsxs(
62
- DndContext,
63
- {
64
- sensors,
65
- onDragStart: handleDragStart,
66
- onDragEnd: handleDragEnd,
67
- onDragCancel: handleDragCancel,
68
- children: [
69
- /* @__PURE__ */ jsx(Overlay, { children: activeItem && activeIndex !== null ? renderItem(activeItem, activeIndex) : null }),
70
- /* @__PURE__ */ jsx(SortableContext, { items, children: /* @__PURE__ */ jsx(
71
- "ul",
72
- {
73
- role: "application",
74
- className: "flex list-inside list-none list-image-none flex-col p-0",
75
- children: items.map((item, index) => /* @__PURE__ */ jsx(Fragment, { children: renderItem(item, index) }, item.id))
76
- }
77
- ) })
78
- ]
79
- }
80
- );
81
- };
82
- var dropAnimationConfig = {
83
- sideEffects: defaultDropAnimationSideEffects({
84
- styles: {
85
- active: {
86
- opacity: "0.4"
87
- }
88
- }
89
- })
90
- };
91
- var Overlay = ({ children }) => {
92
- return /* @__PURE__ */ jsx(
93
- DragOverlay,
94
- {
95
- className: "shadow-elevation-card-hover overflow-hidden rounded-md [&>li]:border-b-0",
96
- dropAnimation: dropAnimationConfig,
97
- children
98
- }
99
- );
100
- };
101
- var SortableItemContext = createContext(null);
102
- var useSortableItemContext = () => {
103
- const context = useContext(SortableItemContext);
104
- if (!context) {
105
- throw new Error(
106
- "useSortableItemContext must be used within a SortableItemContext"
107
- );
108
- }
109
- return context;
110
- };
111
- var Item = ({
112
- id,
113
- className,
114
- children
115
- }) => {
116
- const {
117
- attributes,
118
- isDragging,
119
- listeners,
120
- setNodeRef,
121
- setActivatorNodeRef,
122
- transform,
123
- transition
124
- } = useSortable({ id });
125
- const context = useMemo(
126
- () => ({
127
- attributes,
128
- listeners,
129
- ref: setActivatorNodeRef,
130
- isDragging
131
- }),
132
- [attributes, listeners, setActivatorNodeRef, isDragging]
133
- );
134
- const style = {
135
- opacity: isDragging ? 0.4 : void 0,
136
- transform: CSS.Translate.toString(transform),
137
- transition
138
- };
139
- return /* @__PURE__ */ jsx(SortableItemContext.Provider, { value: context, children: /* @__PURE__ */ jsx(
140
- "li",
141
- {
142
- className: clx("transition-fg flex flex-1 list-none", className),
143
- ref: setNodeRef,
144
- style,
145
- children
146
- }
147
- ) });
148
- };
149
- var DragHandle = () => {
150
- const { attributes, listeners, ref } = useSortableItemContext();
151
- return /* @__PURE__ */ jsx(
152
- IconButton,
153
- {
154
- variant: "transparent",
155
- size: "small",
156
- ...attributes,
157
- ...listeners,
158
- ref,
159
- className: "cursor-grab touch-none active:cursor-grabbing",
160
- children: /* @__PURE__ */ jsx(DotsSix, { className: "text-ui-fg-muted" })
161
- }
162
- );
163
- };
164
- var SortableList = Object.assign(List, {
165
- Item,
166
- DragHandle
167
- });
168
-
169
- export {
170
- SortableList
171
- };