@medusajs/dashboard 3.0.0-snapshot-20251208164410 → 3.0.0-snapshot-20251211173847
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.
- package/dist/{add-campaign-promotions-I7HDYMBX.mjs → add-campaign-promotions-JQKPED4U.mjs} +2 -1
- package/dist/{adjust-inventory-ZB3AVET7.mjs → adjust-inventory-2MFA656V.mjs} +5 -3
- package/dist/{api-key-management-create-U6VGZK7R.mjs → api-key-management-create-ZUVF3SLR.mjs} +5 -4
- package/dist/{api-key-management-detail-OEAWWV5O.mjs → api-key-management-detail-I45X6X64.mjs} +16 -16
- package/dist/{api-key-management-edit-TJM737A7.mjs → api-key-management-edit-42HNUSXL.mjs} +7 -5
- package/dist/{api-key-management-list-ZRYMMTF5.mjs → api-key-management-list-RGLZMUCB.mjs} +3 -3
- package/dist/{api-key-management-sales-channels-D2RAHI7W.mjs → api-key-management-sales-channels-7FVABESO.mjs} +8 -7
- package/dist/app.css +6 -3
- package/dist/app.js +16823 -17395
- package/dist/app.mjs +11 -11
- package/dist/{campaign-budget-edit-H2KQKD7B.mjs → campaign-budget-edit-6DMZGUCI.mjs} +4 -2
- package/dist/{campaign-configuration-A452A22M.mjs → campaign-configuration-UNFRB5HR.mjs} +4 -2
- package/dist/{campaign-create-IXOWJQ4L.mjs → campaign-create-QXG7PD3S.mjs} +5 -4
- package/dist/{campaign-detail-TFQCDDIN.mjs → campaign-detail-P3CSDHZN.mjs} +9 -9
- package/dist/{campaign-edit-LZV56AYF.mjs → campaign-edit-HN4US7DV.mjs} +4 -2
- package/dist/{categories-metadata-7JFVYYUN.mjs → categories-metadata-BCZ463KN.mjs} +12 -11
- package/dist/{category-create-BTMZYQ5R.mjs → category-create-FFIBWXAH.mjs} +7 -6
- package/dist/{category-detail-UUEMLEVJ.mjs → category-detail-VDUHW3QT.mjs} +12 -12
- package/dist/{category-edit-Q3KEELHO.mjs → category-edit-74MZ6TXN.mjs} +6 -4
- package/dist/{category-list-Z6HS6N75.mjs → category-list-AH2EGTI7.mjs} +5 -5
- package/dist/{category-organize-45NPSRNG.mjs → category-organize-B6EFBFKB.mjs} +4 -3
- package/dist/{category-products-KW6X3JDW.mjs → category-products-VOD3XRPG.mjs} +13 -12
- package/dist/{chunk-O5DGX2NZ.mjs → chunk-34KFHPN6.mjs} +1 -1
- package/dist/chunk-35LSPN2U.mjs +66 -0
- package/dist/{chunk-NFEW5CVI.mjs → chunk-3C6WQ7NH.mjs} +3 -37
- package/dist/{chunk-OMRGW7JS.mjs → chunk-3YPRDSZ6.mjs} +4 -4
- package/dist/{chunk-AERWK3TJ.mjs → chunk-42OOM4DJ.mjs} +44 -212
- package/dist/{chunk-67RC6SEX.mjs → chunk-5LGRZSEH.mjs} +1 -1
- package/dist/{chunk-5N33TBBX.mjs → chunk-7AX6R6G6.mjs} +1 -1
- package/dist/{chunk-YGLRZQ4C.mjs → chunk-7R743WZ6.mjs} +18 -7
- package/dist/{chunk-FJHAGJ5G.mjs → chunk-AH4DORIW.mjs} +1 -1
- package/dist/{chunk-MB7M5THW.mjs → chunk-B3AOQW2B.mjs} +1 -1
- package/dist/{chunk-6VRDTPH2.mjs → chunk-D4J3CEWH.mjs} +4 -2
- package/dist/{chunk-3RRA56WC.mjs → chunk-DODQ3KJT.mjs} +3 -8
- package/dist/{chunk-HEYM67GY.mjs → chunk-EI27JC4V.mjs} +5 -3
- package/dist/{chunk-RNYL6AXZ.mjs → chunk-F5NZDW7L.mjs} +2 -2
- package/dist/{chunk-S3MMZPMX.mjs → chunk-F63F3FIT.mjs} +2 -2
- package/dist/{chunk-GHBURGZC.mjs → chunk-FQDPOKEK.mjs} +1 -1
- package/dist/{chunk-M32MJOJN.mjs → chunk-G4BWCU5P.mjs} +6 -3
- package/dist/{chunk-AGBHQZZT.mjs → chunk-GTPX2T3A.mjs} +305 -350
- package/dist/{chunk-D55WNQYO.mjs → chunk-HFT7Q5Y5.mjs} +1 -1
- package/dist/{chunk-TBEGSDLQ.mjs → chunk-KCWP7RF5.mjs} +1 -1
- package/dist/{chunk-T57MRRCF.mjs → chunk-KF7ZWW4K.mjs} +4 -2
- package/dist/{chunk-P23S5LDK.mjs → chunk-L4NOVTH5.mjs} +6 -4
- package/dist/{chunk-QW4SQVMT.mjs → chunk-LEJUZW3P.mjs} +53 -110
- package/dist/{chunk-PMJJI6GO.mjs → chunk-LHNU4DYZ.mjs} +1 -1
- package/dist/{chunk-35G7IXTE.mjs → chunk-M4Z2YEYB.mjs} +15 -12
- package/dist/{chunk-PPRHEG37.mjs → chunk-MY6I7UJG.mjs} +2 -2
- package/dist/{chunk-FNQ227BC.mjs → chunk-N3FCYZV6.mjs} +1 -1
- package/dist/{chunk-MOGV3UZD.mjs → chunk-N4O5FAUC.mjs} +1 -1
- package/dist/{chunk-7H6DB666.mjs → chunk-NHDFPGQ3.mjs} +1 -1
- package/dist/{chunk-SAZHCRHS.mjs → chunk-NT6C7CHT.mjs} +1 -1
- package/dist/{chunk-7DXVXBSA.mjs → chunk-NTEWUH4C.mjs} +1 -1
- package/dist/{chunk-5AM254NB.mjs → chunk-OFN7DIZA.mjs} +3 -83
- package/dist/{chunk-42TMWI76.mjs → chunk-OXPE5TAY.mjs} +1 -1
- package/dist/{chunk-NTYLG6Y3.mjs → chunk-QPKW37WR.mjs} +18 -4
- package/dist/{chunk-PCFUZKDS.mjs → chunk-R65S6ZZV.mjs} +4 -1
- package/dist/{chunk-3ZJ55SFA.mjs → chunk-RU4ZS47V.mjs} +13 -3
- package/dist/{chunk-NKGKWMUU.mjs → chunk-SKA4AJO4.mjs} +13 -14
- package/dist/{chunk-VSQK3AWP.mjs → chunk-VX2HE7O5.mjs} +20 -16
- package/dist/{chunk-3I6G3NRU.mjs → chunk-WG7UTTKY.mjs} +2 -2
- package/dist/{chunk-YGEJFHC3.mjs → chunk-XIVBRONM.mjs} +1 -1
- package/dist/chunk-XNIVMZHA.mjs +50 -0
- package/dist/chunk-XXBP2Z5M.mjs +182 -0
- package/dist/{chunk-2WLOIS3L.mjs → chunk-Y5UO73CH.mjs} +18 -2
- package/dist/{chunk-EFRTOOI5.mjs → chunk-YAPTGHGP.mjs} +1 -1
- package/dist/{chunk-2QH2TBJ2.mjs → chunk-YWLAUILP.mjs} +1 -1
- package/dist/{chunk-HRSO6H4F.mjs → chunk-Z6NHG5LQ.mjs} +3 -3
- package/dist/{collection-add-products-YSTEEHMF.mjs → collection-add-products-P5B564HQ.mjs} +14 -13
- package/dist/{collection-create-RIGJHEX5.mjs → collection-create-DCRW344Z.mjs} +4 -3
- package/dist/{collection-detail-P5JWWFHH.mjs → collection-detail-PCL3HYPB.mjs} +12 -12
- package/dist/{collection-edit-WX5G3FHR.mjs → collection-edit-UNFEW6HT.mjs} +6 -4
- package/dist/{collection-list-PU6SWYVL.mjs → collection-list-ANPFZOFP.mjs} +16 -17
- package/dist/{collection-metadata-R55DUZSX.mjs → collection-metadata-P4A5DXBQ.mjs} +13 -12
- package/dist/{customer-create-VL6SIRZ2.mjs → customer-create-XCLZENJS.mjs} +2 -1
- package/dist/{customer-create-address-V5C6M52P.mjs → customer-create-address-4HZUIAM7.mjs} +2 -1
- package/dist/{customer-detail-HVGU3DRM.mjs → customer-detail-ENPJO3DW.mjs} +13 -13
- package/dist/{customer-edit-WTBPVWOF.mjs → customer-edit-BW5GVTQI.mjs} +4 -2
- package/dist/{customer-group-add-customers-2Y2GVCDV.mjs → customer-group-add-customers-A7OGFFJ4.mjs} +2 -1
- package/dist/{customer-group-create-A3CB3Z4K.mjs → customer-group-create-6YV7W6TI.mjs} +2 -1
- package/dist/{customer-group-detail-QKFWIFYH.mjs → customer-group-detail-DVNRFZX5.mjs} +9 -9
- package/dist/{customer-group-edit-7KV2PNLE.mjs → customer-group-edit-7NXU34BQ.mjs} +4 -2
- package/dist/{customer-group-list-WLG2ZMBD.mjs → customer-group-list-P2QX5AO4.mjs} +13 -13
- package/dist/{customer-group-metadata-4F2SZF4M.mjs → customer-group-metadata-WK2BGEGO.mjs} +3 -2
- package/dist/{customer-metadata-LZ3TAXCV.mjs → customer-metadata-ZUWCUTM7.mjs} +3 -2
- package/dist/{customers-add-customer-group-KL5UXXOR.mjs → customers-add-customer-group-RVR476OP.mjs} +11 -10
- package/dist/{edit-inventory-item-O6JLGZE4.mjs → edit-inventory-item-Y5W6VTHJ.mjs} +5 -3
- package/dist/{edit-inventory-item-attributes-AUVR3GYY.mjs → edit-inventory-item-attributes-NAAZDFEJ.mjs} +5 -3
- package/dist/{edit-reservation-GQ6R6GVA.mjs → edit-reservation-2UD4RZJX.mjs} +6 -4
- package/dist/{edit-rules-PJWEWMM7.mjs → edit-rules-2W3BXEXR.mjs} +15 -13
- package/dist/en.json +22 -49
- package/dist/{inventory-create-P3WYAGQZ.mjs → inventory-create-VQEK7C5T.mjs} +11 -10
- package/dist/{inventory-detail-C2NU7GTA.mjs → inventory-detail-UYDDNO24.mjs} +11 -11
- package/dist/{inventory-list-ADJQDNX5.mjs → inventory-list-BQPHK3FV.mjs} +1 -1
- package/dist/{inventory-metadata-V2N3HOPG.mjs → inventory-metadata-X52VGHA7.mjs} +12 -11
- package/dist/{inventory-stock-5DCIGKBI.mjs → inventory-stock-EKTOYN2F.mjs} +11 -10
- package/dist/{location-create-GDOHM4T3.mjs → location-create-RPLEXUZR.mjs} +2 -1
- package/dist/{location-detail-2CJWVT5M.mjs → location-detail-UVWYE6Q2.mjs} +12 -12
- package/dist/{location-edit-4SEMGQXA.mjs → location-edit-L4ISEQHX.mjs} +4 -2
- package/dist/{location-fulfillment-providers-PYPUR74W.mjs → location-fulfillment-providers-3BGI2NNW.mjs} +15 -15
- package/dist/{location-list-ZJMZZ6T3.mjs → location-list-Z42ZYHUF.mjs} +3 -3
- package/dist/{location-sales-channels-JPH5BTUY.mjs → location-sales-channels-YMABMECM.mjs} +7 -6
- package/dist/{location-service-zone-create-35TTX636.mjs → location-service-zone-create-NSMZCD5N.mjs} +5 -3
- package/dist/{location-service-zone-edit-RWZS2XYW.mjs → location-service-zone-edit-6OUAFEZD.mjs} +4 -2
- package/dist/{location-service-zone-manage-areas-RGMM5Y6C.mjs → location-service-zone-manage-areas-SEC6LKCZ.mjs} +5 -3
- package/dist/{location-service-zone-shipping-option-create-HLZLP422.mjs → location-service-zone-shipping-option-create-M7G4SKNP.mjs} +15 -13
- package/dist/{location-service-zone-shipping-option-edit-OYTEZGGC.mjs → location-service-zone-shipping-option-edit-M2HJAASG.mjs} +18 -6
- package/dist/{location-service-zone-shipping-option-pricing-NQRIEGTX.mjs → location-service-zone-shipping-option-pricing-23QLNSBT.mjs} +5 -3
- package/dist/{login-AKO3BIQT.mjs → login-NSCAMAU6.mjs} +9 -9
- package/dist/{manage-locations-ATCDVTSR.mjs → manage-locations-JD6FSBOT.mjs} +5 -3
- package/dist/{order-allocate-items-2H25GRTK.mjs → order-allocate-items-5T57NZOB.mjs} +5 -4
- package/dist/{order-create-claim-CWGDAFFU.mjs → order-create-claim-JLCXZNHU.mjs} +24 -22
- package/dist/{order-create-edit-KJODOQXN.mjs → order-create-edit-QB6LIWSF.mjs} +14 -12
- package/dist/{order-create-exchange-TM4FQLKM.mjs → order-create-exchange-GOU4AJXP.mjs} +24 -22
- package/dist/{order-create-fulfillment-2WJZPAWX.mjs → order-create-fulfillment-SRRP6X64.mjs} +15 -14
- package/dist/{order-create-refund-A6WKCHX7.mjs → order-create-refund-PTOM65QK.mjs} +18 -16
- package/dist/{order-create-return-NDKTI4E5.mjs → order-create-return-3EOY7TOC.mjs} +13 -11
- package/dist/{order-create-shipment-3AVEAGAY.mjs → order-create-shipment-HNILNFXB.mjs} +11 -10
- package/dist/{order-detail-7HXZEBWJ.mjs → order-detail-BCBUUVU7.mjs} +23 -23
- package/dist/{order-edit-billing-address-DPK7HTLM.mjs → order-edit-billing-address-3IO7GXIK.mjs} +13 -11
- package/dist/{order-edit-email-UJ2OUKHJ.mjs → order-edit-email-QIAEOUBV.mjs} +13 -11
- package/dist/{order-edit-shipping-address-5ZCGHHZE.mjs → order-edit-shipping-address-QGGMHGBC.mjs} +13 -11
- package/dist/order-export-LPAWHHSK.mjs +121 -0
- package/dist/{order-list-5C4TVJRH.mjs → order-list-BPCVUIVY.mjs} +38 -81
- package/dist/{order-metadata-UKTGLYWR.mjs → order-metadata-ZBDTMBHZ.mjs} +12 -11
- package/dist/{order-receive-return-N7VLM2GX.mjs → order-receive-return-V42FTCFY.mjs} +14 -12
- package/dist/{order-request-transfer-5ENT7IOT.mjs → order-request-transfer-A6NNIN2O.mjs} +14 -12
- package/dist/{price-list-configuration-SS2VMD4N.mjs → price-list-configuration-54D4JW6G.mjs} +7 -5
- package/dist/{price-list-create-FF4F6M2A.mjs → price-list-create-5DI6QXFL.mjs} +21 -17
- package/dist/{price-list-detail-HQF4ZR2U.mjs → price-list-detail-7XY3MDV5.mjs} +25 -18
- package/dist/{price-list-edit-VRI5T4W3.mjs → price-list-edit-SW7YIR3Z.mjs} +6 -4
- package/dist/{price-list-list-S2HWTXKV.mjs → price-list-list-AZOGEZAS.mjs} +34 -18
- package/dist/{price-list-prices-add-JYZAHKAQ.mjs → price-list-prices-add-UA2DT4AM.mjs} +18 -14
- package/dist/{price-list-prices-edit-TRCLLGU4.mjs → price-list-prices-edit-C6SX2TLJ.mjs} +9 -5
- package/dist/{product-attributes-NEXVST24.mjs → product-attributes-56UMJAVF.mjs} +17 -17
- package/dist/{product-create-WU4YFCMM.mjs → product-create-NWQ7IXC6.mjs} +559 -380
- package/dist/product-create-option-GEGQNSMQ.mjs +150 -0
- package/dist/{product-create-variant-RDEE4IX7.mjs → product-create-variant-WI6D5CDG.mjs} +18 -13
- package/dist/{product-detail-J4JYWH2M.mjs → product-detail-VYXHGYKI.mjs} +62 -40
- package/dist/{product-edit-ZF2WYHPB.mjs → product-edit-N4VRGX43.mjs} +17 -17
- package/dist/product-edit-option-HBIOBQTS.mjs +155 -0
- package/dist/{product-export-QDX6343F.mjs → product-export-CPL66H6S.mjs} +19 -18
- package/dist/{product-image-variants-edit-5L5J32SO.mjs → product-image-variants-edit-X3LUMPLJ.mjs} +17 -12
- package/dist/{product-import-6TEVSKGQ.mjs → product-import-43UXKCL3.mjs} +13 -11
- package/dist/{product-list-BHGGJX6B.mjs → product-list-47T2IZ3F.mjs} +18 -18
- package/dist/{product-media-EKXMOSO4.mjs → product-media-EGK66SRX.mjs} +8 -4
- package/dist/{product-metadata-BCJJNWAC.mjs → product-metadata-55CAQTPS.mjs} +16 -12
- package/dist/{product-organization-IG54OB75.mjs → product-organization-YVMSAFBV.mjs} +19 -19
- package/dist/{product-prices-UMEIS5AZ.mjs → product-prices-WQDE4XYT.mjs} +7 -3
- package/dist/{product-sales-channels-2SALTLTF.mjs → product-sales-channels-ZICOOOKY.mjs} +11 -7
- package/dist/{product-shipping-profile-VPHZLKDT.mjs → product-shipping-profile-KIDRTPWA.mjs} +8 -52
- package/dist/{product-stock-3ILUPCVN.mjs → product-stock-22S2HGMM.mjs} +11 -10
- package/dist/{product-tag-create-OOUTLHHD.mjs → product-tag-create-7GPE246H.mjs} +11 -10
- package/dist/{product-tag-detail-YVKJEAKT.mjs → product-tag-detail-BQG2LJK6.mjs} +23 -24
- package/dist/{product-tag-edit-RV5WITSN.mjs → product-tag-edit-WA6FGSIP.mjs} +13 -11
- package/dist/{product-tag-list-ZSPFYZIL.mjs → product-tag-list-PW7WDCQH.mjs} +22 -23
- package/dist/{product-tag-metadata-S5YL3FUL.mjs → product-tag-metadata-EJ7FEXSE.mjs} +12 -11
- package/dist/{product-type-create-Y752WGBV.mjs → product-type-create-HBDROTGB.mjs} +2 -1
- package/dist/{product-type-detail-EFVZRETM.mjs → product-type-detail-TJQS4BVU.mjs} +11 -11
- package/dist/{product-type-edit-SMPJ5ZEF.mjs → product-type-edit-H3JCMVRV.mjs} +4 -2
- package/dist/{product-type-metadata-TNAASDKX.mjs → product-type-metadata-Q6W5GL7Z.mjs} +12 -11
- package/dist/{product-variant-detail-CLP5FJP6.mjs → product-variant-detail-LYGQDASG.mjs} +9 -9
- package/dist/{product-variant-edit-REMB77V7.mjs → product-variant-edit-BW7QMHC5.mjs} +16 -13
- package/dist/{product-variant-manage-inventory-items-IGDCLZQE.mjs → product-variant-manage-inventory-items-BLHCH6QD.mjs} +4 -3
- package/dist/{product-variant-media-EKI4BTEV.mjs → product-variant-media-KLSUISGH.mjs} +3 -2
- package/dist/{product-variant-metadata-5JIY5KLN.mjs → product-variant-metadata-GDMVC4MZ.mjs} +12 -11
- package/dist/{profile-edit-NFVR5Y4I.mjs → profile-edit-5EEKOEO5.mjs} +4 -2
- package/dist/{promotion-add-campaign-DOALJUKJ.mjs → promotion-add-campaign-JRTM7WBR.mjs} +5 -4
- package/dist/{promotion-create-2PTB6NQI.mjs → promotion-create-HF6DTKCC.mjs} +20 -19
- package/dist/{promotion-detail-RGXCA2XS.mjs → promotion-detail-MDVDMQUM.mjs} +9 -9
- package/dist/{promotion-edit-details-AKKNOCLM.mjs → promotion-edit-details-AREFQ6O5.mjs} +4 -2
- package/dist/{refund-reason-create-AGEFXEIZ.mjs → refund-reason-create-RKIH46D6.mjs} +11 -10
- package/dist/{refund-reason-edit-DL56EKBY.mjs → refund-reason-edit-V3KC6NMO.mjs} +13 -11
- package/dist/{refund-reason-list-RL2ZG7IJ.mjs → refund-reason-list-FR7POQS5.mjs} +19 -19
- package/dist/{region-add-countries-6GB2QDJK.mjs → region-add-countries-AFWXMQ6W.mjs} +2 -1
- package/dist/{region-create-UVJICJRX.mjs → region-create-YC4VZ4AS.mjs} +5 -3
- package/dist/{region-edit-3NVXQECN.mjs → region-edit-5GO25GDF.mjs} +5 -3
- package/dist/{region-metadata-2HO3SAPM.mjs → region-metadata-5NGUNAXZ.mjs} +12 -11
- package/dist/{reservation-create-Z7TWUE2L.mjs → reservation-create-Z2SUMBGT.mjs} +5 -4
- package/dist/{reservation-detail-2AOBK5EY.mjs → reservation-detail-JH77TQHN.mjs} +9 -9
- package/dist/{reservation-list-MN22JYAW.mjs → reservation-list-SOJRN5RI.mjs} +2 -2
- package/dist/{reservation-metadata-BFPJTXK6.mjs → reservation-metadata-ERCWXYVL.mjs} +12 -11
- package/dist/{return-reason-create-PLQNC4KW.mjs → return-reason-create-NXWDC6AC.mjs} +2 -1
- package/dist/{return-reason-edit-XJCPMZ6U.mjs → return-reason-edit-M6IKNNKB.mjs} +4 -2
- package/dist/{return-reason-list-ATE2XU4H.mjs → return-reason-list-IFFIDA5O.mjs} +8 -8
- package/dist/{sales-channel-add-products-4LNP2TUM.mjs → sales-channel-add-products-SPGDWA44.mjs} +13 -12
- package/dist/{sales-channel-create-UFFXX5HK.mjs → sales-channel-create-E7BDTPWD.mjs} +4 -3
- package/dist/{sales-channel-detail-UMYMS2JA.mjs → sales-channel-detail-D7VNPSCN.mjs} +11 -11
- package/dist/{sales-channel-edit-SP2HF4E3.mjs → sales-channel-edit-HMPA3Y3L.mjs} +6 -4
- package/dist/{sales-channel-list-CV4V6R7H.mjs → sales-channel-list-QGWQVXVW.mjs} +12 -12
- package/dist/{sales-channel-metadata-REOQHHUT.mjs → sales-channel-metadata-CMZN74K7.mjs} +12 -11
- package/dist/{shipping-option-type-create-XAWQO66M.mjs → shipping-option-type-create-4BN2GBHP.mjs} +11 -10
- package/dist/{shipping-option-type-detail-G4WLGIAA.mjs → shipping-option-type-detail-YB3TCED2.mjs} +10 -10
- package/dist/{shipping-option-type-edit-OI6TBKGG.mjs → shipping-option-type-edit-MDO7ALAU.mjs} +13 -11
- package/dist/{shipping-option-type-list-6GNCKAFB.mjs → shipping-option-type-list-6TPD3AMM.mjs} +10 -10
- package/dist/{shipping-profile-create-NKFUOBVZ.mjs → shipping-profile-create-752TMBBE.mjs} +2 -1
- package/dist/{shipping-profile-metadata-MANQ7ZEI.mjs → shipping-profile-metadata-HQI7PCPU.mjs} +12 -11
- package/dist/{store-add-currencies-QVG2SI26.mjs → store-add-currencies-3VMLZ6KB.mjs} +2 -1
- package/dist/store-add-locales-XJJCEO6Q.mjs +264 -0
- package/dist/{store-detail-N2CP3MTB.mjs → store-detail-DNK76PXP.mjs} +280 -14
- package/dist/store-edit-EPAHLLKP.mjs +288 -0
- package/dist/{store-metadata-U22TVWK2.mjs → store-metadata-ZJD23O4D.mjs} +12 -11
- package/dist/{tax-region-create-JZB7NFIG.mjs → tax-region-create-NCO2OQ3I.mjs} +12 -11
- package/dist/{tax-region-detail-CBZ3ZJN2.mjs → tax-region-detail-C42CLE64.mjs} +29 -29
- package/dist/{tax-region-edit-E56XVHW2.mjs → tax-region-edit-YZALLSZY.mjs} +14 -12
- package/dist/{tax-region-province-create-T2LKEDTK.mjs → tax-region-province-create-5JP3PVID.mjs} +2 -1
- package/dist/{tax-region-province-detail-2DC2U4EN.mjs → tax-region-province-detail-G2DPC6XM.mjs} +29 -29
- package/dist/{tax-region-tax-override-create-JWGWGYB4.mjs → tax-region-tax-override-create-WIVKENVO.mjs} +30 -29
- package/dist/{tax-region-tax-override-edit-7DCU55AS.mjs → tax-region-tax-override-edit-UDEO3UIY.mjs} +27 -27
- package/dist/{tax-region-tax-rate-create-UEOU5QRU.mjs → tax-region-tax-rate-create-O2SDSXCH.mjs} +2 -1
- package/dist/{tax-region-tax-rate-edit-ILCDNXHV.mjs → tax-region-tax-rate-edit-W62VEVKT.mjs} +4 -2
- package/dist/{user-detail-K5UMPO2L.mjs → user-detail-KEDJ7N3Q.mjs} +1 -1
- package/dist/{user-edit-25HD3BYT.mjs → user-edit-LXQCTDGA.mjs} +4 -2
- package/dist/{user-invite-CRQTVEYA.mjs → user-invite-2OKB7SCF.mjs} +2 -1
- package/dist/{user-list-KPI3BTOA.mjs → user-list-YYUOQKQY.mjs} +4 -4
- package/dist/{user-metadata-EX5WDGCR.mjs → user-metadata-4WOICEE7.mjs} +12 -11
- package/dist/{workflow-execution-detail-GBPFVG3O.mjs → workflow-execution-detail-OKM6P4SX.mjs} +9 -9
- package/package.json +9 -9
- package/src/components/inputs/combobox/combobox.tsx +92 -173
- package/src/components/layout/main-layout/main-layout.tsx +4 -7
- package/src/components/search/use-search-results.tsx +3 -1
- package/src/components/table/table-cells/order/total-cell/total-cell.tsx +3 -2
- package/src/dashboard-app/routes/get-route.map.tsx +22 -64
- package/src/hooks/api/feature-flags.tsx +9 -5
- package/src/hooks/api/index.ts +1 -1
- package/src/hooks/api/locales.tsx +52 -0
- package/src/hooks/api/orders.tsx +18 -1
- package/src/hooks/api/price-lists.tsx +28 -1
- package/src/hooks/api/products.tsx +71 -27
- package/src/hooks/table/columns/use-order-table-columns.tsx +18 -4
- package/src/hooks/table/filters/index.ts +0 -1
- package/src/hooks/table/query/use-product-table-query.tsx +2 -1
- package/src/i18n/translations/$schema.json +72 -171
- package/src/i18n/translations/en.json +22 -49
- package/src/i18n/translations/es.json +7 -0
- package/src/lib/order-helpers.ts +1 -1
- package/src/lib/table/cell-renderers.tsx +102 -83
- package/src/routes/orders/order-create-claim/components/claim-create-form/claim-create-form.tsx +11 -4
- package/src/routes/orders/order-create-exchange/components/exchange-create-form/exchange-create-form.tsx +11 -4
- package/src/routes/orders/order-create-return/components/return-create-form/return-create-form.tsx +11 -4
- package/src/routes/orders/order-export/components/export-filters.tsx +22 -0
- package/src/routes/orders/order-export/index.ts +1 -0
- package/src/routes/orders/order-export/order-export.tsx +66 -0
- package/src/routes/orders/order-list/components/order-list-table/configurable-order-list-table.tsx +10 -0
- package/src/routes/orders/order-list/components/order-list-table/order-list-table.tsx +8 -2
- package/src/routes/orders/order-list/const.ts +1 -1
- package/src/routes/price-lists/price-list-create/components/price-list-create-form/price-list-prices-form.tsx +3 -1
- package/src/routes/price-lists/price-list-create/components/price-list-create-form/price-list-products-form.tsx +1 -0
- package/src/routes/price-lists/price-list-detail/components/price-list-general-section/price-list-general-section.tsx +13 -5
- package/src/routes/price-lists/price-list-list/components/price-list-list-table/price-count-cell.tsx +19 -0
- package/src/routes/price-lists/price-list-list/components/price-list-list-table/use-pricing-table-columns.tsx +5 -6
- package/src/routes/price-lists/price-list-prices-add/components/price-list-prices-add-form/price-list-prices-add-prices-form.tsx +3 -1
- package/src/routes/price-lists/price-list-prices-add/price-list-prices-add.tsx +4 -1
- package/src/routes/price-lists/price-list-prices-edit/price-list-prices-edit.tsx +6 -2
- package/src/routes/product-variants/product-variant-edit/product-variant-edit.tsx +2 -1
- package/src/routes/products/product-attributes/product-attributes.tsx +3 -2
- package/src/routes/products/product-create/components/product-create-details-form/components/product-create-details-general-section/product-create-general-section.tsx +4 -16
- 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
- package/src/routes/products/product-create/components/product-create-form/product-create-form.tsx +7 -4
- package/src/routes/products/product-create/constants.ts +0 -2
- package/src/routes/products/product-create/utils.ts +1 -6
- package/src/routes/products/product-create-option/components/create-product-option-form/create-product-option-form.tsx +122 -0
- package/src/routes/products/product-create-option/components/create-product-option-form/index.ts +1 -0
- package/src/routes/products/product-create-option/index.ts +1 -0
- package/src/routes/products/product-create-option/product-create-option.tsx +30 -0
- package/src/routes/products/product-create-variant/product-create-variant.tsx +4 -1
- package/src/routes/products/product-detail/breadcrumb.tsx +3 -2
- package/src/routes/products/product-detail/components/product-option-section/product-option-section.tsx +49 -31
- package/src/routes/products/product-edit/product-edit.tsx +3 -2
- package/src/routes/products/product-edit-option/components/edit-product-option-form/edit-product-option-form.tsx +123 -0
- package/src/routes/products/product-edit-option/components/edit-product-option-form/index.ts +1 -0
- package/src/routes/products/product-edit-option/index.ts +1 -0
- package/src/routes/products/product-edit-option/product-edit-option.tsx +35 -0
- package/src/routes/products/product-image-variants-edit/product-image-variants-edit.tsx +5 -1
- package/src/routes/products/product-media/product-media.tsx +4 -1
- package/src/routes/products/product-metadata/product-metadata.tsx +5 -1
- package/src/routes/products/product-organization/product-organization.tsx +2 -2
- package/src/routes/products/product-prices/product-prices.tsx +4 -1
- package/src/routes/products/product-sales-channels/product-sales-channels.tsx +4 -1
- package/src/routes/products/product-shipping-profile/product-shipping-profile.tsx +3 -2
- package/src/routes/store/common/hooks/use-locales-table-columns.tsx +29 -0
- package/src/routes/store/common/hooks/use-locales-table-query.tsx +21 -0
- package/src/routes/store/store-add-locales/components/add-locales-form/add-locales-form.tsx +240 -0
- package/src/routes/store/store-add-locales/index.ts +1 -0
- package/src/routes/store/store-add-locales/store-add-locales.tsx +29 -0
- package/src/routes/store/store-detail/components/store-general-section/store-general-section.tsx +24 -0
- package/src/routes/store/store-detail/components/store-locale-section/index.ts +1 -0
- package/src/routes/store/store-detail/components/store-locale-section/store-locale-section.tsx +290 -0
- package/src/routes/store/store-detail/store-detail.tsx +4 -0
- package/src/routes/store/store-edit/components/edit-store-form/edit-store-form.tsx +50 -3
- package/src/routes/tax-regions/common/components/target-item/target-item.tsx +5 -1
- package/src/routes/tax-regions/common/components/tax-override-card/tax-override-card.tsx +10 -10
- package/dist/chunk-6CPMXY5N.mjs +0 -18
- package/dist/chunk-BWU3ZE4W.mjs +0 -13
- package/dist/chunk-ZHH3W7CN.mjs +0 -171
- package/dist/product-option-create-3Z73MSHD.mjs +0 -336
- package/dist/product-option-detail-4VRUA7KT.mjs +0 -322
- package/dist/product-option-edit-YIKFL6OY.mjs +0 -324
- package/dist/product-option-list-CR7NCCMH.mjs +0 -267
- package/dist/product-option-metadata-7CSZUQ7M.mjs +0 -71
- package/dist/product-options-manage-QOMXMPGW.mjs +0 -304
- package/dist/store-edit-Q25HCMCQ.mjs +0 -238
- package/src/hooks/api/product-options.tsx +0 -151
- package/src/hooks/table/columns/use-product-option-table-columns.tsx +0 -44
- package/src/hooks/table/filters/use-product-option-table-filters.tsx +0 -33
- package/src/hooks/table/query/use-product-option-table-query.tsx +0 -34
- package/src/routes/product-options/common/hooks/use-delete-product-option-action.tsx +0 -41
- package/src/routes/product-options/product-option-create/components/create-product-option-form/create-product-option-details.tsx +0 -71
- package/src/routes/product-options/product-option-create/components/create-product-option-form/create-product-option-form.tsx +0 -192
- package/src/routes/product-options/product-option-create/components/create-product-option-form/create-product-option-organize.tsx +0 -77
- package/src/routes/product-options/product-option-create/components/create-product-option-form/index.ts +0 -1
- package/src/routes/product-options/product-option-create/components/create-product-option-form/schema.ts +0 -15
- package/src/routes/product-options/product-option-create/index.ts +0 -1
- package/src/routes/product-options/product-option-create/product-option-create.tsx +0 -10
- package/src/routes/product-options/product-option-detail/breadcrumb.tsx +0 -14
- package/src/routes/product-options/product-option-detail/components/product-option-general-section/index.ts +0 -1
- package/src/routes/product-options/product-option-detail/components/product-option-general-section/product-option-general-section.tsx +0 -81
- package/src/routes/product-options/product-option-detail/components/product-option-product-section/index.ts +0 -1
- package/src/routes/product-options/product-option-detail/components/product-option-product-section/product-option-product-section.tsx +0 -74
- package/src/routes/product-options/product-option-detail/index.ts +0 -3
- package/src/routes/product-options/product-option-detail/loader.ts +0 -17
- package/src/routes/product-options/product-option-detail/product-option-detail.tsx +0 -50
- package/src/routes/product-options/product-option-edit/components/edit-product-option-form/edit-product-option-details.tsx +0 -94
- package/src/routes/product-options/product-option-edit/components/edit-product-option-form/edit-product-option-form.tsx +0 -116
- package/src/routes/product-options/product-option-edit/components/edit-product-option-form/edit-product-option-organize.tsx +0 -77
- package/src/routes/product-options/product-option-edit/components/edit-product-option-form/index.ts +0 -1
- package/src/routes/product-options/product-option-edit/components/edit-product-option-form/schema.ts +0 -13
- package/src/routes/product-options/product-option-edit/index.ts +0 -1
- package/src/routes/product-options/product-option-edit/product-option-edit.tsx +0 -34
- package/src/routes/product-options/product-option-list/components/product-option-list-table/index.ts +0 -1
- package/src/routes/product-options/product-option-list/components/product-option-list-table/product-option-list-table.tsx +0 -140
- package/src/routes/product-options/product-option-list/index.ts +0 -1
- package/src/routes/product-options/product-option-list/product-option-list.tsx +0 -19
- package/src/routes/product-options/product-option-metadata/index.ts +0 -1
- package/src/routes/product-options/product-option-metadata/product-option-metadata.tsx +0 -27
- package/src/routes/products/product-options-manage/components/product-options-manage-form/index.ts +0 -1
- package/src/routes/products/product-options-manage/components/product-options-manage-form/product-options-manage-form.tsx +0 -284
- package/src/routes/products/product-options-manage/index.ts +0 -1
- package/src/routes/products/product-options-manage/product-options-manage.tsx +0 -35
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ChipGroup
|
|
3
3
|
} from "./chunk-X5VECN6S.mjs";
|
|
4
|
-
import {
|
|
5
|
-
SortableList
|
|
6
|
-
} from "./chunk-ZHH3W7CN.mjs";
|
|
7
4
|
import {
|
|
8
5
|
HandleInput
|
|
9
6
|
} from "./chunk-7OYLCEKK.mjs";
|
|
7
|
+
import {
|
|
8
|
+
ChipInput
|
|
9
|
+
} from "./chunk-XDJ7OMBR.mjs";
|
|
10
10
|
import {
|
|
11
11
|
useSalesChannelTableColumns,
|
|
12
12
|
useSalesChannelTableEmptyState,
|
|
@@ -16,20 +16,20 @@ import {
|
|
|
16
16
|
import "./chunk-2X25XWOW.mjs";
|
|
17
17
|
import {
|
|
18
18
|
CategoryCombobox
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-FQDPOKEK.mjs";
|
|
20
20
|
import {
|
|
21
21
|
useComboboxData
|
|
22
22
|
} from "./chunk-3TZOFKX2.mjs";
|
|
23
23
|
import {
|
|
24
24
|
Combobox
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-OFN7DIZA.mjs";
|
|
26
26
|
import {
|
|
27
27
|
PRODUCT_CREATE_FORM_DEFAULTS,
|
|
28
28
|
ProductCreateSchema,
|
|
29
29
|
UploadMediaFormItem,
|
|
30
30
|
decorateVariantsWithDefaultValues,
|
|
31
31
|
normalizeProductFormValues
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-DODQ3KJT.mjs";
|
|
33
33
|
import "./chunk-ZQRKUG6J.mjs";
|
|
34
34
|
import {
|
|
35
35
|
DataGrid,
|
|
@@ -38,10 +38,10 @@ import {
|
|
|
38
38
|
} from "./chunk-W7SLPIO2.mjs";
|
|
39
39
|
import "./chunk-DK4WIVY6.mjs";
|
|
40
40
|
import "./chunk-BYOPZAGX.mjs";
|
|
41
|
+
import "./chunk-2GWGNMAA.mjs";
|
|
41
42
|
import {
|
|
42
43
|
DataTable
|
|
43
|
-
} from "./chunk-
|
|
44
|
-
import "./chunk-2GWGNMAA.mjs";
|
|
44
|
+
} from "./chunk-KCWP7RF5.mjs";
|
|
45
45
|
import "./chunk-C76H5USB.mjs";
|
|
46
46
|
import "./chunk-DZWH2RV6.mjs";
|
|
47
47
|
import {
|
|
@@ -52,16 +52,18 @@ import "./chunk-IUCDCPJU.mjs";
|
|
|
52
52
|
import {
|
|
53
53
|
KeyboundForm
|
|
54
54
|
} from "./chunk-6HTZNHPT.mjs";
|
|
55
|
+
import {
|
|
56
|
+
StackedFocusModal
|
|
57
|
+
} from "./chunk-XXBP2Z5M.mjs";
|
|
55
58
|
import {
|
|
56
59
|
RouteFocusModal,
|
|
57
|
-
StackedFocusModal,
|
|
58
60
|
useRouteModal,
|
|
59
61
|
useStackedModal
|
|
60
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-42OOM4DJ.mjs";
|
|
61
63
|
import {
|
|
62
64
|
FormExtensionZone,
|
|
63
65
|
useExtendableForm
|
|
64
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-GTPX2T3A.mjs";
|
|
65
67
|
import "./chunk-2SSUH2HJ.mjs";
|
|
66
68
|
import "./chunk-ONB3JEHR.mjs";
|
|
67
69
|
import "./chunk-YCDDT44O.mjs";
|
|
@@ -71,7 +73,7 @@ import "./chunk-D3YQN7HV.mjs";
|
|
|
71
73
|
import "./chunk-PMA2D6IL.mjs";
|
|
72
74
|
import "./chunk-MNXC6Q4F.mjs";
|
|
73
75
|
import "./chunk-DG7J63J2.mjs";
|
|
74
|
-
import "./chunk-
|
|
76
|
+
import "./chunk-G4BWCU5P.mjs";
|
|
75
77
|
import {
|
|
76
78
|
useExtension
|
|
77
79
|
} from "./chunk-C5P5PL3E.mjs";
|
|
@@ -88,31 +90,31 @@ import "./chunk-SUYYSKCB.mjs";
|
|
|
88
90
|
import {
|
|
89
91
|
Form
|
|
90
92
|
} from "./chunk-OBQI23QM.mjs";
|
|
91
|
-
import "./chunk-
|
|
93
|
+
import "./chunk-QPKW37WR.mjs";
|
|
92
94
|
import "./chunk-I4OBEAOJ.mjs";
|
|
93
|
-
import "./chunk-YGEJFHC3.mjs";
|
|
94
95
|
import "./chunk-HI6URQ7H.mjs";
|
|
95
96
|
import "./chunk-6CLQKVAU.mjs";
|
|
96
97
|
import "./chunk-KI7TOXBR.mjs";
|
|
97
98
|
import "./chunk-HKIF5HVL.mjs";
|
|
99
|
+
import "./chunk-XIVBRONM.mjs";
|
|
98
100
|
import "./chunk-WAXMT4IY.mjs";
|
|
99
101
|
import "./chunk-DYDGGABK.mjs";
|
|
100
102
|
import "./chunk-LGNTHZ5Y.mjs";
|
|
101
103
|
import "./chunk-CN7JXSGW.mjs";
|
|
102
104
|
import "./chunk-5BQQRHQS.mjs";
|
|
103
|
-
import "./chunk-
|
|
104
|
-
import "./chunk-2WLOIS3L.mjs";
|
|
105
|
+
import "./chunk-Y5UO73CH.mjs";
|
|
105
106
|
import "./chunk-5AFMB7XQ.mjs";
|
|
107
|
+
import "./chunk-NHDFPGQ3.mjs";
|
|
106
108
|
import "./chunk-A63RZVX6.mjs";
|
|
107
109
|
import "./chunk-HBXV7ENS.mjs";
|
|
108
110
|
import "./chunk-CDORR33H.mjs";
|
|
109
|
-
import "./chunk-
|
|
110
|
-
import "./chunk-
|
|
111
|
-
import "./chunk-
|
|
111
|
+
import "./chunk-RU4ZS47V.mjs";
|
|
112
|
+
import "./chunk-N4O5FAUC.mjs";
|
|
113
|
+
import "./chunk-7AX6R6G6.mjs";
|
|
112
114
|
import {
|
|
113
115
|
useSalesChannel,
|
|
114
116
|
useSalesChannels
|
|
115
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-N3FCYZV6.mjs";
|
|
116
118
|
import "./chunk-3BF5SC66.mjs";
|
|
117
119
|
import {
|
|
118
120
|
useStore
|
|
@@ -124,9 +126,8 @@ import {
|
|
|
124
126
|
usePricePreferences
|
|
125
127
|
} from "./chunk-SQDIZZDW.mjs";
|
|
126
128
|
import {
|
|
127
|
-
useCreateProduct
|
|
128
|
-
|
|
129
|
-
} from "./chunk-QW4SQVMT.mjs";
|
|
129
|
+
useCreateProduct
|
|
130
|
+
} from "./chunk-LEJUZW3P.mjs";
|
|
130
131
|
import "./chunk-FXYH54JP.mjs";
|
|
131
132
|
import "./chunk-774WSTCC.mjs";
|
|
132
133
|
import {
|
|
@@ -138,7 +139,7 @@ import "./chunk-QZ7TP4HQ.mjs";
|
|
|
138
139
|
import { useTranslation as useTranslation10 } from "react-i18next";
|
|
139
140
|
|
|
140
141
|
// src/routes/products/product-create/components/product-create-form/product-create-form.tsx
|
|
141
|
-
import { Button as
|
|
142
|
+
import { Button as Button5, ProgressTabs, toast } from "@medusajs/ui";
|
|
142
143
|
import { useEffect as useEffect2, useMemo as useMemo4, useState as useState4 } from "react";
|
|
143
144
|
import { useWatch as useWatch4 } from "react-hook-form";
|
|
144
145
|
import { useTranslation as useTranslation9 } from "react-i18next";
|
|
@@ -165,13 +166,7 @@ var ProductCreateGeneralSection = ({
|
|
|
165
166
|
render: ({ field }) => {
|
|
166
167
|
return /* @__PURE__ */ jsxs(Form.Item, { children: [
|
|
167
168
|
/* @__PURE__ */ jsx(Form.Label, { children: t("products.fields.title.label") }),
|
|
168
|
-
/* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
|
|
169
|
-
Input,
|
|
170
|
-
{
|
|
171
|
-
...field,
|
|
172
|
-
placeholder: t("products.fields.title.placeholder")
|
|
173
|
-
}
|
|
174
|
-
) })
|
|
169
|
+
/* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { ...field, placeholder: t("products.fields.title.placeholder") }) })
|
|
175
170
|
] });
|
|
176
171
|
}
|
|
177
172
|
}
|
|
@@ -184,13 +179,7 @@ var ProductCreateGeneralSection = ({
|
|
|
184
179
|
render: ({ field }) => {
|
|
185
180
|
return /* @__PURE__ */ jsxs(Form.Item, { children: [
|
|
186
181
|
/* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("products.fields.subtitle.label") }),
|
|
187
|
-
/* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
|
|
188
|
-
Input,
|
|
189
|
-
{
|
|
190
|
-
...field,
|
|
191
|
-
placeholder: t("products.fields.subtitle.placeholder")
|
|
192
|
-
}
|
|
193
|
-
) })
|
|
182
|
+
/* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { ...field, placeholder: t("products.fields.subtitle.placeholder") }) })
|
|
194
183
|
] });
|
|
195
184
|
}
|
|
196
185
|
}
|
|
@@ -210,13 +199,7 @@ var ProductCreateGeneralSection = ({
|
|
|
210
199
|
children: t("fields.handle")
|
|
211
200
|
}
|
|
212
201
|
),
|
|
213
|
-
/* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
|
|
214
|
-
HandleInput,
|
|
215
|
-
{
|
|
216
|
-
...field,
|
|
217
|
-
placeholder: t("products.fields.handle.placeholder")
|
|
218
|
-
}
|
|
219
|
-
) })
|
|
202
|
+
/* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(HandleInput, { ...field, placeholder: t("products.fields.handle.placeholder") }) })
|
|
220
203
|
] });
|
|
221
204
|
}
|
|
222
205
|
}
|
|
@@ -230,13 +213,7 @@ var ProductCreateGeneralSection = ({
|
|
|
230
213
|
render: ({ field }) => {
|
|
231
214
|
return /* @__PURE__ */ jsxs(Form.Item, { children: [
|
|
232
215
|
/* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("products.fields.description.label") }),
|
|
233
|
-
/* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
|
|
234
|
-
Textarea,
|
|
235
|
-
{
|
|
236
|
-
...field,
|
|
237
|
-
placeholder: t("products.fields.description.placeholder")
|
|
238
|
-
}
|
|
239
|
-
) })
|
|
216
|
+
/* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Textarea, { ...field, placeholder: t("products.fields.description.placeholder") }) })
|
|
240
217
|
] });
|
|
241
218
|
}
|
|
242
219
|
}
|
|
@@ -537,23 +514,197 @@ function formatFileSize(bytes, decimalPlaces = 2) {
|
|
|
537
514
|
}
|
|
538
515
|
|
|
539
516
|
// src/routes/products/product-create/components/product-create-details-form/components/product-create-details-variant-section/product-create-details-variant-section.tsx
|
|
517
|
+
import { XMarkMini } from "@medusajs/icons";
|
|
540
518
|
import {
|
|
541
519
|
Alert,
|
|
520
|
+
Button,
|
|
542
521
|
Checkbox,
|
|
543
|
-
clx,
|
|
522
|
+
clx as clx2,
|
|
544
523
|
Heading,
|
|
545
524
|
Hint,
|
|
525
|
+
IconButton as IconButton3,
|
|
546
526
|
InlineTip,
|
|
527
|
+
Input as Input2,
|
|
547
528
|
Label,
|
|
548
529
|
Text as Text2
|
|
549
530
|
} from "@medusajs/ui";
|
|
550
531
|
import {
|
|
532
|
+
Controller,
|
|
551
533
|
useFieldArray as useFieldArray2,
|
|
552
534
|
useWatch
|
|
553
535
|
} from "react-hook-form";
|
|
554
536
|
import { useTranslation as useTranslation3 } from "react-i18next";
|
|
555
|
-
|
|
556
|
-
|
|
537
|
+
|
|
538
|
+
// src/components/common/sortable-list/sortable-list.tsx
|
|
539
|
+
import {
|
|
540
|
+
DndContext as DndContext2,
|
|
541
|
+
DragOverlay as DragOverlay2,
|
|
542
|
+
KeyboardSensor as KeyboardSensor2,
|
|
543
|
+
PointerSensor as PointerSensor2,
|
|
544
|
+
defaultDropAnimationSideEffects as defaultDropAnimationSideEffects2,
|
|
545
|
+
useSensor as useSensor2,
|
|
546
|
+
useSensors as useSensors2
|
|
547
|
+
} from "@dnd-kit/core";
|
|
548
|
+
import {
|
|
549
|
+
SortableContext as SortableContext2,
|
|
550
|
+
arrayMove as arrayMove2,
|
|
551
|
+
sortableKeyboardCoordinates as sortableKeyboardCoordinates2,
|
|
552
|
+
useSortable as useSortable2
|
|
553
|
+
} from "@dnd-kit/sortable";
|
|
554
|
+
import { CSS as CSS2 } from "@dnd-kit/utilities";
|
|
555
|
+
import { DotsSix as DotsSix2 } from "@medusajs/icons";
|
|
556
|
+
import { IconButton as IconButton2, clx } from "@medusajs/ui";
|
|
557
|
+
import {
|
|
558
|
+
Fragment,
|
|
559
|
+
createContext,
|
|
560
|
+
useContext,
|
|
561
|
+
useMemo,
|
|
562
|
+
useState as useState2
|
|
563
|
+
} from "react";
|
|
564
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
565
|
+
var List = ({
|
|
566
|
+
items,
|
|
567
|
+
onChange,
|
|
568
|
+
renderItem
|
|
569
|
+
}) => {
|
|
570
|
+
const [active, setActive] = useState2(null);
|
|
571
|
+
const [activeItem, activeIndex] = useMemo(() => {
|
|
572
|
+
if (active === null) {
|
|
573
|
+
return [null, null];
|
|
574
|
+
}
|
|
575
|
+
const index = items.findIndex(({ id }) => id === active.id);
|
|
576
|
+
return [items[index], index];
|
|
577
|
+
}, [active, items]);
|
|
578
|
+
const sensors = useSensors2(
|
|
579
|
+
useSensor2(PointerSensor2),
|
|
580
|
+
useSensor2(KeyboardSensor2, {
|
|
581
|
+
coordinateGetter: sortableKeyboardCoordinates2
|
|
582
|
+
})
|
|
583
|
+
);
|
|
584
|
+
const handleDragStart = ({ active: active2 }) => {
|
|
585
|
+
setActive(active2);
|
|
586
|
+
};
|
|
587
|
+
const handleDragEnd = ({ active: active2, over }) => {
|
|
588
|
+
if (over && active2.id !== over.id) {
|
|
589
|
+
const activeIndex2 = items.findIndex(({ id }) => id === active2.id);
|
|
590
|
+
const overIndex = items.findIndex(({ id }) => id === over.id);
|
|
591
|
+
onChange(arrayMove2(items, activeIndex2, overIndex));
|
|
592
|
+
}
|
|
593
|
+
setActive(null);
|
|
594
|
+
};
|
|
595
|
+
const handleDragCancel = () => {
|
|
596
|
+
setActive(null);
|
|
597
|
+
};
|
|
598
|
+
return /* @__PURE__ */ jsxs3(
|
|
599
|
+
DndContext2,
|
|
600
|
+
{
|
|
601
|
+
sensors,
|
|
602
|
+
onDragStart: handleDragStart,
|
|
603
|
+
onDragEnd: handleDragEnd,
|
|
604
|
+
onDragCancel: handleDragCancel,
|
|
605
|
+
children: [
|
|
606
|
+
/* @__PURE__ */ jsx3(Overlay, { children: activeItem && activeIndex !== null ? renderItem(activeItem, activeIndex) : null }),
|
|
607
|
+
/* @__PURE__ */ jsx3(SortableContext2, { items, children: /* @__PURE__ */ jsx3(
|
|
608
|
+
"ul",
|
|
609
|
+
{
|
|
610
|
+
role: "application",
|
|
611
|
+
className: "flex list-inside list-none list-image-none flex-col p-0",
|
|
612
|
+
children: items.map((item, index) => /* @__PURE__ */ jsx3(Fragment, { children: renderItem(item, index) }, item.id))
|
|
613
|
+
}
|
|
614
|
+
) })
|
|
615
|
+
]
|
|
616
|
+
}
|
|
617
|
+
);
|
|
618
|
+
};
|
|
619
|
+
var dropAnimationConfig2 = {
|
|
620
|
+
sideEffects: defaultDropAnimationSideEffects2({
|
|
621
|
+
styles: {
|
|
622
|
+
active: {
|
|
623
|
+
opacity: "0.4"
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
})
|
|
627
|
+
};
|
|
628
|
+
var Overlay = ({ children }) => {
|
|
629
|
+
return /* @__PURE__ */ jsx3(
|
|
630
|
+
DragOverlay2,
|
|
631
|
+
{
|
|
632
|
+
className: "shadow-elevation-card-hover overflow-hidden rounded-md [&>li]:border-b-0",
|
|
633
|
+
dropAnimation: dropAnimationConfig2,
|
|
634
|
+
children
|
|
635
|
+
}
|
|
636
|
+
);
|
|
637
|
+
};
|
|
638
|
+
var SortableItemContext = createContext(null);
|
|
639
|
+
var useSortableItemContext = () => {
|
|
640
|
+
const context = useContext(SortableItemContext);
|
|
641
|
+
if (!context) {
|
|
642
|
+
throw new Error(
|
|
643
|
+
"useSortableItemContext must be used within a SortableItemContext"
|
|
644
|
+
);
|
|
645
|
+
}
|
|
646
|
+
return context;
|
|
647
|
+
};
|
|
648
|
+
var Item = ({
|
|
649
|
+
id,
|
|
650
|
+
className,
|
|
651
|
+
children
|
|
652
|
+
}) => {
|
|
653
|
+
const {
|
|
654
|
+
attributes,
|
|
655
|
+
isDragging,
|
|
656
|
+
listeners,
|
|
657
|
+
setNodeRef,
|
|
658
|
+
setActivatorNodeRef,
|
|
659
|
+
transform,
|
|
660
|
+
transition
|
|
661
|
+
} = useSortable2({ id });
|
|
662
|
+
const context = useMemo(
|
|
663
|
+
() => ({
|
|
664
|
+
attributes,
|
|
665
|
+
listeners,
|
|
666
|
+
ref: setActivatorNodeRef,
|
|
667
|
+
isDragging
|
|
668
|
+
}),
|
|
669
|
+
[attributes, listeners, setActivatorNodeRef, isDragging]
|
|
670
|
+
);
|
|
671
|
+
const style = {
|
|
672
|
+
opacity: isDragging ? 0.4 : void 0,
|
|
673
|
+
transform: CSS2.Translate.toString(transform),
|
|
674
|
+
transition
|
|
675
|
+
};
|
|
676
|
+
return /* @__PURE__ */ jsx3(SortableItemContext.Provider, { value: context, children: /* @__PURE__ */ jsx3(
|
|
677
|
+
"li",
|
|
678
|
+
{
|
|
679
|
+
className: clx("transition-fg flex flex-1 list-none", className),
|
|
680
|
+
ref: setNodeRef,
|
|
681
|
+
style,
|
|
682
|
+
children
|
|
683
|
+
}
|
|
684
|
+
) });
|
|
685
|
+
};
|
|
686
|
+
var DragHandle = () => {
|
|
687
|
+
const { attributes, listeners, ref } = useSortableItemContext();
|
|
688
|
+
return /* @__PURE__ */ jsx3(
|
|
689
|
+
IconButton2,
|
|
690
|
+
{
|
|
691
|
+
variant: "transparent",
|
|
692
|
+
size: "small",
|
|
693
|
+
...attributes,
|
|
694
|
+
...listeners,
|
|
695
|
+
ref,
|
|
696
|
+
className: "cursor-grab touch-none active:cursor-grabbing",
|
|
697
|
+
children: /* @__PURE__ */ jsx3(DotsSix2, { className: "text-ui-fg-muted" })
|
|
698
|
+
}
|
|
699
|
+
);
|
|
700
|
+
};
|
|
701
|
+
var SortableList = Object.assign(List, {
|
|
702
|
+
Item,
|
|
703
|
+
DragHandle
|
|
704
|
+
});
|
|
705
|
+
|
|
706
|
+
// src/routes/products/product-create/components/product-create-details-form/components/product-create-details-variant-section/product-create-details-variant-section.tsx
|
|
707
|
+
import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
557
708
|
var getPermutations = (data) => {
|
|
558
709
|
if (data.length === 0) {
|
|
559
710
|
return [];
|
|
@@ -579,6 +730,10 @@ var ProductCreateVariantsSection = ({
|
|
|
579
730
|
form
|
|
580
731
|
}) => {
|
|
581
732
|
const { t } = useTranslation3();
|
|
733
|
+
const options = useFieldArray2({
|
|
734
|
+
control: form.control,
|
|
735
|
+
name: "options"
|
|
736
|
+
});
|
|
582
737
|
const variants = useFieldArray2({
|
|
583
738
|
control: form.control,
|
|
584
739
|
name: "variants"
|
|
@@ -600,117 +755,71 @@ var ProductCreateVariantsSection = ({
|
|
|
600
755
|
});
|
|
601
756
|
const showInvalidOptionsMessage = !!form.formState.errors.options?.length;
|
|
602
757
|
const showInvalidVariantsMessage = form.formState.errors.variants?.root?.message === "invalid_length";
|
|
603
|
-
const
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
label: option.title
|
|
610
|
-
}));
|
|
611
|
-
}, [product_options]);
|
|
612
|
-
const [selectedOptionIds, setSelectedOptionIds] = useState2([]);
|
|
613
|
-
const [selectedOptionValues, setSelectedOptionValues] = useState2({});
|
|
614
|
-
const [customValues, setCustomValues] = useState2({});
|
|
615
|
-
const handleProductOptionSelect = (optionIds) => {
|
|
616
|
-
setSelectedOptionIds(optionIds);
|
|
617
|
-
const newSelectedValues = {};
|
|
618
|
-
const selectedProductOptions = product_options.filter(
|
|
619
|
-
(option) => optionIds.includes(option.id)
|
|
758
|
+
const handleOptionValueUpdate = (index, value) => {
|
|
759
|
+
const { isTouched: hasUserSelectedVariants } = form.getFieldState("variants");
|
|
760
|
+
const newOptions = [...watchedOptions];
|
|
761
|
+
newOptions[index].values = value;
|
|
762
|
+
const permutations = getPermutations(
|
|
763
|
+
newOptions.filter(({ values }) => values.length)
|
|
620
764
|
);
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
765
|
+
const oldVariants = [...watchedVariants];
|
|
766
|
+
const findMatchingPermutation = (options2) => {
|
|
767
|
+
return permutations.find(
|
|
768
|
+
(permutation) => Object.keys(options2).every((key) => options2[key] === permutation[key])
|
|
769
|
+
);
|
|
770
|
+
};
|
|
771
|
+
const newVariants = oldVariants.reduce((variants2, variant) => {
|
|
772
|
+
const match = findMatchingPermutation(variant.options);
|
|
773
|
+
if (match) {
|
|
774
|
+
variants2.push({
|
|
775
|
+
...variant,
|
|
776
|
+
title: getVariantName(match),
|
|
777
|
+
options: match
|
|
778
|
+
});
|
|
626
779
|
}
|
|
780
|
+
return variants2;
|
|
781
|
+
}, []);
|
|
782
|
+
const usedPermutations = new Set(
|
|
783
|
+
newVariants.map((variant) => variant.options)
|
|
784
|
+
);
|
|
785
|
+
const unusedPermutations = permutations.filter(
|
|
786
|
+
(permutation) => !usedPermutations.has(permutation)
|
|
787
|
+
);
|
|
788
|
+
unusedPermutations.forEach((permutation) => {
|
|
789
|
+
newVariants.push({
|
|
790
|
+
title: getVariantName(permutation),
|
|
791
|
+
options: permutation,
|
|
792
|
+
should_create: hasUserSelectedVariants ? false : true,
|
|
793
|
+
variant_rank: newVariants.length,
|
|
794
|
+
// NOTE - prepare inventory array here for now so we prevent rendering issue if we append the items later
|
|
795
|
+
inventory: [{ inventory_item_id: "", required_quantity: "" }]
|
|
796
|
+
});
|
|
627
797
|
});
|
|
628
|
-
|
|
629
|
-
updateFormWithSelectedValues(selectedProductOptions, newSelectedValues);
|
|
798
|
+
form.setValue("variants", newVariants);
|
|
630
799
|
};
|
|
631
|
-
const
|
|
632
|
-
if (
|
|
800
|
+
const handleRemoveOption = (index) => {
|
|
801
|
+
if (index === 0) {
|
|
633
802
|
return;
|
|
634
803
|
}
|
|
635
|
-
|
|
636
|
-
const
|
|
637
|
-
|
|
638
|
-
const
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
804
|
+
options.remove(index);
|
|
805
|
+
const newOptions = [...watchedOptions];
|
|
806
|
+
newOptions.splice(index, 1);
|
|
807
|
+
const validOptionTitles = new Set(newOptions.map((option) => option.title));
|
|
808
|
+
const permutations = getPermutations(newOptions);
|
|
809
|
+
const oldVariants = [...watchedVariants];
|
|
810
|
+
const newVariants = permutations.reduce((variants2, permutation) => {
|
|
811
|
+
const variant = oldVariants.find(
|
|
812
|
+
({ options: options2 }) => Object.keys(options2).filter((option) => validOptionTitles.has(option)).every((key) => options2[key] === permutation[key])
|
|
813
|
+
);
|
|
814
|
+
if (variant) {
|
|
815
|
+
variants2.push({
|
|
816
|
+
...variant,
|
|
817
|
+
title: variant.title,
|
|
818
|
+
options: permutation
|
|
819
|
+
});
|
|
644
820
|
}
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
const updatedValidValueIds = [...validValueIds];
|
|
648
|
-
newCustomValues.forEach((newValue) => {
|
|
649
|
-
const tempId = `custom-${Date.now()}-${Math.random()}-${newValue}`;
|
|
650
|
-
const existingCustom = updatedCustomValues[optionId] || [];
|
|
651
|
-
const option = product_options.find((opt) => opt.id === optionId);
|
|
652
|
-
const existingValuesCount = (option?.values?.length || 0) + existingCustom.length;
|
|
653
|
-
const newCustomValue = {
|
|
654
|
-
id: tempId,
|
|
655
|
-
value: newValue,
|
|
656
|
-
rank: existingValuesCount + newCustomValues.indexOf(newValue)
|
|
657
|
-
};
|
|
658
|
-
updatedCustomValues = {
|
|
659
|
-
...updatedCustomValues,
|
|
660
|
-
[optionId]: [...updatedCustomValues[optionId] || [], newCustomValue]
|
|
661
|
-
};
|
|
662
|
-
updatedValidValueIds.push(tempId);
|
|
663
|
-
});
|
|
664
|
-
if (newCustomValues.length > 0) {
|
|
665
|
-
setCustomValues(updatedCustomValues);
|
|
666
|
-
}
|
|
667
|
-
const updatedSelectedValues = {
|
|
668
|
-
...selectedOptionValues,
|
|
669
|
-
[optionId]: updatedValidValueIds
|
|
670
|
-
};
|
|
671
|
-
setSelectedOptionValues(updatedSelectedValues);
|
|
672
|
-
const selectedProductOptions = product_options.filter(
|
|
673
|
-
(option) => selectedOptionIds.includes(option.id)
|
|
674
|
-
);
|
|
675
|
-
updateFormWithSelectedValues(
|
|
676
|
-
selectedProductOptions,
|
|
677
|
-
updatedSelectedValues,
|
|
678
|
-
newCustomValues.length > 0 ? updatedCustomValues : void 0
|
|
679
|
-
);
|
|
680
|
-
};
|
|
681
|
-
const getAllValuesForOption = (optionId, customVals) => {
|
|
682
|
-
const option = product_options.find((opt) => opt.id === optionId);
|
|
683
|
-
const existingValues = option?.values || [];
|
|
684
|
-
const customForOption = (customVals || customValues)[optionId] || [];
|
|
685
|
-
return [...existingValues, ...customForOption];
|
|
686
|
-
};
|
|
687
|
-
const updateFormWithSelectedValues = (selectedProductOptions, valueSelections, customVals) => {
|
|
688
|
-
const newOptions = selectedProductOptions.map((option) => {
|
|
689
|
-
const selectedValueIds = valueSelections[option.id] || [];
|
|
690
|
-
const allValues = getAllValuesForOption(option.id, customVals);
|
|
691
|
-
const selectedValues = allValues.filter((v) => selectedValueIds.includes(v.id)).sort((a, b) => {
|
|
692
|
-
const rankA = a.rank ?? Number.MAX_VALUE;
|
|
693
|
-
const rankB = b.rank ?? Number.MAX_VALUE;
|
|
694
|
-
return rankA - rankB;
|
|
695
|
-
}).map((v) => v.value);
|
|
696
|
-
return {
|
|
697
|
-
id: option.id,
|
|
698
|
-
title: option.title,
|
|
699
|
-
values: selectedValues,
|
|
700
|
-
value_ids: selectedValueIds
|
|
701
|
-
};
|
|
702
|
-
});
|
|
703
|
-
form.setValue("options", newOptions);
|
|
704
|
-
const permutations = getPermutations(
|
|
705
|
-
newOptions.filter(({ values }) => values.length)
|
|
706
|
-
);
|
|
707
|
-
const newVariants = permutations.map((permutation, index) => ({
|
|
708
|
-
title: getVariantName(permutation),
|
|
709
|
-
options: permutation,
|
|
710
|
-
should_create: true,
|
|
711
|
-
variant_rank: index,
|
|
712
|
-
inventory: [{ inventory_item_id: "", required_quantity: "" }]
|
|
713
|
-
}));
|
|
821
|
+
return variants2;
|
|
822
|
+
}, []);
|
|
714
823
|
form.setValue("variants", newVariants);
|
|
715
824
|
};
|
|
716
825
|
const handleRankChange = (items) => {
|
|
@@ -782,10 +891,10 @@ var ProductCreateVariantsSection = ({
|
|
|
782
891
|
])
|
|
783
892
|
);
|
|
784
893
|
};
|
|
785
|
-
return /* @__PURE__ */
|
|
786
|
-
/* @__PURE__ */
|
|
787
|
-
/* @__PURE__ */
|
|
788
|
-
/* @__PURE__ */
|
|
894
|
+
return /* @__PURE__ */ jsxs4("div", { id: "variants", className: "flex flex-col gap-y-8", children: [
|
|
895
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-y-6", children: [
|
|
896
|
+
/* @__PURE__ */ jsx4(Heading, { level: "h2", children: t("products.create.variants.header") }),
|
|
897
|
+
/* @__PURE__ */ jsx4(
|
|
789
898
|
SwitchBox,
|
|
790
899
|
{
|
|
791
900
|
control: form.control,
|
|
@@ -804,74 +913,141 @@ var ProductCreateVariantsSection = ({
|
|
|
804
913
|
} else {
|
|
805
914
|
createDefaultOptionAndVariant();
|
|
806
915
|
}
|
|
807
|
-
setSelectedOptionIds([]);
|
|
808
|
-
setSelectedOptionValues({});
|
|
809
|
-
setCustomValues({});
|
|
810
916
|
}
|
|
811
917
|
}
|
|
812
918
|
)
|
|
813
919
|
] }),
|
|
814
|
-
watchedAreVariantsEnabled && /* @__PURE__ */
|
|
815
|
-
/* @__PURE__ */
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
920
|
+
watchedAreVariantsEnabled && /* @__PURE__ */ jsxs4(Fragment2, { children: [
|
|
921
|
+
/* @__PURE__ */ jsx4("div", { className: "flex flex-col gap-y-6", children: /* @__PURE__ */ jsx4(
|
|
922
|
+
Form.Field,
|
|
923
|
+
{
|
|
924
|
+
control: form.control,
|
|
925
|
+
name: "options",
|
|
926
|
+
render: () => {
|
|
927
|
+
return /* @__PURE__ */ jsx4(Form.Item, { children: /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-y-6", children: [
|
|
928
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-start justify-between gap-x-4", children: [
|
|
929
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
|
|
930
|
+
/* @__PURE__ */ jsx4(Form.Label, { children: t("products.create.variants.productOptions.label") }),
|
|
931
|
+
/* @__PURE__ */ jsx4(Form.Hint, { children: t("products.create.variants.productOptions.hint") })
|
|
932
|
+
] }),
|
|
933
|
+
/* @__PURE__ */ jsx4(
|
|
934
|
+
Button,
|
|
935
|
+
{
|
|
936
|
+
size: "small",
|
|
937
|
+
variant: "secondary",
|
|
938
|
+
type: "button",
|
|
939
|
+
onClick: () => {
|
|
940
|
+
options.append({
|
|
941
|
+
title: "",
|
|
942
|
+
values: []
|
|
943
|
+
});
|
|
944
|
+
},
|
|
945
|
+
children: t("actions.add")
|
|
946
|
+
}
|
|
947
|
+
)
|
|
948
|
+
] }),
|
|
949
|
+
showInvalidOptionsMessage && /* @__PURE__ */ jsx4(Alert, { dismissible: true, variant: "error", children: t("products.create.errors.options") }),
|
|
950
|
+
/* @__PURE__ */ jsx4("ul", { className: "flex flex-col gap-y-4", children: options.fields.map((option, index) => {
|
|
951
|
+
const hasError = !!form.formState.errors.options?.[index];
|
|
952
|
+
return /* @__PURE__ */ jsxs4(
|
|
953
|
+
"li",
|
|
954
|
+
{
|
|
955
|
+
className: clx2(
|
|
956
|
+
"bg-ui-bg-component shadow-elevation-card-rest grid grid-cols-[1fr_28px] items-center gap-1.5 rounded-xl p-1.5",
|
|
957
|
+
{
|
|
958
|
+
"border-ui-border-error shadow-borders-error": hasError
|
|
959
|
+
}
|
|
960
|
+
),
|
|
961
|
+
children: [
|
|
962
|
+
/* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-[min-content,1fr] items-center gap-1.5", children: [
|
|
963
|
+
/* @__PURE__ */ jsx4("div", { className: "flex items-center px-2 py-1.5", children: /* @__PURE__ */ jsx4(
|
|
964
|
+
Label,
|
|
965
|
+
{
|
|
966
|
+
size: "xsmall",
|
|
967
|
+
weight: "plus",
|
|
968
|
+
className: "text-ui-fg-subtle",
|
|
969
|
+
htmlFor: `options.${index}.title`,
|
|
970
|
+
children: t("fields.title")
|
|
971
|
+
}
|
|
972
|
+
) }),
|
|
973
|
+
/* @__PURE__ */ jsx4(
|
|
974
|
+
Input2,
|
|
975
|
+
{
|
|
976
|
+
className: "bg-ui-bg-field-component hover:bg-ui-bg-field-component-hover",
|
|
977
|
+
...form.register(
|
|
978
|
+
`options.${index}.title`
|
|
979
|
+
),
|
|
980
|
+
placeholder: t(
|
|
981
|
+
"products.fields.options.optionTitlePlaceholder"
|
|
982
|
+
)
|
|
983
|
+
}
|
|
984
|
+
),
|
|
985
|
+
/* @__PURE__ */ jsx4("div", { className: "flex items-center px-2 py-1.5", children: /* @__PURE__ */ jsx4(
|
|
986
|
+
Label,
|
|
987
|
+
{
|
|
988
|
+
size: "xsmall",
|
|
989
|
+
weight: "plus",
|
|
990
|
+
className: "text-ui-fg-subtle",
|
|
991
|
+
htmlFor: `options.${index}.values`,
|
|
992
|
+
children: t("fields.values")
|
|
993
|
+
}
|
|
994
|
+
) }),
|
|
995
|
+
/* @__PURE__ */ jsx4(
|
|
996
|
+
Controller,
|
|
997
|
+
{
|
|
998
|
+
control: form.control,
|
|
999
|
+
name: `options.${index}.values`,
|
|
1000
|
+
render: ({
|
|
1001
|
+
field: { onChange, ...field }
|
|
1002
|
+
}) => {
|
|
1003
|
+
const handleValueChange = (value) => {
|
|
1004
|
+
handleOptionValueUpdate(index, value);
|
|
1005
|
+
onChange(value);
|
|
1006
|
+
};
|
|
1007
|
+
return /* @__PURE__ */ jsx4(
|
|
1008
|
+
ChipInput,
|
|
1009
|
+
{
|
|
1010
|
+
...field,
|
|
1011
|
+
variant: "contrast",
|
|
1012
|
+
onChange: handleValueChange,
|
|
1013
|
+
placeholder: t(
|
|
1014
|
+
"products.fields.options.variantionsPlaceholder"
|
|
1015
|
+
)
|
|
1016
|
+
}
|
|
1017
|
+
);
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
1020
|
+
)
|
|
1021
|
+
] }),
|
|
1022
|
+
/* @__PURE__ */ jsx4(
|
|
1023
|
+
IconButton3,
|
|
1024
|
+
{
|
|
1025
|
+
type: "button",
|
|
1026
|
+
size: "small",
|
|
1027
|
+
variant: "transparent",
|
|
1028
|
+
className: "text-ui-fg-muted",
|
|
1029
|
+
disabled: index === 0,
|
|
1030
|
+
onClick: () => handleRemoveOption(index),
|
|
1031
|
+
children: /* @__PURE__ */ jsx4(XMarkMini, {})
|
|
1032
|
+
}
|
|
1033
|
+
)
|
|
1034
|
+
]
|
|
1035
|
+
},
|
|
1036
|
+
option.id
|
|
1037
|
+
);
|
|
1038
|
+
}) })
|
|
1039
|
+
] }) });
|
|
830
1040
|
}
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
/* @__PURE__ */
|
|
835
|
-
/* @__PURE__ */
|
|
836
|
-
/* @__PURE__ */
|
|
837
|
-
] }),
|
|
838
|
-
/* @__PURE__ */ jsx3("div", { className: "flex flex-col gap-y-3", children: product_options.filter((option) => selectedOptionIds.includes(option.id)).map((option) => {
|
|
839
|
-
const allValues = getAllValuesForOption(option.id);
|
|
840
|
-
const valueOptions = allValues.sort((a, b) => {
|
|
841
|
-
const rankA = a.rank ?? Number.MAX_VALUE;
|
|
842
|
-
const rankB = b.rank ?? Number.MAX_VALUE;
|
|
843
|
-
return rankA - rankB;
|
|
844
|
-
}).map((v) => ({
|
|
845
|
-
value: v.id,
|
|
846
|
-
label: v.value
|
|
847
|
-
}));
|
|
848
|
-
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-y-2", children: [
|
|
849
|
-
/* @__PURE__ */ jsx3(Label, { size: "small", weight: "plus", children: option.title }),
|
|
850
|
-
/* @__PURE__ */ jsx3(
|
|
851
|
-
Combobox,
|
|
852
|
-
{
|
|
853
|
-
value: selectedOptionValues[option.id] || [],
|
|
854
|
-
onChange: (value) => handleValueChange(option.id, value),
|
|
855
|
-
onCreateOption: (_) => {
|
|
856
|
-
},
|
|
857
|
-
options: valueOptions,
|
|
858
|
-
placeholder: t(
|
|
859
|
-
"products.fields.options.variantionsPlaceholder"
|
|
860
|
-
),
|
|
861
|
-
displayMode: "chips"
|
|
862
|
-
}
|
|
863
|
-
)
|
|
864
|
-
] }, option.id);
|
|
865
|
-
}) })
|
|
866
|
-
] }),
|
|
867
|
-
/* @__PURE__ */ jsx3("div", { className: "grid grid-cols-1 gap-x-4 gap-y-8", children: /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-y-6", children: [
|
|
868
|
-
/* @__PURE__ */ jsxs3("div", { className: "flex flex-col", children: [
|
|
869
|
-
/* @__PURE__ */ jsx3(Label, { weight: "plus", children: t("products.create.variants.productVariants.label") }),
|
|
870
|
-
/* @__PURE__ */ jsx3(Hint, { children: t("products.create.variants.productVariants.hint") })
|
|
1041
|
+
}
|
|
1042
|
+
) }),
|
|
1043
|
+
/* @__PURE__ */ jsx4("div", { className: "grid grid-cols-1 gap-x-4 gap-y-8", children: /* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-y-6", children: [
|
|
1044
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
|
|
1045
|
+
/* @__PURE__ */ jsx4(Label, { weight: "plus", children: t("products.create.variants.productVariants.label") }),
|
|
1046
|
+
/* @__PURE__ */ jsx4(Hint, { children: t("products.create.variants.productVariants.hint") })
|
|
871
1047
|
] }),
|
|
872
|
-
!showInvalidOptionsMessage && showInvalidVariantsMessage && /* @__PURE__ */
|
|
873
|
-
variants.fields.length > 0 ? /* @__PURE__ */
|
|
874
|
-
/* @__PURE__ */
|
|
1048
|
+
!showInvalidOptionsMessage && showInvalidVariantsMessage && /* @__PURE__ */ jsx4(Alert, { dismissible: true, variant: "error", children: t("products.create.errors.variants") }),
|
|
1049
|
+
variants.fields.length > 0 ? /* @__PURE__ */ jsxs4("div", { className: "overflow-hidden rounded-xl border", children: [
|
|
1050
|
+
/* @__PURE__ */ jsxs4(
|
|
875
1051
|
"div",
|
|
876
1052
|
{
|
|
877
1053
|
className: "bg-ui-bg-component text-ui-fg-subtle grid items-center gap-3 border-b px-6 py-2.5",
|
|
@@ -879,7 +1055,7 @@ var ProductCreateVariantsSection = ({
|
|
|
879
1055
|
gridTemplateColumns: `20px 28px repeat(${watchedOptions.length}, 1fr)`
|
|
880
1056
|
},
|
|
881
1057
|
children: [
|
|
882
|
-
/* @__PURE__ */
|
|
1058
|
+
/* @__PURE__ */ jsx4("div", { children: /* @__PURE__ */ jsx4(
|
|
883
1059
|
Checkbox,
|
|
884
1060
|
{
|
|
885
1061
|
className: "relative",
|
|
@@ -887,25 +1063,25 @@ var ProductCreateVariantsSection = ({
|
|
|
887
1063
|
onCheckedChange: onCheckboxChange
|
|
888
1064
|
}
|
|
889
1065
|
) }),
|
|
890
|
-
/* @__PURE__ */
|
|
891
|
-
watchedOptions.map((option, index) => /* @__PURE__ */
|
|
1066
|
+
/* @__PURE__ */ jsx4("div", {}),
|
|
1067
|
+
watchedOptions.map((option, index) => /* @__PURE__ */ jsx4("div", { children: /* @__PURE__ */ jsx4(Text2, { size: "small", leading: "compact", weight: "plus", children: option.title }) }, index))
|
|
892
1068
|
]
|
|
893
1069
|
}
|
|
894
1070
|
),
|
|
895
|
-
/* @__PURE__ */
|
|
1071
|
+
/* @__PURE__ */ jsx4(
|
|
896
1072
|
SortableList,
|
|
897
1073
|
{
|
|
898
1074
|
items: variants.fields,
|
|
899
1075
|
onChange: handleRankChange,
|
|
900
1076
|
renderItem: (item, index) => {
|
|
901
|
-
return /* @__PURE__ */
|
|
1077
|
+
return /* @__PURE__ */ jsx4(
|
|
902
1078
|
SortableList.Item,
|
|
903
1079
|
{
|
|
904
1080
|
id: item.id,
|
|
905
|
-
className:
|
|
1081
|
+
className: clx2("bg-ui-bg-base border-b", {
|
|
906
1082
|
"border-b-0": index === variants.fields.length - 1
|
|
907
1083
|
}),
|
|
908
|
-
children: /* @__PURE__ */
|
|
1084
|
+
children: /* @__PURE__ */ jsxs4(
|
|
909
1085
|
"div",
|
|
910
1086
|
{
|
|
911
1087
|
className: "text-ui-fg-subtle grid w-full items-center gap-3 px-6 py-2.5",
|
|
@@ -913,7 +1089,7 @@ var ProductCreateVariantsSection = ({
|
|
|
913
1089
|
gridTemplateColumns: `20px 28px repeat(${watchedOptions.length}, 1fr)`
|
|
914
1090
|
},
|
|
915
1091
|
children: [
|
|
916
|
-
/* @__PURE__ */
|
|
1092
|
+
/* @__PURE__ */ jsx4(
|
|
917
1093
|
Form.Field,
|
|
918
1094
|
{
|
|
919
1095
|
control: form.control,
|
|
@@ -921,7 +1097,7 @@ var ProductCreateVariantsSection = ({
|
|
|
921
1097
|
render: ({
|
|
922
1098
|
field: { value, onChange, ...field }
|
|
923
1099
|
}) => {
|
|
924
|
-
return /* @__PURE__ */
|
|
1100
|
+
return /* @__PURE__ */ jsx4(Form.Item, { children: /* @__PURE__ */ jsx4(Form.Control, { children: /* @__PURE__ */ jsx4(
|
|
925
1101
|
Checkbox,
|
|
926
1102
|
{
|
|
927
1103
|
className: "relative",
|
|
@@ -933,8 +1109,8 @@ var ProductCreateVariantsSection = ({
|
|
|
933
1109
|
}
|
|
934
1110
|
}
|
|
935
1111
|
),
|
|
936
|
-
/* @__PURE__ */
|
|
937
|
-
Object.values(item.options).map((value, index2) => /* @__PURE__ */
|
|
1112
|
+
/* @__PURE__ */ jsx4(SortableList.DragHandle, {}),
|
|
1113
|
+
Object.values(item.options).map((value, index2) => /* @__PURE__ */ jsx4(Text2, { size: "small", leading: "compact", children: value }, index2))
|
|
938
1114
|
]
|
|
939
1115
|
}
|
|
940
1116
|
)
|
|
@@ -943,40 +1119,40 @@ var ProductCreateVariantsSection = ({
|
|
|
943
1119
|
}
|
|
944
1120
|
}
|
|
945
1121
|
)
|
|
946
|
-
] }) : /* @__PURE__ */
|
|
947
|
-
variants.fields.length > 0 && /* @__PURE__ */
|
|
1122
|
+
] }) : /* @__PURE__ */ jsx4(Alert, { children: t("products.create.variants.productVariants.alert") }),
|
|
1123
|
+
variants.fields.length > 0 && /* @__PURE__ */ jsx4(InlineTip, { label: t("general.tip"), children: t("products.create.variants.productVariants.tip") })
|
|
948
1124
|
] }) })
|
|
949
1125
|
] })
|
|
950
1126
|
] });
|
|
951
1127
|
};
|
|
952
1128
|
|
|
953
1129
|
// src/routes/products/product-create/components/product-create-details-form/product-create-details-form.tsx
|
|
954
|
-
import { jsx as
|
|
1130
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
955
1131
|
var ProductCreateDetailsForm = ({ form }) => {
|
|
956
1132
|
const { getFormFields } = useExtension();
|
|
957
1133
|
const fields = getFormFields("product", "create", "general");
|
|
958
|
-
return /* @__PURE__ */
|
|
959
|
-
/* @__PURE__ */
|
|
960
|
-
/* @__PURE__ */
|
|
961
|
-
/* @__PURE__ */
|
|
962
|
-
/* @__PURE__ */
|
|
963
|
-
/* @__PURE__ */
|
|
1134
|
+
return /* @__PURE__ */ jsx5("div", { className: "flex flex-col items-center p-16", children: /* @__PURE__ */ jsxs5("div", { className: "flex w-full max-w-[720px] flex-col gap-y-8", children: [
|
|
1135
|
+
/* @__PURE__ */ jsx5(Header, {}),
|
|
1136
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-y-6", children: [
|
|
1137
|
+
/* @__PURE__ */ jsx5(ProductCreateGeneralSection, { form }),
|
|
1138
|
+
/* @__PURE__ */ jsx5(FormExtensionZone, { fields, form }),
|
|
1139
|
+
/* @__PURE__ */ jsx5(ProductCreateMediaSection, { form })
|
|
964
1140
|
] }),
|
|
965
|
-
/* @__PURE__ */
|
|
966
|
-
/* @__PURE__ */
|
|
1141
|
+
/* @__PURE__ */ jsx5(Divider, {}),
|
|
1142
|
+
/* @__PURE__ */ jsx5(ProductCreateVariantsSection, { form })
|
|
967
1143
|
] }) });
|
|
968
1144
|
};
|
|
969
1145
|
var Header = () => {
|
|
970
1146
|
const { t } = useTranslation4();
|
|
971
|
-
return /* @__PURE__ */
|
|
1147
|
+
return /* @__PURE__ */ jsx5("div", { className: "flex flex-col", children: /* @__PURE__ */ jsx5(Heading2, { children: t("products.create.header") }) });
|
|
972
1148
|
};
|
|
973
1149
|
|
|
974
1150
|
// src/routes/products/product-create/components/product-create-inventory-kit-form/components/product-create-inventory-kit-section/product-create-inventory-kit-section.tsx
|
|
975
|
-
import { Button, Heading as Heading3, IconButton as
|
|
1151
|
+
import { Button as Button2, Heading as Heading3, IconButton as IconButton4, Input as Input3, Label as Label2 } from "@medusajs/ui";
|
|
976
1152
|
import { useFieldArray as useFieldArray3, useWatch as useWatch2 } from "react-hook-form";
|
|
977
|
-
import { XMarkMini } from "@medusajs/icons";
|
|
1153
|
+
import { XMarkMini as XMarkMini2 } from "@medusajs/icons";
|
|
978
1154
|
import { useTranslation as useTranslation5 } from "react-i18next";
|
|
979
|
-
import { jsx as
|
|
1155
|
+
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
980
1156
|
function InventoryItemRow({
|
|
981
1157
|
form,
|
|
982
1158
|
variantIndex,
|
|
@@ -1000,13 +1176,13 @@ function InventoryItemRow({
|
|
|
1000
1176
|
value: item.id
|
|
1001
1177
|
}))
|
|
1002
1178
|
});
|
|
1003
|
-
return /* @__PURE__ */
|
|
1179
|
+
return /* @__PURE__ */ jsxs6(
|
|
1004
1180
|
"li",
|
|
1005
1181
|
{
|
|
1006
1182
|
className: "bg-ui-bg-component shadow-elevation-card-rest grid grid-cols-[1fr_28px] items-center gap-1.5 rounded-xl p-1.5",
|
|
1007
1183
|
children: [
|
|
1008
|
-
/* @__PURE__ */
|
|
1009
|
-
/* @__PURE__ */
|
|
1184
|
+
/* @__PURE__ */ jsxs6("div", { className: "grid grid-cols-[min-content,1fr] items-center gap-1.5", children: [
|
|
1185
|
+
/* @__PURE__ */ jsx6("div", { className: "flex items-center px-2 py-1.5", children: /* @__PURE__ */ jsx6(
|
|
1010
1186
|
Label2,
|
|
1011
1187
|
{
|
|
1012
1188
|
size: "xsmall",
|
|
@@ -1016,13 +1192,13 @@ function InventoryItemRow({
|
|
|
1016
1192
|
children: t("fields.item")
|
|
1017
1193
|
}
|
|
1018
1194
|
) }),
|
|
1019
|
-
/* @__PURE__ */
|
|
1195
|
+
/* @__PURE__ */ jsx6(
|
|
1020
1196
|
Form.Field,
|
|
1021
1197
|
{
|
|
1022
1198
|
control: form.control,
|
|
1023
1199
|
name: `variants.${variantIndex}.inventory.${inventoryIndex}.inventory_item_id`,
|
|
1024
1200
|
render: ({ field }) => {
|
|
1025
|
-
return /* @__PURE__ */
|
|
1201
|
+
return /* @__PURE__ */ jsx6(Form.Item, { children: /* @__PURE__ */ jsx6(Form.Control, { children: /* @__PURE__ */ jsx6(
|
|
1026
1202
|
Combobox,
|
|
1027
1203
|
{
|
|
1028
1204
|
...field,
|
|
@@ -1041,7 +1217,7 @@ function InventoryItemRow({
|
|
|
1041
1217
|
}
|
|
1042
1218
|
}
|
|
1043
1219
|
),
|
|
1044
|
-
/* @__PURE__ */
|
|
1220
|
+
/* @__PURE__ */ jsx6("div", { className: "flex items-center px-2 py-1.5", children: /* @__PURE__ */ jsx6(
|
|
1045
1221
|
Label2,
|
|
1046
1222
|
{
|
|
1047
1223
|
size: "xsmall",
|
|
@@ -1051,15 +1227,15 @@ function InventoryItemRow({
|
|
|
1051
1227
|
children: t("fields.quantity")
|
|
1052
1228
|
}
|
|
1053
1229
|
) }),
|
|
1054
|
-
/* @__PURE__ */
|
|
1230
|
+
/* @__PURE__ */ jsx6(
|
|
1055
1231
|
Form.Field,
|
|
1056
1232
|
{
|
|
1057
1233
|
control: form.control,
|
|
1058
1234
|
name: `variants.${variantIndex}.inventory.${inventoryIndex}.required_quantity`,
|
|
1059
1235
|
render: ({ field: { onChange, value, ...field } }) => {
|
|
1060
|
-
return /* @__PURE__ */
|
|
1061
|
-
/* @__PURE__ */
|
|
1062
|
-
|
|
1236
|
+
return /* @__PURE__ */ jsxs6(Form.Item, { children: [
|
|
1237
|
+
/* @__PURE__ */ jsx6(Form.Control, { children: /* @__PURE__ */ jsx6(
|
|
1238
|
+
Input3,
|
|
1063
1239
|
{
|
|
1064
1240
|
type: "number",
|
|
1065
1241
|
className: "bg-ui-bg-field-component",
|
|
@@ -1079,21 +1255,21 @@ function InventoryItemRow({
|
|
|
1079
1255
|
)
|
|
1080
1256
|
}
|
|
1081
1257
|
) }),
|
|
1082
|
-
/* @__PURE__ */
|
|
1258
|
+
/* @__PURE__ */ jsx6(Form.ErrorMessage, {})
|
|
1083
1259
|
] });
|
|
1084
1260
|
}
|
|
1085
1261
|
}
|
|
1086
1262
|
)
|
|
1087
1263
|
] }),
|
|
1088
|
-
/* @__PURE__ */
|
|
1089
|
-
|
|
1264
|
+
/* @__PURE__ */ jsx6(
|
|
1265
|
+
IconButton4,
|
|
1090
1266
|
{
|
|
1091
1267
|
type: "button",
|
|
1092
1268
|
size: "small",
|
|
1093
1269
|
variant: "transparent",
|
|
1094
1270
|
className: "text-ui-fg-muted",
|
|
1095
1271
|
onClick: onRemove,
|
|
1096
|
-
children: /* @__PURE__ */
|
|
1272
|
+
children: /* @__PURE__ */ jsx6(XMarkMini2, {})
|
|
1097
1273
|
}
|
|
1098
1274
|
)
|
|
1099
1275
|
]
|
|
@@ -1116,14 +1292,14 @@ function VariantSection({ form, variant, index }) {
|
|
|
1116
1292
|
(i, index2) => index2 != inventoryIndex && i.inventory_item_id === option.value
|
|
1117
1293
|
);
|
|
1118
1294
|
};
|
|
1119
|
-
return /* @__PURE__ */
|
|
1120
|
-
/* @__PURE__ */
|
|
1121
|
-
/* @__PURE__ */
|
|
1122
|
-
/* @__PURE__ */
|
|
1123
|
-
/* @__PURE__ */
|
|
1295
|
+
return /* @__PURE__ */ jsxs6("div", { className: "grid gap-y-4", children: [
|
|
1296
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex items-start justify-between gap-x-4", children: [
|
|
1297
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex flex-col", children: [
|
|
1298
|
+
/* @__PURE__ */ jsx6(Form.Label, { children: variant.title }),
|
|
1299
|
+
/* @__PURE__ */ jsx6(Form.Hint, { children: t("products.create.inventory.label") })
|
|
1124
1300
|
] }),
|
|
1125
|
-
/* @__PURE__ */
|
|
1126
|
-
|
|
1301
|
+
/* @__PURE__ */ jsx6(
|
|
1302
|
+
Button2,
|
|
1127
1303
|
{
|
|
1128
1304
|
size: "small",
|
|
1129
1305
|
variant: "secondary",
|
|
@@ -1138,7 +1314,7 @@ function VariantSection({ form, variant, index }) {
|
|
|
1138
1314
|
}
|
|
1139
1315
|
)
|
|
1140
1316
|
] }),
|
|
1141
|
-
inventory.fields.map((inventoryItem, inventoryIndex) => /* @__PURE__ */
|
|
1317
|
+
inventory.fields.map((inventoryItem, inventoryIndex) => /* @__PURE__ */ jsx6(
|
|
1142
1318
|
InventoryItemRow,
|
|
1143
1319
|
{
|
|
1144
1320
|
form,
|
|
@@ -1160,9 +1336,9 @@ var ProductCreateInventoryKitSection = ({
|
|
|
1160
1336
|
control: form.control,
|
|
1161
1337
|
name: "variants"
|
|
1162
1338
|
});
|
|
1163
|
-
return /* @__PURE__ */
|
|
1164
|
-
/* @__PURE__ */
|
|
1165
|
-
variants.fields.filter((v) => v.inventory_kit).map((variant, variantIndex) => /* @__PURE__ */
|
|
1339
|
+
return /* @__PURE__ */ jsxs6("div", { id: "organize", className: "flex flex-col gap-y-8", children: [
|
|
1340
|
+
/* @__PURE__ */ jsx6(Heading3, { children: t("products.create.inventory.heading") }),
|
|
1341
|
+
variants.fields.filter((v) => v.inventory_kit).map((variant, variantIndex) => /* @__PURE__ */ jsx6(
|
|
1166
1342
|
VariantSection,
|
|
1167
1343
|
{
|
|
1168
1344
|
form,
|
|
@@ -1175,18 +1351,18 @@ var ProductCreateInventoryKitSection = ({
|
|
|
1175
1351
|
};
|
|
1176
1352
|
|
|
1177
1353
|
// src/routes/products/product-create/components/product-create-inventory-kit-form/product-create-inventory-kit-form.tsx
|
|
1178
|
-
import { jsx as
|
|
1354
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
1179
1355
|
var ProductCreateInventoryKitForm = ({
|
|
1180
1356
|
form
|
|
1181
1357
|
}) => {
|
|
1182
|
-
return /* @__PURE__ */
|
|
1358
|
+
return /* @__PURE__ */ jsx7("div", { className: "flex flex-col items-center p-16", children: /* @__PURE__ */ jsx7("div", { className: "flex w-full max-w-[720px] flex-col gap-y-8", children: /* @__PURE__ */ jsx7(ProductCreateInventoryKitSection, { form }) }) });
|
|
1183
1359
|
};
|
|
1184
1360
|
|
|
1185
1361
|
// src/routes/products/product-create/components/product-create-organize-form/components/product-create-organize-section/product-create-details-organize-section.tsx
|
|
1186
|
-
import { Button as
|
|
1362
|
+
import { Button as Button3, Heading as Heading4 } from "@medusajs/ui";
|
|
1187
1363
|
import { useFieldArray as useFieldArray4 } from "react-hook-form";
|
|
1188
1364
|
import { Trans, useTranslation as useTranslation6 } from "react-i18next";
|
|
1189
|
-
import { jsx as
|
|
1365
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1190
1366
|
var ProductCreateOrganizationSection = ({
|
|
1191
1367
|
form
|
|
1192
1368
|
}) => {
|
|
@@ -1231,9 +1407,9 @@ var ProductCreateOrganizationSection = ({
|
|
|
1231
1407
|
const handleClearAllSalesChannels = () => {
|
|
1232
1408
|
replace([]);
|
|
1233
1409
|
};
|
|
1234
|
-
return /* @__PURE__ */
|
|
1235
|
-
/* @__PURE__ */
|
|
1236
|
-
/* @__PURE__ */
|
|
1410
|
+
return /* @__PURE__ */ jsxs7("div", { id: "organize", className: "flex flex-col gap-y-8", children: [
|
|
1411
|
+
/* @__PURE__ */ jsx8(Heading4, { children: t("products.organization.header") }),
|
|
1412
|
+
/* @__PURE__ */ jsx8(
|
|
1237
1413
|
SwitchBox,
|
|
1238
1414
|
{
|
|
1239
1415
|
control: form.control,
|
|
@@ -1243,16 +1419,16 @@ var ProductCreateOrganizationSection = ({
|
|
|
1243
1419
|
optional: true
|
|
1244
1420
|
}
|
|
1245
1421
|
),
|
|
1246
|
-
/* @__PURE__ */
|
|
1247
|
-
/* @__PURE__ */
|
|
1422
|
+
/* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
1423
|
+
/* @__PURE__ */ jsx8(
|
|
1248
1424
|
Form.Field,
|
|
1249
1425
|
{
|
|
1250
1426
|
control: form.control,
|
|
1251
1427
|
name: "type_id",
|
|
1252
1428
|
render: ({ field }) => {
|
|
1253
|
-
return /* @__PURE__ */
|
|
1254
|
-
/* @__PURE__ */
|
|
1255
|
-
/* @__PURE__ */
|
|
1429
|
+
return /* @__PURE__ */ jsxs7(Form.Item, { children: [
|
|
1430
|
+
/* @__PURE__ */ jsx8(Form.Label, { optional: true, children: t("products.fields.type.label") }),
|
|
1431
|
+
/* @__PURE__ */ jsx8(Form.Control, { children: /* @__PURE__ */ jsx8(
|
|
1256
1432
|
Combobox,
|
|
1257
1433
|
{
|
|
1258
1434
|
...field,
|
|
@@ -1262,20 +1438,20 @@ var ProductCreateOrganizationSection = ({
|
|
|
1262
1438
|
fetchNextPage: types.fetchNextPage
|
|
1263
1439
|
}
|
|
1264
1440
|
) }),
|
|
1265
|
-
/* @__PURE__ */
|
|
1441
|
+
/* @__PURE__ */ jsx8(Form.ErrorMessage, {})
|
|
1266
1442
|
] });
|
|
1267
1443
|
}
|
|
1268
1444
|
}
|
|
1269
1445
|
),
|
|
1270
|
-
/* @__PURE__ */
|
|
1446
|
+
/* @__PURE__ */ jsx8(
|
|
1271
1447
|
Form.Field,
|
|
1272
1448
|
{
|
|
1273
1449
|
control: form.control,
|
|
1274
1450
|
name: "collection_id",
|
|
1275
1451
|
render: ({ field }) => {
|
|
1276
|
-
return /* @__PURE__ */
|
|
1277
|
-
/* @__PURE__ */
|
|
1278
|
-
/* @__PURE__ */
|
|
1452
|
+
return /* @__PURE__ */ jsxs7(Form.Item, { children: [
|
|
1453
|
+
/* @__PURE__ */ jsx8(Form.Label, { optional: true, children: t("products.fields.collection.label") }),
|
|
1454
|
+
/* @__PURE__ */ jsx8(Form.Control, { children: /* @__PURE__ */ jsx8(
|
|
1279
1455
|
Combobox,
|
|
1280
1456
|
{
|
|
1281
1457
|
...field,
|
|
@@ -1285,36 +1461,36 @@ var ProductCreateOrganizationSection = ({
|
|
|
1285
1461
|
fetchNextPage: collections.fetchNextPage
|
|
1286
1462
|
}
|
|
1287
1463
|
) }),
|
|
1288
|
-
/* @__PURE__ */
|
|
1464
|
+
/* @__PURE__ */ jsx8(Form.ErrorMessage, {})
|
|
1289
1465
|
] });
|
|
1290
1466
|
}
|
|
1291
1467
|
}
|
|
1292
1468
|
)
|
|
1293
1469
|
] }),
|
|
1294
|
-
/* @__PURE__ */
|
|
1295
|
-
/* @__PURE__ */
|
|
1470
|
+
/* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
1471
|
+
/* @__PURE__ */ jsx8(
|
|
1296
1472
|
Form.Field,
|
|
1297
1473
|
{
|
|
1298
1474
|
control: form.control,
|
|
1299
1475
|
name: "categories",
|
|
1300
1476
|
render: ({ field }) => {
|
|
1301
|
-
return /* @__PURE__ */
|
|
1302
|
-
/* @__PURE__ */
|
|
1303
|
-
/* @__PURE__ */
|
|
1304
|
-
/* @__PURE__ */
|
|
1477
|
+
return /* @__PURE__ */ jsxs7(Form.Item, { children: [
|
|
1478
|
+
/* @__PURE__ */ jsx8(Form.Label, { optional: true, children: t("products.fields.categories.label") }),
|
|
1479
|
+
/* @__PURE__ */ jsx8(Form.Control, { children: /* @__PURE__ */ jsx8(CategoryCombobox, { ...field }) }),
|
|
1480
|
+
/* @__PURE__ */ jsx8(Form.ErrorMessage, {})
|
|
1305
1481
|
] });
|
|
1306
1482
|
}
|
|
1307
1483
|
}
|
|
1308
1484
|
),
|
|
1309
|
-
/* @__PURE__ */
|
|
1485
|
+
/* @__PURE__ */ jsx8(
|
|
1310
1486
|
Form.Field,
|
|
1311
1487
|
{
|
|
1312
1488
|
control: form.control,
|
|
1313
1489
|
name: "tags",
|
|
1314
1490
|
render: ({ field }) => {
|
|
1315
|
-
return /* @__PURE__ */
|
|
1316
|
-
/* @__PURE__ */
|
|
1317
|
-
/* @__PURE__ */
|
|
1491
|
+
return /* @__PURE__ */ jsxs7(Form.Item, { children: [
|
|
1492
|
+
/* @__PURE__ */ jsx8(Form.Label, { optional: true, children: t("products.fields.tags.label") }),
|
|
1493
|
+
/* @__PURE__ */ jsx8(Form.Control, { children: /* @__PURE__ */ jsx8(
|
|
1318
1494
|
Combobox,
|
|
1319
1495
|
{
|
|
1320
1496
|
...field,
|
|
@@ -1324,25 +1500,25 @@ var ProductCreateOrganizationSection = ({
|
|
|
1324
1500
|
fetchNextPage: tags.fetchNextPage
|
|
1325
1501
|
}
|
|
1326
1502
|
) }),
|
|
1327
|
-
/* @__PURE__ */
|
|
1503
|
+
/* @__PURE__ */ jsx8(Form.ErrorMessage, {})
|
|
1328
1504
|
] });
|
|
1329
1505
|
}
|
|
1330
1506
|
}
|
|
1331
1507
|
)
|
|
1332
1508
|
] }),
|
|
1333
|
-
/* @__PURE__ */
|
|
1334
|
-
/* @__PURE__ */
|
|
1335
|
-
/* @__PURE__ */
|
|
1336
|
-
/* @__PURE__ */
|
|
1509
|
+
/* @__PURE__ */ jsxs7("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
1510
|
+
/* @__PURE__ */ jsxs7("div", { children: [
|
|
1511
|
+
/* @__PURE__ */ jsx8(Form.Label, { optional: true, children: t("products.fields.shipping_profile.label") }),
|
|
1512
|
+
/* @__PURE__ */ jsx8(Form.Hint, { children: /* @__PURE__ */ jsx8(Trans, { i18nKey: "products.fields.shipping_profile.hint" }) })
|
|
1337
1513
|
] }),
|
|
1338
|
-
/* @__PURE__ */
|
|
1514
|
+
/* @__PURE__ */ jsx8(
|
|
1339
1515
|
Form.Field,
|
|
1340
1516
|
{
|
|
1341
1517
|
control: form.control,
|
|
1342
1518
|
name: "shipping_profile_id",
|
|
1343
1519
|
render: ({ field }) => {
|
|
1344
|
-
return /* @__PURE__ */
|
|
1345
|
-
/* @__PURE__ */
|
|
1520
|
+
return /* @__PURE__ */ jsxs7(Form.Item, { children: [
|
|
1521
|
+
/* @__PURE__ */ jsx8(Form.Control, { children: /* @__PURE__ */ jsx8(
|
|
1346
1522
|
Combobox,
|
|
1347
1523
|
{
|
|
1348
1524
|
...field,
|
|
@@ -1352,33 +1528,33 @@ var ProductCreateOrganizationSection = ({
|
|
|
1352
1528
|
fetchNextPage: shippingProfiles.fetchNextPage
|
|
1353
1529
|
}
|
|
1354
1530
|
) }),
|
|
1355
|
-
/* @__PURE__ */
|
|
1531
|
+
/* @__PURE__ */ jsx8(Form.ErrorMessage, {})
|
|
1356
1532
|
] });
|
|
1357
1533
|
}
|
|
1358
1534
|
}
|
|
1359
1535
|
)
|
|
1360
1536
|
] }),
|
|
1361
|
-
/* @__PURE__ */
|
|
1537
|
+
/* @__PURE__ */ jsx8("div", { className: "grid grid-cols-1 gap-y-4", children: /* @__PURE__ */ jsx8(
|
|
1362
1538
|
Form.Field,
|
|
1363
1539
|
{
|
|
1364
1540
|
control: form.control,
|
|
1365
1541
|
name: "sales_channels",
|
|
1366
1542
|
render: () => {
|
|
1367
|
-
return /* @__PURE__ */
|
|
1368
|
-
/* @__PURE__ */
|
|
1369
|
-
/* @__PURE__ */
|
|
1370
|
-
/* @__PURE__ */
|
|
1371
|
-
/* @__PURE__ */
|
|
1543
|
+
return /* @__PURE__ */ jsxs7(Form.Item, { children: [
|
|
1544
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex items-start justify-between gap-x-4", children: [
|
|
1545
|
+
/* @__PURE__ */ jsxs7("div", { children: [
|
|
1546
|
+
/* @__PURE__ */ jsx8(Form.Label, { optional: true, children: t("products.fields.sales_channels.label") }),
|
|
1547
|
+
/* @__PURE__ */ jsx8(Form.Hint, { children: /* @__PURE__ */ jsx8(Trans, { i18nKey: "products.fields.sales_channels.hint" }) })
|
|
1372
1548
|
] }),
|
|
1373
|
-
/* @__PURE__ */
|
|
1549
|
+
/* @__PURE__ */ jsx8(StackedFocusModal.Trigger, { asChild: true, children: /* @__PURE__ */ jsx8(Button3, { size: "small", variant: "secondary", type: "button", children: t("actions.add") }) })
|
|
1374
1550
|
] }),
|
|
1375
|
-
/* @__PURE__ */
|
|
1551
|
+
/* @__PURE__ */ jsx8(Form.Control, { className: "mt-0", children: fields.length > 0 && /* @__PURE__ */ jsx8(
|
|
1376
1552
|
ChipGroup,
|
|
1377
1553
|
{
|
|
1378
1554
|
onClearAll: handleClearAllSalesChannels,
|
|
1379
1555
|
onRemove: remove,
|
|
1380
1556
|
className: "py-4",
|
|
1381
|
-
children: fields.map((field, index) => /* @__PURE__ */
|
|
1557
|
+
children: fields.map((field, index) => /* @__PURE__ */ jsx8(ChipGroup.Chip, { index, children: field.name }, field.key))
|
|
1382
1558
|
}
|
|
1383
1559
|
) })
|
|
1384
1560
|
] });
|
|
@@ -1390,7 +1566,7 @@ var ProductCreateOrganizationSection = ({
|
|
|
1390
1566
|
|
|
1391
1567
|
// src/routes/products/product-create/components/product-create-organize-form/components/product-create-sales-channel-stacked-modal/product-create-sales-channel-drawer.tsx
|
|
1392
1568
|
import {
|
|
1393
|
-
Button as
|
|
1569
|
+
Button as Button4,
|
|
1394
1570
|
createDataTableColumnHelper
|
|
1395
1571
|
} from "@medusajs/ui";
|
|
1396
1572
|
import { useEffect, useMemo as useMemo2, useState as useState3 } from "react";
|
|
@@ -1401,7 +1577,7 @@ import { keepPreviousData } from "@tanstack/react-query";
|
|
|
1401
1577
|
var SC_STACKED_MODAL_ID = "sc";
|
|
1402
1578
|
|
|
1403
1579
|
// src/routes/products/product-create/components/product-create-organize-form/components/product-create-sales-channel-stacked-modal/product-create-sales-channel-drawer.tsx
|
|
1404
|
-
import { jsx as
|
|
1580
|
+
import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1405
1581
|
var PAGE_SIZE = 20;
|
|
1406
1582
|
var ProductCreateSalesChannelStackedModal = ({
|
|
1407
1583
|
form
|
|
@@ -1475,9 +1651,9 @@ var ProductCreateSalesChannelStackedModal = ({
|
|
|
1475
1651
|
if (isError) {
|
|
1476
1652
|
throw error;
|
|
1477
1653
|
}
|
|
1478
|
-
return /* @__PURE__ */
|
|
1479
|
-
/* @__PURE__ */
|
|
1480
|
-
/* @__PURE__ */
|
|
1654
|
+
return /* @__PURE__ */ jsxs8(StackedFocusModal.Content, { className: "flex flex-col overflow-hidden", children: [
|
|
1655
|
+
/* @__PURE__ */ jsx9(StackedFocusModal.Header, {}),
|
|
1656
|
+
/* @__PURE__ */ jsx9(StackedFocusModal.Body, { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsx9(
|
|
1481
1657
|
DataTable,
|
|
1482
1658
|
{
|
|
1483
1659
|
data: sales_channels,
|
|
@@ -1496,9 +1672,9 @@ var ProductCreateSalesChannelStackedModal = ({
|
|
|
1496
1672
|
prefix: SC_STACKED_MODAL_ID
|
|
1497
1673
|
}
|
|
1498
1674
|
) }),
|
|
1499
|
-
/* @__PURE__ */
|
|
1500
|
-
/* @__PURE__ */
|
|
1501
|
-
/* @__PURE__ */
|
|
1675
|
+
/* @__PURE__ */ jsx9(StackedFocusModal.Footer, { children: /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-end gap-x-2", children: [
|
|
1676
|
+
/* @__PURE__ */ jsx9(StackedFocusModal.Close, { asChild: true, children: /* @__PURE__ */ jsx9(Button4, { size: "small", variant: "secondary", type: "button", children: t("actions.cancel") }) }),
|
|
1677
|
+
/* @__PURE__ */ jsx9(Button4, { size: "small", onClick: handleAdd, type: "button", children: t("actions.save") })
|
|
1502
1678
|
] }) })
|
|
1503
1679
|
] });
|
|
1504
1680
|
};
|
|
@@ -1509,16 +1685,16 @@ var useColumns = () => {
|
|
|
1509
1685
|
};
|
|
1510
1686
|
|
|
1511
1687
|
// src/routes/products/product-create/components/product-create-organize-form/product-create-organize-form.tsx
|
|
1512
|
-
import { jsx as
|
|
1688
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1513
1689
|
var ProductCreateOrganizeForm = ({ form }) => {
|
|
1514
1690
|
const { getFormFields } = useExtension();
|
|
1515
1691
|
const fields = getFormFields("product", "create", "organize");
|
|
1516
|
-
return /* @__PURE__ */
|
|
1517
|
-
/* @__PURE__ */
|
|
1518
|
-
/* @__PURE__ */
|
|
1519
|
-
/* @__PURE__ */
|
|
1692
|
+
return /* @__PURE__ */ jsxs9(StackedFocusModal, { id: SC_STACKED_MODAL_ID, children: [
|
|
1693
|
+
/* @__PURE__ */ jsx10("div", { className: "flex flex-col items-center p-16", children: /* @__PURE__ */ jsxs9("div", { className: "flex w-full max-w-[720px] flex-col gap-y-8", children: [
|
|
1694
|
+
/* @__PURE__ */ jsx10(ProductCreateOrganizationSection, { form }),
|
|
1695
|
+
/* @__PURE__ */ jsx10(FormExtensionZone, { fields, form })
|
|
1520
1696
|
] }) }),
|
|
1521
|
-
/* @__PURE__ */
|
|
1697
|
+
/* @__PURE__ */ jsx10(ProductCreateSalesChannelStackedModal, { form })
|
|
1522
1698
|
] });
|
|
1523
1699
|
};
|
|
1524
1700
|
|
|
@@ -1526,7 +1702,7 @@ var ProductCreateOrganizeForm = ({ form }) => {
|
|
|
1526
1702
|
import { useMemo as useMemo3 } from "react";
|
|
1527
1703
|
import { useWatch as useWatch3 } from "react-hook-form";
|
|
1528
1704
|
import { useTranslation as useTranslation8 } from "react-i18next";
|
|
1529
|
-
import { jsx as
|
|
1705
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1530
1706
|
var ProductCreateVariantsForm = ({
|
|
1531
1707
|
form,
|
|
1532
1708
|
regions,
|
|
@@ -1563,7 +1739,7 @@ var ProductCreateVariantsForm = ({
|
|
|
1563
1739
|
});
|
|
1564
1740
|
return ret;
|
|
1565
1741
|
}, [variants]);
|
|
1566
|
-
return /* @__PURE__ */
|
|
1742
|
+
return /* @__PURE__ */ jsx11("div", { className: "flex size-full flex-col divide-y overflow-hidden", children: /* @__PURE__ */ jsx11(
|
|
1567
1743
|
DataGrid,
|
|
1568
1744
|
{
|
|
1569
1745
|
columns,
|
|
@@ -1585,9 +1761,9 @@ var useColumns2 = ({
|
|
|
1585
1761
|
() => [
|
|
1586
1762
|
columnHelper2.column({
|
|
1587
1763
|
id: "options",
|
|
1588
|
-
header: () => /* @__PURE__ */
|
|
1764
|
+
header: () => /* @__PURE__ */ jsx11("div", { className: "flex size-full items-center overflow-hidden", children: /* @__PURE__ */ jsx11("span", { className: "truncate", children: options.map((o) => o.title).join(" / ") }) }),
|
|
1589
1765
|
cell: (context) => {
|
|
1590
|
-
return /* @__PURE__ */
|
|
1766
|
+
return /* @__PURE__ */ jsx11(DataGrid.ReadonlyCell, { context, children: options.map((o) => context.row.original.options[o.title]).join(" / ") });
|
|
1591
1767
|
},
|
|
1592
1768
|
disableHiding: true
|
|
1593
1769
|
}),
|
|
@@ -1598,7 +1774,7 @@ var useColumns2 = ({
|
|
|
1598
1774
|
field: (context) => `variants.${context.row.original.originalIndex}.title`,
|
|
1599
1775
|
type: "text",
|
|
1600
1776
|
cell: (context) => {
|
|
1601
|
-
return /* @__PURE__ */
|
|
1777
|
+
return /* @__PURE__ */ jsx11(DataGrid.TextCell, { context });
|
|
1602
1778
|
}
|
|
1603
1779
|
}),
|
|
1604
1780
|
columnHelper2.column({
|
|
@@ -1608,7 +1784,7 @@ var useColumns2 = ({
|
|
|
1608
1784
|
field: (context) => `variants.${context.row.original.originalIndex}.sku`,
|
|
1609
1785
|
type: "text",
|
|
1610
1786
|
cell: (context) => {
|
|
1611
|
-
return /* @__PURE__ */
|
|
1787
|
+
return /* @__PURE__ */ jsx11(DataGrid.TextCell, { context });
|
|
1612
1788
|
}
|
|
1613
1789
|
}),
|
|
1614
1790
|
columnHelper2.column({
|
|
@@ -1618,7 +1794,7 @@ var useColumns2 = ({
|
|
|
1618
1794
|
field: (context) => `variants.${context.row.original.originalIndex}.manage_inventory`,
|
|
1619
1795
|
type: "boolean",
|
|
1620
1796
|
cell: (context) => {
|
|
1621
|
-
return /* @__PURE__ */
|
|
1797
|
+
return /* @__PURE__ */ jsx11(DataGrid.BooleanCell, { context });
|
|
1622
1798
|
}
|
|
1623
1799
|
}),
|
|
1624
1800
|
columnHelper2.column({
|
|
@@ -1628,7 +1804,7 @@ var useColumns2 = ({
|
|
|
1628
1804
|
field: (context) => `variants.${context.row.original.originalIndex}.allow_backorder`,
|
|
1629
1805
|
type: "boolean",
|
|
1630
1806
|
cell: (context) => {
|
|
1631
|
-
return /* @__PURE__ */
|
|
1807
|
+
return /* @__PURE__ */ jsx11(DataGrid.BooleanCell, { context });
|
|
1632
1808
|
}
|
|
1633
1809
|
}),
|
|
1634
1810
|
columnHelper2.column({
|
|
@@ -1638,7 +1814,7 @@ var useColumns2 = ({
|
|
|
1638
1814
|
field: (context) => `variants.${context.row.original.originalIndex}.inventory_kit`,
|
|
1639
1815
|
type: "boolean",
|
|
1640
1816
|
cell: (context) => {
|
|
1641
|
-
return /* @__PURE__ */
|
|
1817
|
+
return /* @__PURE__ */ jsx11(
|
|
1642
1818
|
DataGrid.BooleanCell,
|
|
1643
1819
|
{
|
|
1644
1820
|
context,
|
|
@@ -1665,7 +1841,7 @@ var useColumns2 = ({
|
|
|
1665
1841
|
};
|
|
1666
1842
|
|
|
1667
1843
|
// src/routes/products/product-create/components/product-create-form/product-create-form.tsx
|
|
1668
|
-
import { jsx as
|
|
1844
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1669
1845
|
var SAVE_DRAFT_BUTTON = "save-draft-button";
|
|
1670
1846
|
var ProductCreateForm = ({
|
|
1671
1847
|
defaultChannel,
|
|
@@ -1698,10 +1874,13 @@ var ProductCreateForm = ({
|
|
|
1698
1874
|
if (!regions?.length) {
|
|
1699
1875
|
return {};
|
|
1700
1876
|
}
|
|
1701
|
-
return regions.reduce(
|
|
1702
|
-
acc
|
|
1703
|
-
|
|
1704
|
-
|
|
1877
|
+
return regions.reduce(
|
|
1878
|
+
(acc, reg) => {
|
|
1879
|
+
acc[reg.id] = reg.currency_code;
|
|
1880
|
+
return acc;
|
|
1881
|
+
},
|
|
1882
|
+
{}
|
|
1883
|
+
);
|
|
1705
1884
|
}, [regions]);
|
|
1706
1885
|
const watchedVariants = useWatch4({
|
|
1707
1886
|
control: form.control,
|
|
@@ -1803,7 +1982,7 @@ var ProductCreateForm = ({
|
|
|
1803
1982
|
}
|
|
1804
1983
|
setTabState({ ...currentState });
|
|
1805
1984
|
}, [tab]);
|
|
1806
|
-
return /* @__PURE__ */
|
|
1985
|
+
return /* @__PURE__ */ jsx12(RouteFocusModal.Form, { form, children: /* @__PURE__ */ jsxs10(
|
|
1807
1986
|
KeyboundForm,
|
|
1808
1987
|
{
|
|
1809
1988
|
onKeyDown: (e) => {
|
|
@@ -1826,7 +2005,7 @@ var ProductCreateForm = ({
|
|
|
1826
2005
|
onSubmit: handleSubmit,
|
|
1827
2006
|
className: "flex h-full flex-col",
|
|
1828
2007
|
children: [
|
|
1829
|
-
/* @__PURE__ */
|
|
2008
|
+
/* @__PURE__ */ jsxs10(
|
|
1830
2009
|
ProgressTabs,
|
|
1831
2010
|
{
|
|
1832
2011
|
dir: direction,
|
|
@@ -1840,8 +2019,8 @@ var ProductCreateForm = ({
|
|
|
1840
2019
|
},
|
|
1841
2020
|
className: "flex h-full flex-col overflow-hidden",
|
|
1842
2021
|
children: [
|
|
1843
|
-
/* @__PURE__ */
|
|
1844
|
-
/* @__PURE__ */
|
|
2022
|
+
/* @__PURE__ */ jsx12(RouteFocusModal.Header, { children: /* @__PURE__ */ jsx12("div", { className: "-my-2 w-full border-l", children: /* @__PURE__ */ jsxs10(ProgressTabs.List, { className: "justify-start-start flex w-full items-center", children: [
|
|
2023
|
+
/* @__PURE__ */ jsx12(
|
|
1845
2024
|
ProgressTabs.Trigger,
|
|
1846
2025
|
{
|
|
1847
2026
|
status: tabState["details" /* DETAILS */],
|
|
@@ -1850,7 +2029,7 @@ var ProductCreateForm = ({
|
|
|
1850
2029
|
children: t("products.create.tabs.details")
|
|
1851
2030
|
}
|
|
1852
2031
|
),
|
|
1853
|
-
/* @__PURE__ */
|
|
2032
|
+
/* @__PURE__ */ jsx12(
|
|
1854
2033
|
ProgressTabs.Trigger,
|
|
1855
2034
|
{
|
|
1856
2035
|
status: tabState["organize" /* ORGANIZE */],
|
|
@@ -1859,7 +2038,7 @@ var ProductCreateForm = ({
|
|
|
1859
2038
|
children: t("products.create.tabs.organize")
|
|
1860
2039
|
}
|
|
1861
2040
|
),
|
|
1862
|
-
/* @__PURE__ */
|
|
2041
|
+
/* @__PURE__ */ jsx12(
|
|
1863
2042
|
ProgressTabs.Trigger,
|
|
1864
2043
|
{
|
|
1865
2044
|
status: tabState["variants" /* VARIANTS */],
|
|
@@ -1868,7 +2047,7 @@ var ProductCreateForm = ({
|
|
|
1868
2047
|
children: t("products.create.tabs.variants")
|
|
1869
2048
|
}
|
|
1870
2049
|
),
|
|
1871
|
-
showInventoryTab && /* @__PURE__ */
|
|
2050
|
+
showInventoryTab && /* @__PURE__ */ jsx12(
|
|
1872
2051
|
ProgressTabs.Trigger,
|
|
1873
2052
|
{
|
|
1874
2053
|
status: tabState["inventory" /* INVENTORY */],
|
|
@@ -1878,29 +2057,29 @@ var ProductCreateForm = ({
|
|
|
1878
2057
|
}
|
|
1879
2058
|
)
|
|
1880
2059
|
] }) }) }),
|
|
1881
|
-
/* @__PURE__ */
|
|
1882
|
-
/* @__PURE__ */
|
|
2060
|
+
/* @__PURE__ */ jsxs10(RouteFocusModal.Body, { className: "size-full overflow-hidden", children: [
|
|
2061
|
+
/* @__PURE__ */ jsx12(
|
|
1883
2062
|
ProgressTabs.Content,
|
|
1884
2063
|
{
|
|
1885
2064
|
className: "size-full overflow-y-auto",
|
|
1886
2065
|
value: "details" /* DETAILS */,
|
|
1887
|
-
children: /* @__PURE__ */
|
|
2066
|
+
children: /* @__PURE__ */ jsx12(ProductCreateDetailsForm, { form })
|
|
1888
2067
|
}
|
|
1889
2068
|
),
|
|
1890
|
-
/* @__PURE__ */
|
|
2069
|
+
/* @__PURE__ */ jsx12(
|
|
1891
2070
|
ProgressTabs.Content,
|
|
1892
2071
|
{
|
|
1893
2072
|
className: "size-full overflow-y-auto",
|
|
1894
2073
|
value: "organize" /* ORGANIZE */,
|
|
1895
|
-
children: /* @__PURE__ */
|
|
2074
|
+
children: /* @__PURE__ */ jsx12(ProductCreateOrganizeForm, { form })
|
|
1896
2075
|
}
|
|
1897
2076
|
),
|
|
1898
|
-
/* @__PURE__ */
|
|
2077
|
+
/* @__PURE__ */ jsx12(
|
|
1899
2078
|
ProgressTabs.Content,
|
|
1900
2079
|
{
|
|
1901
2080
|
className: "size-full overflow-y-auto",
|
|
1902
2081
|
value: "variants" /* VARIANTS */,
|
|
1903
|
-
children: /* @__PURE__ */
|
|
2082
|
+
children: /* @__PURE__ */ jsx12(
|
|
1904
2083
|
ProductCreateVariantsForm,
|
|
1905
2084
|
{
|
|
1906
2085
|
form,
|
|
@@ -1911,22 +2090,22 @@ var ProductCreateForm = ({
|
|
|
1911
2090
|
)
|
|
1912
2091
|
}
|
|
1913
2092
|
),
|
|
1914
|
-
showInventoryTab && /* @__PURE__ */
|
|
2093
|
+
showInventoryTab && /* @__PURE__ */ jsx12(
|
|
1915
2094
|
ProgressTabs.Content,
|
|
1916
2095
|
{
|
|
1917
2096
|
className: "size-full overflow-y-auto",
|
|
1918
2097
|
value: "inventory" /* INVENTORY */,
|
|
1919
|
-
children: /* @__PURE__ */
|
|
2098
|
+
children: /* @__PURE__ */ jsx12(ProductCreateInventoryKitForm, { form })
|
|
1920
2099
|
}
|
|
1921
2100
|
)
|
|
1922
2101
|
] })
|
|
1923
2102
|
]
|
|
1924
2103
|
}
|
|
1925
2104
|
),
|
|
1926
|
-
/* @__PURE__ */
|
|
1927
|
-
/* @__PURE__ */
|
|
1928
|
-
/* @__PURE__ */
|
|
1929
|
-
|
|
2105
|
+
/* @__PURE__ */ jsx12(RouteFocusModal.Footer, { children: /* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-end gap-x-2", children: [
|
|
2106
|
+
/* @__PURE__ */ jsx12(RouteFocusModal.Close, { asChild: true, children: /* @__PURE__ */ jsx12(Button5, { variant: "secondary", size: "small", children: t("actions.cancel") }) }),
|
|
2107
|
+
/* @__PURE__ */ jsx12(
|
|
2108
|
+
Button5,
|
|
1930
2109
|
{
|
|
1931
2110
|
"data-name": SAVE_DRAFT_BUTTON,
|
|
1932
2111
|
size: "small",
|
|
@@ -1936,7 +2115,7 @@ var ProductCreateForm = ({
|
|
|
1936
2115
|
children: t("actions.saveAsDraft")
|
|
1937
2116
|
}
|
|
1938
2117
|
),
|
|
1939
|
-
/* @__PURE__ */
|
|
2118
|
+
/* @__PURE__ */ jsx12(
|
|
1940
2119
|
PrimaryButton,
|
|
1941
2120
|
{
|
|
1942
2121
|
tab,
|
|
@@ -1958,8 +2137,8 @@ var PrimaryButton = ({
|
|
|
1958
2137
|
}) => {
|
|
1959
2138
|
const { t } = useTranslation9();
|
|
1960
2139
|
if (tab === "variants" /* VARIANTS */ && !showInventoryTab || tab === "inventory" /* INVENTORY */ && showInventoryTab) {
|
|
1961
|
-
return /* @__PURE__ */
|
|
1962
|
-
|
|
2140
|
+
return /* @__PURE__ */ jsx12(
|
|
2141
|
+
Button5,
|
|
1963
2142
|
{
|
|
1964
2143
|
"data-name": "publish-button",
|
|
1965
2144
|
type: "submit",
|
|
@@ -1971,8 +2150,8 @@ var PrimaryButton = ({
|
|
|
1971
2150
|
"submit-button"
|
|
1972
2151
|
);
|
|
1973
2152
|
}
|
|
1974
|
-
return /* @__PURE__ */
|
|
1975
|
-
|
|
2153
|
+
return /* @__PURE__ */ jsx12(
|
|
2154
|
+
Button5,
|
|
1976
2155
|
{
|
|
1977
2156
|
type: "button",
|
|
1978
2157
|
variant: "primary",
|
|
@@ -1985,7 +2164,7 @@ var PrimaryButton = ({
|
|
|
1985
2164
|
};
|
|
1986
2165
|
|
|
1987
2166
|
// src/routes/products/product-create/product-create.tsx
|
|
1988
|
-
import { jsx as
|
|
2167
|
+
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1989
2168
|
var ProductCreate = () => {
|
|
1990
2169
|
const { t } = useTranslation10();
|
|
1991
2170
|
const {
|
|
@@ -2031,10 +2210,10 @@ var ProductCreate = () => {
|
|
|
2031
2210
|
if (isPricePreferencesError) {
|
|
2032
2211
|
throw pricePreferencesError;
|
|
2033
2212
|
}
|
|
2034
|
-
return /* @__PURE__ */
|
|
2035
|
-
/* @__PURE__ */
|
|
2036
|
-
/* @__PURE__ */
|
|
2037
|
-
ready && /* @__PURE__ */
|
|
2213
|
+
return /* @__PURE__ */ jsxs11(RouteFocusModal, { children: [
|
|
2214
|
+
/* @__PURE__ */ jsx13(RouteFocusModal.Title, { asChild: true, children: /* @__PURE__ */ jsx13("span", { className: "sr-only", children: t("products.create.title") }) }),
|
|
2215
|
+
/* @__PURE__ */ jsx13(RouteFocusModal.Description, { asChild: true, children: /* @__PURE__ */ jsx13("span", { className: "sr-only", children: t("products.create.description") }) }),
|
|
2216
|
+
ready && /* @__PURE__ */ jsx13(
|
|
2038
2217
|
ProductCreateForm,
|
|
2039
2218
|
{
|
|
2040
2219
|
defaultChannel: sales_channel,
|