@medusajs/dashboard 2.10.4-snapshot-20250929174531 → 2.10.4-snapshot-20250930123356

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 (125) hide show
  1. package/dist/{add-campaign-promotions-3BB3BLFD.mjs → add-campaign-promotions-YATCZFPA.mjs} +3 -3
  2. package/dist/{api-key-management-detail-ZQLQKGYF.mjs → api-key-management-detail-6URA7AKM.mjs} +1 -2
  3. package/dist/app.js +152 -74
  4. package/dist/app.mjs +3 -4
  5. package/dist/{campaign-create-CQ3XBHSY.mjs → campaign-create-SGLXQU2F.mjs} +3 -2
  6. package/dist/{campaign-detail-LASOFZ2O.mjs → campaign-detail-6WW6QFB2.mjs} +5 -6
  7. package/dist/{categories-metadata-HUIY6V4F.mjs → categories-metadata-LISTDI2Y.mjs} +1 -2
  8. package/dist/{category-detail-ZJJBYVFX.mjs → category-detail-K3GNLMQZ.mjs} +2 -3
  9. package/dist/{category-products-7N4TITQ4.mjs → category-products-EGGFU5IA.mjs} +2 -3
  10. package/dist/{chunk-5WMJLYEP.mjs → chunk-4KGC42TY.mjs} +1 -1
  11. package/dist/{chunk-NFQXNOP7.mjs → chunk-55PVXDDC.mjs} +1 -1
  12. package/dist/{chunk-7DFTLGA5.mjs → chunk-7PAOPX4A.mjs} +102 -102
  13. package/dist/{chunk-U4R5MBF2.mjs → chunk-ASFB7W5A.mjs} +1 -1
  14. package/dist/{chunk-DKOCYXB5.mjs → chunk-CLIAKOWC.mjs} +10 -2
  15. package/dist/{chunk-AXXGAOQL.mjs → chunk-ENN7KGKR.mjs} +9 -4
  16. package/dist/{chunk-CY33DS7K.mjs → chunk-GOJZH5OP.mjs} +52 -1
  17. package/dist/{chunk-IP2QPPWC.mjs → chunk-HGAQ6CRN.mjs} +1 -1
  18. package/dist/{chunk-PAG2HG6I.mjs → chunk-LFSI4NJU.mjs} +94 -22
  19. package/dist/{chunk-7JJTWGHU.mjs → chunk-S34JJVBQ.mjs} +7 -0
  20. package/dist/{chunk-QPLPGRYF.mjs → chunk-TR3FWQXE.mjs} +1 -1
  21. package/dist/{chunk-CXTAH75K.mjs → chunk-VLNUSUNX.mjs} +1 -1
  22. package/dist/{chunk-RBDAWRFF.mjs → chunk-W4JWOYEI.mjs} +1 -1
  23. package/dist/{chunk-XR7I5HGZ.mjs → chunk-WKSE3SCT.mjs} +1 -1
  24. package/dist/{chunk-VWQYN2RW.mjs → chunk-ZEED3CMI.mjs} +1 -1
  25. package/dist/{collection-add-products-WKMNYPLS.mjs → collection-add-products-3FN6PUXN.mjs} +2 -3
  26. package/dist/{collection-detail-NONKXELG.mjs → collection-detail-3XJA3YAW.mjs} +2 -3
  27. package/dist/{collection-list-3ZHLS2LP.mjs → collection-list-SDEPSNRJ.mjs} +2 -3
  28. package/dist/{collection-metadata-J6P3K7U6.mjs → collection-metadata-U3U5IAXY.mjs} +1 -2
  29. package/dist/{customer-detail-5Y7ICDMA.mjs → customer-detail-3LRBZ3JI.mjs} +1 -2
  30. package/dist/{customer-group-detail-PXP73BFA.mjs → customer-group-detail-PSWUMSNT.mjs} +1 -2
  31. package/dist/{customer-group-list-3DB643XQ.mjs → customer-group-list-CWMPWYDT.mjs} +1 -2
  32. package/dist/{customers-add-customer-group-BVUVU46N.mjs → customers-add-customer-group-B2A4NE3V.mjs} +1 -2
  33. package/dist/{edit-rules-3MSTPCE5.mjs → edit-rules-5IC62HEP.mjs} +1 -2
  34. package/dist/{inventory-create-NEYX7PZJ.mjs → inventory-create-W5TWRGTB.mjs} +1 -2
  35. package/dist/{inventory-detail-66HDQL3W.mjs → inventory-detail-NA3TYSDI.mjs} +1 -2
  36. package/dist/{inventory-metadata-OSTUWM23.mjs → inventory-metadata-IHX3PKUU.mjs} +1 -2
  37. package/dist/{inventory-stock-XY2OCAY3.mjs → inventory-stock-N63HVL4Y.mjs} +1 -2
  38. package/dist/{location-detail-UZHD3IKW.mjs → location-detail-LTPCPYBB.mjs} +1 -2
  39. package/dist/{location-fulfillment-providers-D4RMKQXU.mjs → location-fulfillment-providers-D7RUW43H.mjs} +2 -3
  40. package/dist/{location-service-zone-shipping-option-create-OASLL2K7.mjs → location-service-zone-shipping-option-create-7OWIMXRU.mjs} +1 -2
  41. package/dist/{login-LQRL2ZDY.mjs → login-35YVS44T.mjs} +1 -2
  42. package/dist/{order-create-claim-7UF734QH.mjs → order-create-claim-IL5IJQDA.mjs} +1 -2
  43. package/dist/{order-create-edit-MZHUVTGE.mjs → order-create-edit-MZZBDG2K.mjs} +1 -2
  44. package/dist/{order-create-exchange-2UGEF65S.mjs → order-create-exchange-CWS4HFYS.mjs} +1 -2
  45. package/dist/{order-create-fulfillment-HGJ2YPUB.mjs → order-create-fulfillment-I22AFZNL.mjs} +1 -2
  46. package/dist/{order-create-refund-CJDKVBSE.mjs → order-create-refund-MGNKZZU7.mjs} +18 -79
  47. package/dist/{order-create-shipment-3FDVQ6WT.mjs → order-create-shipment-DQ2MGT73.mjs} +1 -2
  48. package/dist/{order-detail-SEPCRJW5.mjs → order-detail-G3IQFZ4U.mjs} +4 -8
  49. package/dist/{order-edit-billing-address-J75NQFRY.mjs → order-edit-billing-address-LBI4BH2D.mjs} +1 -2
  50. package/dist/{order-edit-email-ABFQKE6A.mjs → order-edit-email-LZIAGMIQ.mjs} +1 -2
  51. package/dist/{order-edit-shipping-address-OXW7TAJD.mjs → order-edit-shipping-address-7ASMMZHB.mjs} +1 -2
  52. package/dist/{order-metadata-5NF3ICQL.mjs → order-metadata-WKPBFYBS.mjs} +1 -2
  53. package/dist/{order-receive-return-IM65P7XQ.mjs → order-receive-return-5NEE4MCK.mjs} +1 -2
  54. package/dist/{order-request-transfer-LZ25KEDA.mjs → order-request-transfer-3VT2ZUA7.mjs} +1 -2
  55. package/dist/{price-list-create-EC5VGCMW.mjs → price-list-create-RSXHRPDW.mjs} +2 -3
  56. package/dist/{price-list-detail-CRTJA5O4.mjs → price-list-detail-27WN2S6M.mjs} +2 -3
  57. package/dist/{price-list-prices-add-HYCM4QDY.mjs → price-list-prices-add-P76O76X3.mjs} +2 -3
  58. package/dist/{product-attributes-WVQRK3GQ.mjs → product-attributes-XSMFVMPL.mjs} +4 -5
  59. package/dist/{product-create-PWSPOVUS.mjs → product-create-IGZFHXVZ.mjs} +4 -5
  60. package/dist/{product-create-variant-V2QGXFEF.mjs → product-create-variant-3A7UARG7.mjs} +1 -2
  61. package/dist/{product-detail-EBPCCBI4.mjs → product-detail-CW42KVKT.mjs} +4 -5
  62. package/dist/{product-edit-5E6D43KE.mjs → product-edit-EXLC7FN7.mjs} +4 -5
  63. package/dist/{product-export-VFC3I5DK.mjs → product-export-EIIBIYBL.mjs} +2 -3
  64. package/dist/{product-import-V7EZJ2TU.mjs → product-import-WXFKSQMH.mjs} +1 -2
  65. package/dist/{product-list-FFZO57JG.mjs → product-list-KEND4NTM.mjs} +2 -3
  66. package/dist/{product-media-TRKQTA4G.mjs → product-media-NJZ6JSA7.mjs} +2 -2
  67. package/dist/{product-metadata-VYQ65KYI.mjs → product-metadata-6WVU7KCL.mjs} +1 -2
  68. package/dist/{product-organization-OCVSTKEK.mjs → product-organization-V2LE3CYO.mjs} +4 -5
  69. package/dist/{product-shipping-profile-SG6NDHF4.mjs → product-shipping-profile-K4FB5YNC.mjs} +4 -5
  70. package/dist/{product-stock-LJRYRSKN.mjs → product-stock-EYYSNQN6.mjs} +1 -2
  71. package/dist/{product-tag-create-EB5CVUOP.mjs → product-tag-create-LZJJQDDN.mjs} +1 -2
  72. package/dist/{product-tag-detail-V5CZY4R4.mjs → product-tag-detail-IZWWHAL4.mjs} +4 -5
  73. package/dist/{product-tag-edit-YATSW5OK.mjs → product-tag-edit-GJ7T5EWE.mjs} +1 -2
  74. package/dist/{product-tag-list-2LFGEFGL.mjs → product-tag-list-CT5SDORF.mjs} +4 -5
  75. package/dist/{product-tag-metadata-R5P5FWAZ.mjs → product-tag-metadata-2PE6F6PT.mjs} +1 -2
  76. package/dist/{product-type-detail-BZNI5GJ5.mjs → product-type-detail-X7TH5D5P.mjs} +2 -3
  77. package/dist/{product-type-metadata-SUQHWLWA.mjs → product-type-metadata-UBVJNWEL.mjs} +1 -2
  78. package/dist/{product-variant-detail-W2JHQQQJ.mjs → product-variant-detail-IUAHUIF3.mjs} +1 -2
  79. package/dist/{product-variant-edit-DSY77FF4.mjs → product-variant-edit-7QDJ2IRD.mjs} +1 -2
  80. package/dist/{product-variant-metadata-HE3MRTJB.mjs → product-variant-metadata-VNDDDM3T.mjs} +1 -2
  81. package/dist/{promotion-add-campaign-YOUUM6RB.mjs → promotion-add-campaign-SOGZKDNX.mjs} +2 -2
  82. package/dist/{promotion-create-NBFV4XQV.mjs → promotion-create-DRWLH3CY.mjs} +8 -5
  83. package/dist/{promotion-detail-247QD6DA.mjs → promotion-detail-VHNQCTRH.mjs} +3 -4
  84. package/dist/{promotion-list-WDHOSD55.mjs → promotion-list-6KMDX6OB.mjs} +3 -3
  85. package/dist/{refund-reason-create-45ZZOX7F.mjs → refund-reason-create-77GSQ4W5.mjs} +38 -3
  86. package/dist/{refund-reason-edit-E2HDAQZI.mjs → refund-reason-edit-UHR7VTDK.mjs} +49 -1
  87. package/dist/{refund-reason-list-WI7NHRDS.mjs → refund-reason-list-WIIPT75C.mjs} +3 -4
  88. package/dist/{region-metadata-3JIGHAUI.mjs → region-metadata-6VLWB5VQ.mjs} +1 -2
  89. package/dist/{reservation-detail-FENCNQDA.mjs → reservation-detail-3ATQ33U7.mjs} +1 -2
  90. package/dist/{reservation-metadata-DQ3A7MHU.mjs → reservation-metadata-2SVXKSIC.mjs} +1 -2
  91. package/dist/{reset-password-LCVV4NOA.mjs → reset-password-AOR576NC.mjs} +1 -1
  92. package/dist/{return-reason-list-FW7OYUOW.mjs → return-reason-list-T7KQHIYV.mjs} +1 -1
  93. package/dist/{sales-channel-add-products-G4EUOCWY.mjs → sales-channel-add-products-UFRCO4JR.mjs} +2 -3
  94. package/dist/{sales-channel-detail-NT7PEVVH.mjs → sales-channel-detail-4B6KT7EU.mjs} +2 -3
  95. package/dist/{sales-channel-list-REV2RETE.mjs → sales-channel-list-3KAKOZV7.mjs} +1 -2
  96. package/dist/{sales-channel-metadata-O5O6ADG5.mjs → sales-channel-metadata-VWG77T3Y.mjs} +1 -2
  97. package/dist/{shipping-option-type-create-7FSJNHHA.mjs → shipping-option-type-create-ZSUEJDPC.mjs} +1 -2
  98. package/dist/{shipping-option-type-detail-6UQST7RY.mjs → shipping-option-type-detail-LUIV6WLP.mjs} +2 -3
  99. package/dist/{shipping-option-type-edit-B475WRRR.mjs → shipping-option-type-edit-MC4UYHRM.mjs} +1 -2
  100. package/dist/{shipping-option-type-list-DTETSFSA.mjs → shipping-option-type-list-AA3VLD4U.mjs} +2 -3
  101. package/dist/{shipping-profile-metadata-PRINFNSY.mjs → shipping-profile-metadata-37X46LSP.mjs} +1 -2
  102. package/dist/{store-detail-QKF2TVNW.mjs → store-detail-PGMGDA2T.mjs} +1 -2
  103. package/dist/{store-metadata-M6GIKI5P.mjs → store-metadata-DPM7CH4C.mjs} +1 -2
  104. package/dist/{tax-region-create-4DTM3RTZ.mjs → tax-region-create-EFDLXWCS.mjs} +2 -3
  105. package/dist/{tax-region-detail-SLCI3JYL.mjs → tax-region-detail-S5R5D4KY.mjs} +2 -3
  106. package/dist/{tax-region-edit-CJ63JXFQ.mjs → tax-region-edit-ECTOKAGZ.mjs} +1 -2
  107. package/dist/{tax-region-province-detail-BGL2USQF.mjs → tax-region-province-detail-7DEEXMWA.mjs} +1 -2
  108. package/dist/{tax-region-tax-override-create-L4WOTSBO.mjs → tax-region-tax-override-create-6EHKZAZ4.mjs} +4 -5
  109. package/dist/{tax-region-tax-override-edit-2JAVNE37.mjs → tax-region-tax-override-edit-AZBQQPYI.mjs} +4 -5
  110. package/dist/{user-metadata-DFTGB46F.mjs → user-metadata-HPKKLNTP.mjs} +1 -2
  111. package/dist/{workflow-execution-detail-YNT2RKIP.mjs → workflow-execution-detail-Z6JEL2HO.mjs} +1 -2
  112. package/package.json +9 -9
  113. package/src/hooks/table/columns/use-refund-reason-table-columns.tsx +7 -0
  114. package/src/i18n/translations/$schema.json +36 -2
  115. package/src/i18n/translations/en.json +10 -2
  116. package/src/routes/campaigns/campaign-create/components/create-campaign-form/create-campaign-form.tsx +7 -2
  117. package/src/routes/campaigns/campaign-detail/components/campaign-budget/campaign-budget.tsx +5 -1
  118. package/src/routes/campaigns/common/components/create-campaign-form-fields/create-campaign-form-fields.tsx +50 -1
  119. package/src/routes/campaigns/common/constants.ts +1 -0
  120. package/src/routes/orders/order-create-refund/components/create-refund-form/create-refund-form.tsx +12 -76
  121. package/src/routes/orders/order-detail/components/order-summary-section/order-summary-section.tsx +1 -5
  122. package/src/routes/promotions/promotion-create/components/create-promotion-form/create-promotion-form.tsx +7 -0
  123. package/src/routes/refund-reasons/refund-reason-create/components/refund-reason-create-form/refund-reason-create-form.tsx +46 -0
  124. package/src/routes/refund-reasons/refund-reason-edit/components/refund-reason-edit-form/refund-reason-edit-form.tsx +23 -1
  125. package/dist/chunk-5U3FFMC7.mjs +0 -84
@@ -22,9 +22,8 @@ import "./chunk-OZPB6JBL.mjs";
22
22
  import "./chunk-OC7BQLYI.mjs";
23
23
  import "./chunk-S4DMV3ZT.mjs";
24
24
  import "./chunk-67ORSRVT.mjs";
25
- import "./chunk-PAG2HG6I.mjs";
25
+ import "./chunk-LFSI4NJU.mjs";
26
26
  import "./chunk-KOSCMAIC.mjs";
27
- import "./chunk-5U3FFMC7.mjs";
28
27
  import "./chunk-X6DSNTTX.mjs";
29
28
  import "./chunk-I6E6CALJ.mjs";
30
29
  import "./chunk-RGP3IXX4.mjs";
@@ -11,9 +11,8 @@ import "./chunk-LPEUYMRK.mjs";
11
11
  import "./chunk-OC7BQLYI.mjs";
12
12
  import "./chunk-S4DMV3ZT.mjs";
13
13
  import "./chunk-OBQI23QM.mjs";
14
- import "./chunk-PAG2HG6I.mjs";
14
+ import "./chunk-LFSI4NJU.mjs";
15
15
  import "./chunk-KOSCMAIC.mjs";
16
- import "./chunk-5U3FFMC7.mjs";
17
16
  import "./chunk-X6DSNTTX.mjs";
18
17
  import "./chunk-I6E6CALJ.mjs";
19
18
  import "./chunk-RGP3IXX4.mjs";
@@ -11,9 +11,8 @@ import {
11
11
  } from "./chunk-OBQI23QM.mjs";
12
12
  import {
13
13
  useCreateShippingOptionType
14
- } from "./chunk-PAG2HG6I.mjs";
14
+ } from "./chunk-LFSI4NJU.mjs";
15
15
  import "./chunk-KOSCMAIC.mjs";
16
- import "./chunk-5U3FFMC7.mjs";
17
16
  import "./chunk-X6DSNTTX.mjs";
18
17
  import "./chunk-I6E6CALJ.mjs";
19
18
  import "./chunk-RGP3IXX4.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useDeleteShippingOptionTypeAction
3
- } from "./chunk-VWQYN2RW.mjs";
3
+ } from "./chunk-ZEED3CMI.mjs";
4
4
  import {
5
5
  SingleColumnPage
6
6
  } from "./chunk-GIZFNLKK.mjs";
@@ -18,9 +18,8 @@ import "./chunk-S4DMV3ZT.mjs";
18
18
  import {
19
19
  shippingOptionTypesQueryKeys,
20
20
  useShippingOptionType
21
- } from "./chunk-PAG2HG6I.mjs";
21
+ } from "./chunk-LFSI4NJU.mjs";
22
22
  import "./chunk-KOSCMAIC.mjs";
23
- import "./chunk-5U3FFMC7.mjs";
24
23
  import "./chunk-X6DSNTTX.mjs";
25
24
  import "./chunk-I6E6CALJ.mjs";
26
25
  import "./chunk-RGP3IXX4.mjs";
@@ -12,9 +12,8 @@ import {
12
12
  import {
13
13
  useShippingOptionType,
14
14
  useUpdateShippingOptionType
15
- } from "./chunk-PAG2HG6I.mjs";
15
+ } from "./chunk-LFSI4NJU.mjs";
16
16
  import "./chunk-KOSCMAIC.mjs";
17
- import "./chunk-5U3FFMC7.mjs";
18
17
  import "./chunk-X6DSNTTX.mjs";
19
18
  import "./chunk-I6E6CALJ.mjs";
20
19
  import "./chunk-RGP3IXX4.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useDeleteShippingOptionTypeAction
3
- } from "./chunk-VWQYN2RW.mjs";
3
+ } from "./chunk-ZEED3CMI.mjs";
4
4
  import {
5
5
  TextCell
6
6
  } from "./chunk-MSDRGCRR.mjs";
@@ -40,9 +40,8 @@ import "./chunk-S4DMV3ZT.mjs";
40
40
  import "./chunk-67ORSRVT.mjs";
41
41
  import {
42
42
  useShippingOptionTypes
43
- } from "./chunk-PAG2HG6I.mjs";
43
+ } from "./chunk-LFSI4NJU.mjs";
44
44
  import "./chunk-KOSCMAIC.mjs";
45
- import "./chunk-5U3FFMC7.mjs";
46
45
  import "./chunk-X6DSNTTX.mjs";
47
46
  import "./chunk-I6E6CALJ.mjs";
48
47
  import "./chunk-RGP3IXX4.mjs";
@@ -8,9 +8,8 @@ import "./chunk-LPEUYMRK.mjs";
8
8
  import "./chunk-OC7BQLYI.mjs";
9
9
  import "./chunk-S4DMV3ZT.mjs";
10
10
  import "./chunk-OBQI23QM.mjs";
11
- import "./chunk-PAG2HG6I.mjs";
11
+ import "./chunk-LFSI4NJU.mjs";
12
12
  import "./chunk-KOSCMAIC.mjs";
13
- import "./chunk-5U3FFMC7.mjs";
14
13
  import "./chunk-X6DSNTTX.mjs";
15
14
  import "./chunk-I6E6CALJ.mjs";
16
15
  import "./chunk-RGP3IXX4.mjs";
@@ -34,9 +34,8 @@ import {
34
34
  import "./chunk-OC7BQLYI.mjs";
35
35
  import "./chunk-S4DMV3ZT.mjs";
36
36
  import "./chunk-67ORSRVT.mjs";
37
- import "./chunk-PAG2HG6I.mjs";
37
+ import "./chunk-LFSI4NJU.mjs";
38
38
  import "./chunk-KOSCMAIC.mjs";
39
- import "./chunk-5U3FFMC7.mjs";
40
39
  import "./chunk-X6DSNTTX.mjs";
41
40
  import "./chunk-I6E6CALJ.mjs";
42
41
  import "./chunk-RGP3IXX4.mjs";
@@ -11,9 +11,8 @@ import "./chunk-LPEUYMRK.mjs";
11
11
  import "./chunk-OC7BQLYI.mjs";
12
12
  import "./chunk-S4DMV3ZT.mjs";
13
13
  import "./chunk-OBQI23QM.mjs";
14
- import "./chunk-PAG2HG6I.mjs";
14
+ import "./chunk-LFSI4NJU.mjs";
15
15
  import "./chunk-KOSCMAIC.mjs";
16
- import "./chunk-5U3FFMC7.mjs";
17
16
  import "./chunk-X6DSNTTX.mjs";
18
17
  import "./chunk-I6E6CALJ.mjs";
19
18
  import "./chunk-RGP3IXX4.mjs";
@@ -24,14 +24,13 @@ import {
24
24
  import "./chunk-4GQOUCX6.mjs";
25
25
  import {
26
26
  i18n
27
- } from "./chunk-DKOCYXB5.mjs";
27
+ } from "./chunk-CLIAKOWC.mjs";
28
28
  import "./chunk-DG7J63J2.mjs";
29
29
  import {
30
30
  Form
31
31
  } from "./chunk-OBQI23QM.mjs";
32
- import "./chunk-PAG2HG6I.mjs";
32
+ import "./chunk-LFSI4NJU.mjs";
33
33
  import "./chunk-KOSCMAIC.mjs";
34
- import "./chunk-5U3FFMC7.mjs";
35
34
  import "./chunk-X6DSNTTX.mjs";
36
35
  import {
37
36
  useCreateTaxRegion
@@ -20,10 +20,10 @@ import {
20
20
  import {
21
21
  useTaxRegionTableQuery
22
22
  } from "./chunk-RIV7FKGN.mjs";
23
- import "./chunk-4FM6S5CX.mjs";
24
23
  import {
25
24
  formatProvider
26
25
  } from "./chunk-IR5DHEKS.mjs";
26
+ import "./chunk-4FM6S5CX.mjs";
27
27
  import "./chunk-YEDAFXMB.mjs";
28
28
  import "./chunk-HQKGZADC.mjs";
29
29
  import "./chunk-EMIHDNB7.mjs";
@@ -47,9 +47,8 @@ import {
47
47
  import "./chunk-OZPB6JBL.mjs";
48
48
  import "./chunk-OC7BQLYI.mjs";
49
49
  import "./chunk-S4DMV3ZT.mjs";
50
- import "./chunk-PAG2HG6I.mjs";
50
+ import "./chunk-LFSI4NJU.mjs";
51
51
  import "./chunk-KOSCMAIC.mjs";
52
- import "./chunk-5U3FFMC7.mjs";
53
52
  import {
54
53
  useTaxRates
55
54
  } from "./chunk-X6DSNTTX.mjs";
@@ -18,9 +18,8 @@ import {
18
18
  import {
19
19
  Form
20
20
  } from "./chunk-OBQI23QM.mjs";
21
- import "./chunk-PAG2HG6I.mjs";
21
+ import "./chunk-LFSI4NJU.mjs";
22
22
  import "./chunk-KOSCMAIC.mjs";
23
- import "./chunk-5U3FFMC7.mjs";
24
23
  import "./chunk-X6DSNTTX.mjs";
25
24
  import {
26
25
  useTaxRegion,
@@ -34,9 +34,8 @@ import {
34
34
  import "./chunk-OZPB6JBL.mjs";
35
35
  import "./chunk-OC7BQLYI.mjs";
36
36
  import "./chunk-S4DMV3ZT.mjs";
37
- import "./chunk-PAG2HG6I.mjs";
37
+ import "./chunk-LFSI4NJU.mjs";
38
38
  import "./chunk-KOSCMAIC.mjs";
39
- import "./chunk-5U3FFMC7.mjs";
40
39
  import {
41
40
  useTaxRates
42
41
  } from "./chunk-X6DSNTTX.mjs";
@@ -3,9 +3,9 @@ import {
3
3
  TargetItem,
4
4
  TaxRateRuleReferenceSchema,
5
5
  createTaxRulePayload
6
- } from "./chunk-XR7I5HGZ.mjs";
6
+ } from "./chunk-WKSE3SCT.mjs";
7
7
  import "./chunk-ENNEJRBR.mjs";
8
- import "./chunk-7JJTWGHU.mjs";
8
+ import "./chunk-S34JJVBQ.mjs";
9
9
  import "./chunk-GLVCH422.mjs";
10
10
  import "./chunk-QMRGIWOP.mjs";
11
11
  import "./chunk-2WZUO66T.mjs";
@@ -54,7 +54,7 @@ import "./chunk-2PGNKUXS.mjs";
54
54
  import "./chunk-W7625H47.mjs";
55
55
  import "./chunk-DLZWPHHO.mjs";
56
56
  import "./chunk-LSEYENCI.mjs";
57
- import "./chunk-5WMJLYEP.mjs";
57
+ import "./chunk-4KGC42TY.mjs";
58
58
  import "./chunk-Z26G6WFJ.mjs";
59
59
  import "./chunk-M3VFKDXJ.mjs";
60
60
  import "./chunk-C76H5USB.mjs";
@@ -83,9 +83,8 @@ import "./chunk-67ORSRVT.mjs";
83
83
  import {
84
84
  Form
85
85
  } from "./chunk-OBQI23QM.mjs";
86
- import "./chunk-PAG2HG6I.mjs";
86
+ import "./chunk-LFSI4NJU.mjs";
87
87
  import "./chunk-KOSCMAIC.mjs";
88
- import "./chunk-5U3FFMC7.mjs";
89
88
  import {
90
89
  useCreateTaxRate
91
90
  } from "./chunk-X6DSNTTX.mjs";
@@ -3,9 +3,9 @@ import {
3
3
  TargetItem,
4
4
  TaxRateRuleReferenceSchema,
5
5
  createTaxRulePayload
6
- } from "./chunk-XR7I5HGZ.mjs";
6
+ } from "./chunk-WKSE3SCT.mjs";
7
7
  import "./chunk-ENNEJRBR.mjs";
8
- import "./chunk-7JJTWGHU.mjs";
8
+ import "./chunk-S34JJVBQ.mjs";
9
9
  import "./chunk-GLVCH422.mjs";
10
10
  import "./chunk-QMRGIWOP.mjs";
11
11
  import "./chunk-2WZUO66T.mjs";
@@ -54,7 +54,7 @@ import "./chunk-2PGNKUXS.mjs";
54
54
  import "./chunk-W7625H47.mjs";
55
55
  import "./chunk-DLZWPHHO.mjs";
56
56
  import "./chunk-LSEYENCI.mjs";
57
- import "./chunk-5WMJLYEP.mjs";
57
+ import "./chunk-4KGC42TY.mjs";
58
58
  import "./chunk-Z26G6WFJ.mjs";
59
59
  import "./chunk-M3VFKDXJ.mjs";
60
60
  import "./chunk-C76H5USB.mjs";
@@ -83,9 +83,8 @@ import "./chunk-67ORSRVT.mjs";
83
83
  import {
84
84
  Form
85
85
  } from "./chunk-OBQI23QM.mjs";
86
- import "./chunk-PAG2HG6I.mjs";
86
+ import "./chunk-LFSI4NJU.mjs";
87
87
  import "./chunk-KOSCMAIC.mjs";
88
- import "./chunk-5U3FFMC7.mjs";
89
88
  import {
90
89
  useTaxRate,
91
90
  useUpdateTaxRate
@@ -11,9 +11,8 @@ import "./chunk-LPEUYMRK.mjs";
11
11
  import "./chunk-OC7BQLYI.mjs";
12
12
  import "./chunk-S4DMV3ZT.mjs";
13
13
  import "./chunk-OBQI23QM.mjs";
14
- import "./chunk-PAG2HG6I.mjs";
14
+ import "./chunk-LFSI4NJU.mjs";
15
15
  import "./chunk-KOSCMAIC.mjs";
16
- import "./chunk-5U3FFMC7.mjs";
17
16
  import "./chunk-X6DSNTTX.mjs";
18
17
  import "./chunk-I6E6CALJ.mjs";
19
18
  import "./chunk-RGP3IXX4.mjs";
@@ -20,9 +20,8 @@ import {
20
20
  import {
21
21
  useDocumentDirection
22
22
  } from "./chunk-S4DMV3ZT.mjs";
23
- import "./chunk-PAG2HG6I.mjs";
23
+ import "./chunk-LFSI4NJU.mjs";
24
24
  import "./chunk-KOSCMAIC.mjs";
25
- import "./chunk-5U3FFMC7.mjs";
26
25
  import "./chunk-X6DSNTTX.mjs";
27
26
  import "./chunk-I6E6CALJ.mjs";
28
27
  import "./chunk-RGP3IXX4.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medusajs/dashboard",
3
- "version": "2.10.4-snapshot-20250929174531",
3
+ "version": "2.10.4-snapshot-20250930123356",
4
4
  "scripts": {
5
5
  "generate:static": "node ./scripts/generate-currencies.js && prettier --write ./src/lib/currencies.ts",
6
6
  "dev": "vite",
@@ -45,10 +45,10 @@
45
45
  "@dnd-kit/utilities": "^3.2.2",
46
46
  "@hookform/error-message": "^2.0.1",
47
47
  "@hookform/resolvers": "3.4.2",
48
- "@medusajs/admin-shared": "2.10.4-snapshot-20250929174531",
49
- "@medusajs/icons": "2.10.4-snapshot-20250929174531",
50
- "@medusajs/js-sdk": "2.10.4-snapshot-20250929174531",
51
- "@medusajs/ui": "4.0.24-snapshot-20250929174531",
48
+ "@medusajs/admin-shared": "2.10.4-snapshot-20250930123356",
49
+ "@medusajs/icons": "2.10.4-snapshot-20250930123356",
50
+ "@medusajs/js-sdk": "2.10.4-snapshot-20250930123356",
51
+ "@medusajs/ui": "4.0.24-snapshot-20250930123356",
52
52
  "@radix-ui/react-dialog": "1.1.4",
53
53
  "@radix-ui/react-dismissable-layer": "1.1.4",
54
54
  "@tanstack/react-query": "5.64.2",
@@ -78,10 +78,10 @@
78
78
  "zod": "3.25.76"
79
79
  },
80
80
  "devDependencies": {
81
- "@medusajs/admin-shared": "2.10.4-snapshot-20250929174531",
82
- "@medusajs/admin-vite-plugin": "2.10.4-snapshot-20250929174531",
83
- "@medusajs/types": "2.10.4-snapshot-20250929174531",
84
- "@medusajs/ui-preset": "2.10.4-snapshot-20250929174531",
81
+ "@medusajs/admin-shared": "2.10.4-snapshot-20250930123356",
82
+ "@medusajs/admin-vite-plugin": "2.10.4-snapshot-20250930123356",
83
+ "@medusajs/types": "2.10.4-snapshot-20250930123356",
84
+ "@medusajs/ui-preset": "2.10.4-snapshot-20250930123356",
85
85
  "@types/node": "^20.11.15",
86
86
  "@types/react": "^18.2.79",
87
87
  "@types/react-dom": "^18.2.25",
@@ -18,6 +18,13 @@ export const useRefundReasonTableColumns = () => {
18
18
  sortAscLabel: t("filters.sorting.alphabeticallyAsc"),
19
19
  sortDescLabel: t("filters.sorting.alphabeticallyDesc"),
20
20
  }),
21
+ columnHelper.accessor("code", {
22
+ header: () => t("fields.code"),
23
+ enableSorting: true,
24
+ sortLabel: t("fields.code"),
25
+ sortAscLabel: t("filters.sorting.alphabeticallyAsc"),
26
+ sortDescLabel: t("filters.sorting.alphabeticallyDesc"),
27
+ }),
21
28
  columnHelper.accessor("description", {
22
29
  header: () => t("fields.description"),
23
30
  cell: ({ getValue }) => <DescriptionCell description={getValue()} />,
@@ -8371,9 +8371,30 @@
8371
8371
  },
8372
8372
  "used": {
8373
8373
  "type": "string"
8374
+ },
8375
+ "budgetAttribute": {
8376
+ "type": "string"
8377
+ },
8378
+ "budgetAttributeTooltip": {
8379
+ "type": "string"
8380
+ },
8381
+ "limitBudgetAttributeCustomer": {
8382
+ "type": "string"
8383
+ },
8384
+ "limitBudgetAttributeEmail": {
8385
+ "type": "string"
8374
8386
  }
8375
8387
  },
8376
- "required": ["type", "currency", "limit", "used"],
8388
+ "required": [
8389
+ "type",
8390
+ "currency",
8391
+ "limit",
8392
+ "used",
8393
+ "budgetAttribute",
8394
+ "budgetAttributeTooltip",
8395
+ "limitBudgetAttributeCustomer",
8396
+ "limitBudgetAttributeEmail"
8397
+ ],
8377
8398
  "additionalProperties": false
8378
8399
  },
8379
8400
  "type": {
@@ -10306,6 +10327,19 @@
10306
10327
  "required": ["label", "placeholder"],
10307
10328
  "additionalProperties": false
10308
10329
  },
10330
+ "code": {
10331
+ "type": "object",
10332
+ "properties": {
10333
+ "label": {
10334
+ "type": "string"
10335
+ },
10336
+ "placeholder": {
10337
+ "type": "string"
10338
+ }
10339
+ },
10340
+ "required": ["label", "placeholder"],
10341
+ "additionalProperties": false
10342
+ },
10309
10343
  "description": {
10310
10344
  "type": "object",
10311
10345
  "properties": {
@@ -10320,7 +10354,7 @@
10320
10354
  "additionalProperties": false
10321
10355
  }
10322
10356
  },
10323
- "required": ["label", "description"],
10357
+ "required": ["label", "code", "description"],
10324
10358
  "additionalProperties": false
10325
10359
  }
10326
10360
  },
@@ -2204,7 +2204,7 @@
2204
2204
  "delete": {
2205
2205
  "title": "Are you sure?",
2206
2206
  "description": "You are about to delete the campaign '{{name}}'. This action cannot be undone.",
2207
- "successToast": "Campaign '{{name}}' was successfully created."
2207
+ "successToast": "Campaign '{{name}}' was successfully deleted."
2208
2208
  },
2209
2209
  "edit": {
2210
2210
  "header": "Edit Campaign",
@@ -2248,7 +2248,11 @@
2248
2248
  "type": "Type",
2249
2249
  "currency": "Currency",
2250
2250
  "limit": "Limit",
2251
- "used": "Used"
2251
+ "used": "Used",
2252
+ "budgetAttribute": "Limit usage per",
2253
+ "budgetAttributeTooltip": "Define how many times the promotion can be used by a specific customer or email.",
2254
+ "limitBudgetAttributeCustomer": "Budget limit per customer",
2255
+ "limitBudgetAttributeEmail": "Budget limit per email"
2252
2256
  },
2253
2257
  "type": {
2254
2258
  "spend": {
@@ -2771,6 +2775,10 @@
2771
2775
  "label": "Label",
2772
2776
  "placeholder": "Gesture of goodwill"
2773
2777
  },
2778
+ "code": {
2779
+ "label": "Code",
2780
+ "placeholder": "gesture_of_goodwill"
2781
+ },
2774
2782
  "description": {
2775
2783
  "label": "Description",
2776
2784
  "placeholder": "Customer had a bad shopping experience"
@@ -21,8 +21,9 @@ export const CreateCampaignSchema = zod.object({
21
21
  starts_at: zod.date().nullable(),
22
22
  ends_at: zod.date().nullable(),
23
23
  budget: zod.object({
24
+ attribute: zod.string().nullish(),
24
25
  limit: zod.number().min(0).nullish(),
25
- type: zod.enum(["spend", "usage"]),
26
+ type: zod.enum(["spend", "usage", "use_by_attribute"]),
26
27
  currency_code: zod.string().nullish(),
27
28
  }),
28
29
  })
@@ -38,6 +39,9 @@ export const CreateCampaignForm = () => {
38
39
  })
39
40
 
40
41
  const handleSubmit = form.handleSubmit(async (data) => {
42
+ const attribute = data.budget.attribute || null
43
+ const type = attribute ? "use_by_attribute" : data.budget.type
44
+
41
45
  await mutateAsync(
42
46
  {
43
47
  name: data.name,
@@ -46,7 +50,8 @@ export const CreateCampaignForm = () => {
46
50
  starts_at: data.starts_at,
47
51
  ends_at: data.ends_at,
48
52
  budget: {
49
- type: data.budget.type,
53
+ type,
54
+ attribute,
50
55
  limit: data.budget.limit ? data.budget.limit : undefined,
51
56
  currency_code: data.budget.currency_code,
52
57
  },
@@ -25,7 +25,11 @@ export const CampaignBudget = ({ campaign }: CampaignBudgetProps) => {
25
25
  className="text-ui-fg-subtle ms-10 mt-[1.5px] font-normal"
26
26
  level="h3"
27
27
  >
28
- {t("campaigns.fields.budget_limit")}
28
+ {campaign.budget?.type === "use_by_attribute"
29
+ ? campaign.budget?.attribute === "customer_id"
30
+ ? t("campaigns.budget.fields.limitBudgetAttributeCustomer")
31
+ : t("campaigns.budget.fields.limitBudgetAttributeEmail")
32
+ : t("campaigns.fields.budget_limit")}
29
33
  </Heading>
30
34
  </div>
31
35
 
@@ -19,6 +19,7 @@ import {
19
19
  currencies,
20
20
  getCurrencySymbol,
21
21
  } from "../../../../../lib/data/currencies"
22
+ import { Combobox } from "../../../../../components/inputs/combobox"
22
23
 
23
24
  export const CreateCampaignFormFields = ({ form, fieldScope = "" }) => {
24
25
  const { t } = useTranslation()
@@ -209,17 +210,19 @@ export const CreateCampaignFormFields = ({ form, fieldScope = "" }) => {
209
210
  <Form.Control>
210
211
  <RadioGroup
211
212
  dir={direction}
212
- className="flex gap-y-3"
213
+ className="flex gap-x-4 gap-y-3"
213
214
  {...field}
214
215
  onValueChange={field.onChange}
215
216
  >
216
217
  <RadioGroup.ChoiceBox
218
+ className="flex-1"
217
219
  value={"usage"}
218
220
  label={t("campaigns.budget.type.usage.title")}
219
221
  description={t("campaigns.budget.type.usage.description")}
220
222
  />
221
223
 
222
224
  <RadioGroup.ChoiceBox
225
+ className="flex-1"
223
226
  value={"spend"}
224
227
  label={t("campaigns.budget.type.spend.title")}
225
228
  description={t("campaigns.budget.type.spend.description")}
@@ -342,6 +345,52 @@ export const CreateCampaignFormFields = ({ form, fieldScope = "" }) => {
342
345
  )
343
346
  }}
344
347
  />
348
+
349
+ {!isTypeSpend && (
350
+ <Form.Field
351
+ control={form.control}
352
+ name={`${fieldScope}budget.attribute`}
353
+ render={({ field }) => {
354
+ return (
355
+ <Form.Item className="basis-1/2">
356
+ <Form.Label
357
+ tooltip={t(
358
+ "campaigns.budget.fields.budgetAttributeTooltip"
359
+ )}
360
+ >
361
+ {t("campaigns.budget.fields.budgetAttribute")}
362
+ </Form.Label>
363
+
364
+ <Form.Control>
365
+ <Combobox
366
+ key="attribute"
367
+ {...field}
368
+ onChange={(e) => {
369
+ if (typeof e === "undefined") {
370
+ field.onChange(null)
371
+ } else {
372
+ field.onChange(e)
373
+ }
374
+ }}
375
+ allowClear
376
+ options={[
377
+ {
378
+ label: t("fields.customer"),
379
+ value: "customer_id",
380
+ },
381
+ {
382
+ label: t("fields.email"),
383
+ value: "customer_email",
384
+ },
385
+ ]}
386
+ ></Combobox>
387
+ </Form.Control>
388
+ <Form.ErrorMessage />
389
+ </Form.Item>
390
+ )
391
+ }}
392
+ />
393
+ )}
345
394
  </div>
346
395
  </div>
347
396
  )
@@ -10,5 +10,6 @@ export const DEFAULT_CAMPAIGN_VALUES = {
10
10
  type: "usage" as CampaignBudgetTypeValues,
11
11
  currency_code: null,
12
12
  limit: null,
13
+ attribute: null,
13
14
  },
14
15
  }