@mercurjs/admin 2.0.0-canary.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/dist/add-campaign-promotions-CQDZBX3V.js +266 -0
  2. package/dist/adjust-inventory-3GPDYI3V.js +266 -0
  3. package/dist/api-key-management-create-GUNLFGNT.js +283 -0
  4. package/dist/api-key-management-detail-4IL3BQJW.js +87 -0
  5. package/dist/api-key-management-edit-SIXXFLNP.js +107 -0
  6. package/dist/api-key-management-list-XLRD4ASE.js +34 -0
  7. package/dist/api-key-management-sales-channels-GCUMV6YA.js +202 -0
  8. package/dist/campaign-budget-edit-GAP5KUI3.js +148 -0
  9. package/dist/campaign-configuration-LTHPZGYC.js +155 -0
  10. package/dist/campaign-create-TRNE6L26.js +30 -0
  11. package/dist/campaign-detail-GYMMDRUV.js +106 -0
  12. package/dist/campaign-edit-CRQCVEFT.js +207 -0
  13. package/dist/campaign-list-WEKSY62X.js +32 -0
  14. package/dist/categories-metadata-GESU3DEU.js +87 -0
  15. package/dist/category-create-PSAN6SA2.js +23 -0
  16. package/dist/category-detail-67ZTYE5M.js +106 -0
  17. package/dist/category-edit-QYKE3GAC.js +221 -0
  18. package/dist/category-list-ZRDWHPEI.js +33 -0
  19. package/dist/category-organize-D26G234L.js +112 -0
  20. package/dist/category-products-XMIZ2KRR.js +285 -0
  21. package/dist/chunk-25DQRKFS.js +102 -0
  22. package/dist/chunk-25LYVP3C.js +37 -0
  23. package/dist/chunk-26OOAKQ6.js +18 -0
  24. package/dist/chunk-2TDFXWGC.js +742 -0
  25. package/dist/chunk-2Y3WMGN6.js +39 -0
  26. package/dist/chunk-2ZFELO2L.js +13 -0
  27. package/dist/chunk-33XUAKRP.js +6 -0
  28. package/dist/chunk-35NDMIYZ.js +8 -0
  29. package/dist/chunk-3B6MTW5G.js +64 -0
  30. package/dist/chunk-3CKTAFTR.js +143 -0
  31. package/dist/chunk-3EF54XFY.js +64 -0
  32. package/dist/chunk-3GCRM6UM.js +1155 -0
  33. package/dist/chunk-3KOTDGC2.js +18 -0
  34. package/dist/chunk-3QSRE5LS.js +161 -0
  35. package/dist/chunk-3XPXUIK3.js +34 -0
  36. package/dist/chunk-4F5GP7J7.js +45 -0
  37. package/dist/chunk-4GPAS5GW.js +36 -0
  38. package/dist/chunk-4JYZU65L.js +2144 -0
  39. package/dist/chunk-4ZIQGDNH.js +184 -0
  40. package/dist/chunk-54EPH67T.js +34 -0
  41. package/dist/chunk-54RTJBYO.js +153 -0
  42. package/dist/chunk-54TMLQH3.js +9 -0
  43. package/dist/chunk-5A4JNOK3.js +109 -0
  44. package/dist/chunk-5HZT54X7.js +374 -0
  45. package/dist/chunk-5LI2P5VT.js +433 -0
  46. package/dist/chunk-5N24A4CX.js +296 -0
  47. package/dist/chunk-64B6RWZI.js +159 -0
  48. package/dist/chunk-64XMEZ5A.js +50 -0
  49. package/dist/chunk-6ERRELWD.js +3892 -0
  50. package/dist/chunk-6HJINLUB.js +94 -0
  51. package/dist/chunk-6IJMSVC6.js +16 -0
  52. package/dist/chunk-6S72GJRI.js +142 -0
  53. package/dist/chunk-77R2QD4O.js +337 -0
  54. package/dist/chunk-7AV5EJJ5.js +29 -0
  55. package/dist/chunk-7H2I3TA2.js +420 -0
  56. package/dist/chunk-7ITJ4725.js +185 -0
  57. package/dist/chunk-7JZMCLD3.js +165 -0
  58. package/dist/chunk-7KMDLRLG.js +248 -0
  59. package/dist/chunk-7NNA33IY.js +600 -0
  60. package/dist/chunk-7OSCNHHQ.js +69 -0
  61. package/dist/chunk-7RPRNVBS.js +45 -0
  62. package/dist/chunk-7SQW55FI.js +470 -0
  63. package/dist/chunk-7SVLKK6Q.js +31 -0
  64. package/dist/chunk-A2F5MDPU.js +79 -0
  65. package/dist/chunk-AEFDAU3Y.js +110 -0
  66. package/dist/chunk-AFQS6E4N.js +61 -0
  67. package/dist/chunk-AJQ6EVLE.js +501 -0
  68. package/dist/chunk-AW77UWCZ.js +363 -0
  69. package/dist/chunk-AYVH6Q5O.js +31 -0
  70. package/dist/chunk-AZVAL5E5.js +303 -0
  71. package/dist/chunk-BBZ6YISG.js +371 -0
  72. package/dist/chunk-BDGZ4EQO.js +86 -0
  73. package/dist/chunk-BLHFWBK3.js +199 -0
  74. package/dist/chunk-BPTVQM72.js +9496 -0
  75. package/dist/chunk-BYKTBURG.js +250 -0
  76. package/dist/chunk-C6OVKRMH.js +294 -0
  77. package/dist/chunk-C6SUTRP2.js +13 -0
  78. package/dist/chunk-CARSKIPW.js +87 -0
  79. package/dist/chunk-CJQRZEZU.js +614 -0
  80. package/dist/chunk-CMHI2RPL.js +20 -0
  81. package/dist/chunk-CP5IL4P6.js +98 -0
  82. package/dist/chunk-DB6ANJBO.js +35 -0
  83. package/dist/chunk-DBYUB2YI.js +174 -0
  84. package/dist/chunk-DPH3FG5H.js +528 -0
  85. package/dist/chunk-DY3XQPHC.js +31 -0
  86. package/dist/chunk-EEOEIXDA.js +112 -0
  87. package/dist/chunk-EF47ASFU.js +39 -0
  88. package/dist/chunk-EJY35WBK.js +60 -0
  89. package/dist/chunk-EOZUAYQL.js +6 -0
  90. package/dist/chunk-EWFOFSF7.js +78 -0
  91. package/dist/chunk-FD7OJEGQ.js +345 -0
  92. package/dist/chunk-FI474ADU.js +0 -0
  93. package/dist/chunk-FIVW6L2I.js +269 -0
  94. package/dist/chunk-FIYO3KTR.js +710 -0
  95. package/dist/chunk-FMFVTERD.js +0 -0
  96. package/dist/chunk-FQERBIVS.js +0 -0
  97. package/dist/chunk-FWPGOIFA.js +22 -0
  98. package/dist/chunk-G2N27VIE.js +164 -0
  99. package/dist/chunk-G4MIA23Y.js +100 -0
  100. package/dist/chunk-G5OVX555.js +26 -0
  101. package/dist/chunk-GCEOEV6P.js +241 -0
  102. package/dist/chunk-GR6JUIRU.js +32 -0
  103. package/dist/chunk-GVXAFQDF.js +170 -0
  104. package/dist/chunk-GYRTURN7.js +29 -0
  105. package/dist/chunk-HC25LNX7.js +45 -0
  106. package/dist/chunk-HDUVTTOW.js +396 -0
  107. package/dist/chunk-HGHJRKUC.js +223 -0
  108. package/dist/chunk-HINXQTCW.js +97 -0
  109. package/dist/chunk-HLL6GLZO.js +109 -0
  110. package/dist/chunk-HPQG3PEA.js +67 -0
  111. package/dist/chunk-I5LLMPI2.js +108 -0
  112. package/dist/chunk-I6GNV6QA.js +175 -0
  113. package/dist/chunk-IGTRIAUC.js +84 -0
  114. package/dist/chunk-INNFZYX2.js +183 -0
  115. package/dist/chunk-IQPN4PZJ.js +749 -0
  116. package/dist/chunk-IUB4C2WJ.js +420 -0
  117. package/dist/chunk-J54BZXZX.js +83 -0
  118. package/dist/chunk-J5SOBS7K.js +298 -0
  119. package/dist/chunk-JAJMMPOF.js +1260 -0
  120. package/dist/chunk-JHIMVLB2.js +42 -0
  121. package/dist/chunk-JI7HMGMO.js +79 -0
  122. package/dist/chunk-JJ4XUGHZ.js +312 -0
  123. package/dist/chunk-JOX3ZSRT.js +50 -0
  124. package/dist/chunk-JQV7CXEC.js +37 -0
  125. package/dist/chunk-JRTZWK77.js +1764 -0
  126. package/dist/chunk-K6RZE3F7.js +39 -0
  127. package/dist/chunk-KAZ5BYTQ.js +132 -0
  128. package/dist/chunk-KBYZLKI4.js +1093 -0
  129. package/dist/chunk-KHXRL3BH.js +85 -0
  130. package/dist/chunk-KWW4RDRS.js +199 -0
  131. package/dist/chunk-L74EVHCU.js +176 -0
  132. package/dist/chunk-L7DIEO5B.js +33 -0
  133. package/dist/chunk-LAVHRER2.js +17 -0
  134. package/dist/chunk-LFKTHNWI.js +83 -0
  135. package/dist/chunk-LGVVX4I6.js +422 -0
  136. package/dist/chunk-LQAAVRET.js +88 -0
  137. package/dist/chunk-LTBX54CI.js +11 -0
  138. package/dist/chunk-LXSBG6LK.js +18 -0
  139. package/dist/chunk-LXZXXOJ3.js +64 -0
  140. package/dist/chunk-LZO7MWH7.js +102 -0
  141. package/dist/chunk-MAEP2UCK.js +110 -0
  142. package/dist/chunk-MG4GKUJW.js +31 -0
  143. package/dist/chunk-MMDRMNPE.js +424 -0
  144. package/dist/chunk-MO7TNIVQ.js +23 -0
  145. package/dist/chunk-MZCJZRR6.js +381 -0
  146. package/dist/chunk-N2TQXB44.js +1280 -0
  147. package/dist/chunk-N3WRPCPT.js +94 -0
  148. package/dist/chunk-N5IUYCUZ.js +31 -0
  149. package/dist/chunk-N5XVXV47.js +530 -0
  150. package/dist/chunk-NBMM2TZK.js +33 -0
  151. package/dist/chunk-NCMUZ6BQ.js +0 -0
  152. package/dist/chunk-NCYTM57J.js +160 -0
  153. package/dist/chunk-NHGR2OFE.js +292 -0
  154. package/dist/chunk-NOWUEJ74.js +44 -0
  155. package/dist/chunk-NQ2RDSI3.js +43 -0
  156. package/dist/chunk-NXDFDEKP.js +0 -0
  157. package/dist/chunk-NYWESQ6J.js +86705 -0
  158. package/dist/chunk-NZN7PFPB.js +169 -0
  159. package/dist/chunk-O4LSCHTC.js +245 -0
  160. package/dist/chunk-O5VKW5FL.js +41 -0
  161. package/dist/chunk-O5ZOACVV.js +593 -0
  162. package/dist/chunk-OEDISQ2O.js +98 -0
  163. package/dist/chunk-OJI3SRZ3.js +373 -0
  164. package/dist/chunk-OSI3M4M2.js +473 -0
  165. package/dist/chunk-OT5X3VOQ.js +42 -0
  166. package/dist/chunk-OZMCKYJL.js +204 -0
  167. package/dist/chunk-P52JGPUG.js +135 -0
  168. package/dist/chunk-PHOCVOZ5.js +9 -0
  169. package/dist/chunk-PJTR2MBS.js +459 -0
  170. package/dist/chunk-PUQSQBZW.js +49 -0
  171. package/dist/chunk-PVZBDWLK.js +41 -0
  172. package/dist/chunk-PWMB7ITO.js +344 -0
  173. package/dist/chunk-PXYDR7WQ.js +48 -0
  174. package/dist/chunk-PYF5EER5.js +32 -0
  175. package/dist/chunk-Q6GUA5VE.js +92 -0
  176. package/dist/chunk-QDIPFZLV.js +113 -0
  177. package/dist/chunk-QDPLZDMX.js +17 -0
  178. package/dist/chunk-QG6PLWNH.js +106 -0
  179. package/dist/chunk-QLTN2DIY.js +119 -0
  180. package/dist/chunk-QSGR43JM.js +30 -0
  181. package/dist/chunk-QUNCQMFH.js +219 -0
  182. package/dist/chunk-QUTZUW55.js +163 -0
  183. package/dist/chunk-QVLL4MKH.js +245 -0
  184. package/dist/chunk-R325CPYC.js +88 -0
  185. package/dist/chunk-R4O667NT.js +80 -0
  186. package/dist/chunk-R55Q5LAH.js +47 -0
  187. package/dist/chunk-RF7BE47J.js +685 -0
  188. package/dist/chunk-RHKRREUU.js +15 -0
  189. package/dist/chunk-RHYS2TFP.js +266 -0
  190. package/dist/chunk-RK5N3XIX.js +56 -0
  191. package/dist/chunk-RQQ53CQJ.js +87 -0
  192. package/dist/chunk-RSBZREKG.js +144 -0
  193. package/dist/chunk-RXM4B6HR.js +8 -0
  194. package/dist/chunk-S2WEYEQR.js +14 -0
  195. package/dist/chunk-S3L6CIN2.js +459 -0
  196. package/dist/chunk-S4SVK5DE.js +39 -0
  197. package/dist/chunk-SBH4E5NY.js +129 -0
  198. package/dist/chunk-SDNGZDNK.js +170 -0
  199. package/dist/chunk-SJQ4QAFK.js +471 -0
  200. package/dist/chunk-SMQT3ZNO.js +8 -0
  201. package/dist/chunk-STSW4GDV.js +325 -0
  202. package/dist/chunk-SWL7ZCP3.js +11 -0
  203. package/dist/chunk-THHRRYRS.js +16 -0
  204. package/dist/chunk-THYWJQI4.js +635 -0
  205. package/dist/chunk-TK3XKN2P.js +357 -0
  206. package/dist/chunk-TKEAOWBZ.js +178 -0
  207. package/dist/chunk-TKFMOTJK.js +297 -0
  208. package/dist/chunk-TKGWSUEI.js +0 -0
  209. package/dist/chunk-TKSKCH3S.js +199 -0
  210. package/dist/chunk-TLE6YHGH.js +26 -0
  211. package/dist/chunk-TN4TIT7O.js +116 -0
  212. package/dist/chunk-TOUMBTYI.js +41 -0
  213. package/dist/chunk-TP7M43SI.js +189 -0
  214. package/dist/chunk-TUJIAA5O.js +101 -0
  215. package/dist/chunk-TZSOL34K.js +106 -0
  216. package/dist/chunk-U2EI2ZLM.js +32 -0
  217. package/dist/chunk-U2L77ZDR.js +17 -0
  218. package/dist/chunk-U2ZFCAPX.js +34 -0
  219. package/dist/chunk-U3OWJE7V.js +4113 -0
  220. package/dist/chunk-U5MJIHLY.js +87 -0
  221. package/dist/chunk-U5QDMLTR.js +294 -0
  222. package/dist/chunk-UI2BJVP5.js +170 -0
  223. package/dist/chunk-ULJ3OMWU.js +467 -0
  224. package/dist/chunk-UM7ZR3VU.js +14 -0
  225. package/dist/chunk-UQITHKTH.js +342 -0
  226. package/dist/chunk-UXD3VNBO.js +53 -0
  227. package/dist/chunk-UZWFZMOX.js +40 -0
  228. package/dist/chunk-V5J73NPW.js +117 -0
  229. package/dist/chunk-V6LO4BXB.js +460 -0
  230. package/dist/chunk-V74Y5NIV.js +49 -0
  231. package/dist/chunk-V7Y7WBGF.js +112 -0
  232. package/dist/chunk-VEW7PQ3X.js +209 -0
  233. package/dist/chunk-VHCDSNXF.js +89 -0
  234. package/dist/chunk-VKOE5J66.js +31 -0
  235. package/dist/chunk-VOHEQ7B5.js +31 -0
  236. package/dist/chunk-VRGXUUPH.js +772 -0
  237. package/dist/chunk-VVWB3GIK.js +70 -0
  238. package/dist/chunk-VW56KWO2.js +9 -0
  239. package/dist/chunk-VXW3BCN2.js +171 -0
  240. package/dist/chunk-VZEMURY7.js +35 -0
  241. package/dist/chunk-W6Y3PPU5.js +73 -0
  242. package/dist/chunk-WBNGBRBK.js +482 -0
  243. package/dist/chunk-WCEMRNW4.js +6 -0
  244. package/dist/chunk-WEVK4TBV.js +257 -0
  245. package/dist/chunk-WIYFXWRI.js +30 -0
  246. package/dist/chunk-WMA3WTCM.js +117 -0
  247. package/dist/chunk-WW7VLWKJ.js +360 -0
  248. package/dist/chunk-X6HEEFUW.js +1104 -0
  249. package/dist/chunk-XBFWFGZH.js +249 -0
  250. package/dist/chunk-XFKRBJLK.js +104 -0
  251. package/dist/chunk-XFR5JLNF.js +44 -0
  252. package/dist/chunk-XIZLPYEE.js +261 -0
  253. package/dist/chunk-XQNVC4Q7.js +212 -0
  254. package/dist/chunk-XR2UEF6U.js +433 -0
  255. package/dist/chunk-XSEF6KRY.js +335 -0
  256. package/dist/chunk-XSX255FK.js +12 -0
  257. package/dist/chunk-Y2M536WR.js +67 -0
  258. package/dist/chunk-Y456KVIN.js +116 -0
  259. package/dist/chunk-Y7QKP6QU.js +35 -0
  260. package/dist/chunk-YAMNPEPW.js +345 -0
  261. package/dist/chunk-YBZWO4ZV.js +57 -0
  262. package/dist/chunk-YDAJI7WF.js +389 -0
  263. package/dist/chunk-YMKZS2HK.js +82 -0
  264. package/dist/chunk-YQYGAFCS.js +119 -0
  265. package/dist/chunk-YVCBMOJG.js +50 -0
  266. package/dist/chunk-YWWUOGJA.js +62 -0
  267. package/dist/chunk-YXFG3M2D.js +792 -0
  268. package/dist/chunk-ZA2KFUFR.js +19 -0
  269. package/dist/chunk-ZGEMSYN7.js +61 -0
  270. package/dist/chunk-ZJO4DDOP.js +454 -0
  271. package/dist/chunk-ZNA2XOGX.js +675 -0
  272. package/dist/chunk-ZQZHFMD7.js +19 -0
  273. package/dist/collection-add-products-4TTEF6QV.js +288 -0
  274. package/dist/collection-create-SD4GKHFC.js +134 -0
  275. package/dist/collection-detail-64YVMLBU.js +97 -0
  276. package/dist/collection-edit-Z474HXCJ.js +122 -0
  277. package/dist/collection-list-OTSGOEBC.js +79 -0
  278. package/dist/collection-metadata-FFHA6CQ3.js +84 -0
  279. package/dist/commission-rate-create-7BBUGS2I.js +779 -0
  280. package/dist/commission-rate-detail-FORKXXJY.js +83 -0
  281. package/dist/commission-rate-edit-SAX2DAND.js +762 -0
  282. package/dist/commission-rate-list-EESTCCRP.js +28 -0
  283. package/dist/constants-CAwtRicB.d.ts +42 -0
  284. package/dist/customer-create-WA4GYGVD.js +184 -0
  285. package/dist/customer-create-address-YBI4KWWH.js +300 -0
  286. package/dist/customer-detail-SDE4TDZD.js +107 -0
  287. package/dist/customer-edit-TFR6PVJJ.js +193 -0
  288. package/dist/customer-group-add-customers-77BVWLTN.js +247 -0
  289. package/dist/customer-group-create-32UIUO46.js +114 -0
  290. package/dist/customer-group-detail-QRY6BHGI.js +106 -0
  291. package/dist/customer-group-edit-HFL7LZZZ.js +109 -0
  292. package/dist/customer-group-list-Q3T72VH2.js +57 -0
  293. package/dist/customer-group-metadata-FXI3J6DB.js +85 -0
  294. package/dist/customer-list-CXTUBLCK.js +33 -0
  295. package/dist/customer-metadata-BV4CHHWI.js +85 -0
  296. package/dist/customers-add-customer-group-SUE2KKJR.js +312 -0
  297. package/dist/edit-inventory-item-DDRUGVSK.js +156 -0
  298. package/dist/edit-inventory-item-attributes-MDL7FSLR.js +327 -0
  299. package/dist/edit-reservation-JWABBNJ6.js +247 -0
  300. package/dist/edit-rules-ECNFIPUC.js +320 -0
  301. package/dist/home-I3OILW5Z.js +16 -0
  302. package/dist/index.css +6 -0
  303. package/dist/index.d.ts +255 -0
  304. package/dist/index.js +4989 -0
  305. package/dist/inventory-create-S6CB4JYN.js +56 -0
  306. package/dist/inventory-detail-OIKNOS5A.js +107 -0
  307. package/dist/inventory-list-XSHWCPO4.js +30 -0
  308. package/dist/inventory-metadata-MHGDNLXT.js +87 -0
  309. package/dist/inventory-stock-JG5CZWZA.js +292 -0
  310. package/dist/invite-25CGHT4W.js +373 -0
  311. package/dist/location-create-G3MNWQWB.js +239 -0
  312. package/dist/location-detail-5CGAZMBR.js +100 -0
  313. package/dist/location-edit-UI6AWCZS.js +254 -0
  314. package/dist/location-fulfillment-providers-BA2VMZHX.js +293 -0
  315. package/dist/location-list-656DEW7L.js +53 -0
  316. package/dist/location-sales-channels-WXBK4EJO.js +216 -0
  317. package/dist/location-service-zone-create-647O67PU.js +174 -0
  318. package/dist/location-service-zone-edit-BUY6HNZM.js +135 -0
  319. package/dist/location-service-zone-manage-areas-X2ZGRHHA.js +155 -0
  320. package/dist/location-service-zone-shipping-option-create-IASFWJ2Z.js +57 -0
  321. package/dist/location-service-zone-shipping-option-edit-IJDU5PTW.js +363 -0
  322. package/dist/location-service-zone-shipping-option-pricing-3T7HLKJC.js +363 -0
  323. package/dist/login-WU5VB5LW.js +264 -0
  324. package/dist/manage-locations-IJIPCYAY.js +250 -0
  325. package/dist/marketplace-add-currencies-RXLEQ6MZ.js +305 -0
  326. package/dist/marketplace-detail-23KSAJVI.js +75 -0
  327. package/dist/marketplace-edit-XPIEDQYD.js +247 -0
  328. package/dist/marketplace-metadata-5GEWGH2M.js +89 -0
  329. package/dist/no-match-JLVLPCRH.js +33 -0
  330. package/dist/order-allocate-items-GYGER65Z.js +559 -0
  331. package/dist/order-create-claim-RNUFU2MP.js +2207 -0
  332. package/dist/order-create-edit-DLH76B2Q.js +936 -0
  333. package/dist/order-create-exchange-FA27FZU7.js +2194 -0
  334. package/dist/order-create-fulfillment-4F5JAUOX.js +625 -0
  335. package/dist/order-create-refund-3LCTQXFD.js +407 -0
  336. package/dist/order-create-return-EO2C5RAA.js +1293 -0
  337. package/dist/order-create-shipment-PIQ43ZSG.js +212 -0
  338. package/dist/order-detail-2U26JNU2.js +123 -0
  339. package/dist/order-edit-billing-address-PRXCLUNR.js +404 -0
  340. package/dist/order-edit-email-GVKVQESG.js +175 -0
  341. package/dist/order-edit-shipping-address-UDNHXO2V.js +401 -0
  342. package/dist/order-list-U2HL7VBX.js +49 -0
  343. package/dist/order-metadata-HPXIR6KI.js +86 -0
  344. package/dist/order-receive-return-FMM74XYM.js +553 -0
  345. package/dist/order-request-transfer-SI5PSOKA.js +575 -0
  346. package/dist/pages/index.d.ts +3165 -0
  347. package/dist/pages/index.js +447 -0
  348. package/dist/payout-detail-L4VYAP53.js +52 -0
  349. package/dist/payout-list-4S6MAU4R.js +30 -0
  350. package/dist/price-list-configuration-F2BZC6QX.js +357 -0
  351. package/dist/price-list-create-ZJTDGJSS.js +76 -0
  352. package/dist/price-list-detail-IUJXNM6Y.js +103 -0
  353. package/dist/price-list-edit-CERYYMC5.js +228 -0
  354. package/dist/price-list-list-RBD2MEZ5.js +36 -0
  355. package/dist/price-list-prices-add-AJJ76VMY.js +71 -0
  356. package/dist/price-list-prices-edit-2NYN6WVJ.js +332 -0
  357. package/dist/product-attributes-EUDG25XA.js +362 -0
  358. package/dist/product-create-XA7UOISW.js +68 -0
  359. package/dist/product-create-option-BG2ZKSFN.js +148 -0
  360. package/dist/product-create-variant-4Z6HSHRE.js +54 -0
  361. package/dist/product-detail-F67SLUIA.js +103 -0
  362. package/dist/product-edit-HFWSBQQI.js +401 -0
  363. package/dist/product-edit-option-Y46SNVHN.js +156 -0
  364. package/dist/product-export-ABNA6ZTY.js +132 -0
  365. package/dist/product-import-SQSXBPK5.js +265 -0
  366. package/dist/product-list-NWHRQHVJ.js +86 -0
  367. package/dist/product-media-YIQCVDCC.js +883 -0
  368. package/dist/product-metadata-2Z5DIXJH.js +87 -0
  369. package/dist/product-organization-L666C2EQ.js +316 -0
  370. package/dist/product-prices-DPGO4KHT.js +267 -0
  371. package/dist/product-sales-channels-6IS6T3EC.js +161 -0
  372. package/dist/product-shipping-profile-LMLRMJ36.js +150 -0
  373. package/dist/product-stock-AQKD6EQO.js +542 -0
  374. package/dist/product-tag-create-5CF7JLN5.js +126 -0
  375. package/dist/product-tag-detail-2RJNUUT7.js +136 -0
  376. package/dist/product-tag-edit-KGT54WP5.js +138 -0
  377. package/dist/product-tag-list-PJG7ICZE.js +130 -0
  378. package/dist/product-tag-metadata-WU7DVJUM.js +84 -0
  379. package/dist/product-type-create-WHYGTCYX.js +102 -0
  380. package/dist/product-type-detail-MZ3MAV2B.js +98 -0
  381. package/dist/product-type-edit-A4IE6BSF.js +114 -0
  382. package/dist/product-type-list-ND2IIR6O.js +35 -0
  383. package/dist/product-type-metadata-KX4ETP3Y.js +84 -0
  384. package/dist/product-variant-detail-USZXPSVX.js +112 -0
  385. package/dist/product-variant-edit-5L2GWAHB.js +545 -0
  386. package/dist/product-variant-manage-inventory-items-54V2HTA6.js +341 -0
  387. package/dist/product-variant-metadata-SBYZTEIH.js +90 -0
  388. package/dist/profile-detail-OAQD5VJC.js +18 -0
  389. package/dist/profile-edit-DSZCGRY7.js +177 -0
  390. package/dist/promotion-add-campaign-JC4B53LS.js +44 -0
  391. package/dist/promotion-create-A6FMNECA.js +54 -0
  392. package/dist/promotion-detail-XOQTYXTV.js +88 -0
  393. package/dist/promotion-edit-details-KFZ2VVVQ.js +513 -0
  394. package/dist/promotion-list-EH7CW4JZ.js +58 -0
  395. package/dist/refund-reason-create-EMGCAW5S.js +196 -0
  396. package/dist/refund-reason-edit-3D25LGKM.js +196 -0
  397. package/dist/refund-reason-list-V7HDVFS2.js +102 -0
  398. package/dist/region-add-countries-ZAQBBXIL.js +227 -0
  399. package/dist/region-create-IMSMEASB.js +508 -0
  400. package/dist/region-detail-RASFBR5O.js +74 -0
  401. package/dist/region-edit-HGSLB3RU.js +381 -0
  402. package/dist/region-list-WEILXVMS.js +35 -0
  403. package/dist/region-metadata-4COKDRZH.js +87 -0
  404. package/dist/reservation-create-CIYW3ZKU.js +310 -0
  405. package/dist/reservation-detail-2ARWTBE6.js +83 -0
  406. package/dist/reservation-list-W6IOXQZK.js +31 -0
  407. package/dist/reservation-metadata-3ZJ2C5BM.js +87 -0
  408. package/dist/reset-password-YQ6HMFFZ.js +458 -0
  409. package/dist/return-reason-create-HHZ3EMCC.js +166 -0
  410. package/dist/return-reason-edit-5P43JRYC.js +169 -0
  411. package/dist/return-reason-list-32MCIQMK.js +81 -0
  412. package/dist/sales-channel-add-products-U2UTBUKE.js +278 -0
  413. package/dist/sales-channel-create-TMRTMLIX.js +155 -0
  414. package/dist/sales-channel-detail-FRBKGP4X.js +98 -0
  415. package/dist/sales-channel-edit-4LE2N6EV.js +164 -0
  416. package/dist/sales-channel-list-36UHU63C.js +50 -0
  417. package/dist/sales-channel-metadata-OKKVLC7G.js +92 -0
  418. package/dist/seller-address-edit-VH4X5OIO.js +223 -0
  419. package/dist/seller-details-52PG56BK.js +104 -0
  420. package/dist/seller-edit-TU72D5QS.js +331 -0
  421. package/dist/seller-list-CYNCPXYT.js +80 -0
  422. package/dist/settings-AVE3VCCM.js +19 -0
  423. package/dist/shipping-option-type-create-ZHRADP5E.js +199 -0
  424. package/dist/shipping-option-type-detail-ZDEEU3P5.js +82 -0
  425. package/dist/shipping-option-type-edit-2FCNVHNE.js +195 -0
  426. package/dist/shipping-option-type-list-OCCZ4DNS.js +60 -0
  427. package/dist/shipping-profile-create-WLHDFQ4Q.js +124 -0
  428. package/dist/shipping-profile-detail-AUWRGYYL.js +57 -0
  429. package/dist/shipping-profile-metadata-W7CND3IQ.js +88 -0
  430. package/dist/shipping-profiles-list-RZT6HIZV.js +27 -0
  431. package/dist/tax-region-create-U5JWJUX4.js +304 -0
  432. package/dist/tax-region-detail-UNGDO64V.js +68 -0
  433. package/dist/tax-region-edit-5DOYTPEF.js +166 -0
  434. package/dist/tax-region-list-MRQ63BL3.js +27 -0
  435. package/dist/tax-region-metadata-WN3XSWGA.js +87 -0
  436. package/dist/tax-region-province-create-3GZUYVBY.js +316 -0
  437. package/dist/tax-region-province-detail-QTBP47GV.js +99 -0
  438. package/dist/tax-region-tax-override-create-PRZ3DEZE.js +688 -0
  439. package/dist/tax-region-tax-override-edit-YAA6TB6A.js +797 -0
  440. package/dist/tax-region-tax-rate-create-KHNADBCN.js +194 -0
  441. package/dist/tax-region-tax-rate-edit-JR5262VW.js +193 -0
  442. package/dist/user-detail-I66RREWP.js +55 -0
  443. package/dist/user-edit-LBJOZ4LG.js +116 -0
  444. package/dist/user-invite-EUNVBT5W.js +398 -0
  445. package/dist/user-list-BDJJI33F.js +28 -0
  446. package/dist/user-metadata-4RXAMVDT.js +87 -0
  447. package/package.json +87 -0
@@ -0,0 +1,1093 @@
1
+ import {
2
+ useSelectedParams
3
+ } from "./chunk-YWWUOGJA.js";
4
+ import {
5
+ useDate
6
+ } from "./chunk-UZWFZMOX.js";
7
+
8
+ // src/components/table/data-table/data-table-filter/data-table-filter.tsx
9
+ import { Button, clx as clx6 } from "@medusajs/ui";
10
+ import { Popover as RadixPopover6 } from "radix-ui";
11
+ import { useCallback as useCallback3, useEffect as useEffect3, useMemo as useMemo2, useRef, useState as useState5 } from "react";
12
+ import { useSearchParams } from "react-router-dom";
13
+ import { useTranslation as useTranslation5 } from "react-i18next";
14
+
15
+ // src/components/table/data-table/data-table-filter/context.tsx
16
+ import { createContext, useContext } from "react";
17
+ var DataTableFilterContext = createContext(null);
18
+ var useDataTableFilterContext = () => {
19
+ const ctx = useContext(DataTableFilterContext);
20
+ if (!ctx) {
21
+ throw new Error(
22
+ "useDataTableFacetedFilterContext must be used within a DataTableFacetedFilter"
23
+ );
24
+ }
25
+ return ctx;
26
+ };
27
+
28
+ // src/components/table/data-table/data-table-filter/date-filter.tsx
29
+ import { EllipseMiniSolid } from "@medusajs/icons";
30
+ import { DatePicker, Text as Text2, clx as clx2 } from "@medusajs/ui";
31
+ import isEqual from "lodash.isequal";
32
+ import { Popover as RadixPopover2 } from "radix-ui";
33
+ import { useMemo, useState } from "react";
34
+ import { t } from "i18next";
35
+ import { useTranslation as useTranslation2 } from "react-i18next";
36
+
37
+ // src/components/table/data-table/data-table-filter/filter-chip.tsx
38
+ import { XMarkMini } from "@medusajs/icons";
39
+ import { Text, clx } from "@medusajs/ui";
40
+ import { Popover as RadixPopover } from "radix-ui";
41
+ import { useTranslation } from "react-i18next";
42
+ import { jsx, jsxs } from "react/jsx-runtime";
43
+ var FilterChip = ({
44
+ hadPreviousValue,
45
+ label,
46
+ value,
47
+ readonly,
48
+ hasOperator,
49
+ onRemove
50
+ }) => {
51
+ const { t: t2 } = useTranslation();
52
+ const handleRemove = (e) => {
53
+ e.stopPropagation();
54
+ onRemove();
55
+ };
56
+ return /* @__PURE__ */ jsxs("div", { className: "bg-ui-bg-field transition-fg shadow-borders-base text-ui-fg-subtle flex cursor-default select-none items-stretch overflow-hidden rounded-md", children: [
57
+ !hadPreviousValue && /* @__PURE__ */ jsx(RadixPopover.Anchor, {}),
58
+ /* @__PURE__ */ jsx(
59
+ "div",
60
+ {
61
+ className: clx(
62
+ "flex items-center justify-center whitespace-nowrap px-2 py-1",
63
+ {
64
+ "border-r": !!(value || hadPreviousValue)
65
+ }
66
+ ),
67
+ children: /* @__PURE__ */ jsx(Text, { size: "small", weight: "plus", leading: "compact", children: label })
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center overflow-hidden", children: [
71
+ hasOperator && !!(value || hadPreviousValue) && /* @__PURE__ */ jsx("div", { className: "border-r p-1 px-2", children: /* @__PURE__ */ jsx(
72
+ Text,
73
+ {
74
+ size: "small",
75
+ weight: "plus",
76
+ leading: "compact",
77
+ className: "text-ui-fg-muted",
78
+ children: t2("general.is")
79
+ }
80
+ ) }),
81
+ !!(value || hadPreviousValue) && /* @__PURE__ */ jsx(
82
+ RadixPopover.Trigger,
83
+ {
84
+ asChild: true,
85
+ className: clx(
86
+ "flex-1 cursor-pointer overflow-hidden border-r p-1 px-2",
87
+ {
88
+ "hover:bg-ui-bg-field-hover": !readonly,
89
+ "data-[state=open]:bg-ui-bg-field-hover": !readonly
90
+ }
91
+ ),
92
+ children: /* @__PURE__ */ jsx(
93
+ Text,
94
+ {
95
+ size: "small",
96
+ leading: "compact",
97
+ weight: "plus",
98
+ className: "truncate text-nowrap",
99
+ children: value || "\xA0"
100
+ }
101
+ )
102
+ }
103
+ )
104
+ ] }),
105
+ !readonly && !!(value || hadPreviousValue) && /* @__PURE__ */ jsx(
106
+ "button",
107
+ {
108
+ onClick: handleRemove,
109
+ className: clx(
110
+ "text-ui-fg-muted transition-fg flex items-center justify-center p-1",
111
+ "hover:bg-ui-bg-subtle-hover",
112
+ "active:bg-ui-bg-subtle-pressed active:text-ui-fg-base"
113
+ ),
114
+ children: /* @__PURE__ */ jsx(XMarkMini, {})
115
+ }
116
+ )
117
+ ] });
118
+ };
119
+ var filter_chip_default = FilterChip;
120
+
121
+ // src/components/table/data-table/data-table-filter/date-filter.tsx
122
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
123
+ var DateFilter = ({
124
+ filter,
125
+ prefix,
126
+ readonly,
127
+ openOnMount
128
+ }) => {
129
+ const [open, setOpen] = useState(openOnMount);
130
+ const [showCustom, setShowCustom] = useState(false);
131
+ const { getFullDate } = useDate();
132
+ const { key, label } = filter;
133
+ const { removeFilter } = useDataTableFilterContext();
134
+ const selectedParams = useSelectedParams({ param: key, prefix });
135
+ const presets = usePresets();
136
+ const handleSelectPreset = (value) => {
137
+ selectedParams.add(JSON.stringify(value));
138
+ setShowCustom(false);
139
+ };
140
+ const handleSelectCustom = () => {
141
+ selectedParams.delete();
142
+ setShowCustom((prev) => !prev);
143
+ };
144
+ const currentValue = selectedParams.get();
145
+ const currentDateComparison = parseDateComparison(currentValue);
146
+ const customStartValue = getDateFromComparison(currentDateComparison, "$gte");
147
+ const customEndValue = getDateFromComparison(currentDateComparison, "$lte");
148
+ const handleCustomDateChange = (value, pos) => {
149
+ const key2 = pos === "start" ? "$gte" : "$lte";
150
+ let dateValue = value;
151
+ if (key2 === "$lte" && value) {
152
+ dateValue = new Date(value.getTime());
153
+ dateValue.setHours(23, 59, 59, 999);
154
+ }
155
+ selectedParams.add(
156
+ JSON.stringify({
157
+ ...currentDateComparison || {},
158
+ [key2]: dateValue?.toISOString()
159
+ })
160
+ );
161
+ };
162
+ const getDisplayValueFromPresets = () => {
163
+ const preset = presets.find((p) => isEqual(p.value, currentDateComparison));
164
+ return preset?.label;
165
+ };
166
+ const formatCustomDate = (date) => {
167
+ return date ? getFullDate({ date }) : void 0;
168
+ };
169
+ const getCustomDisplayValue = () => {
170
+ const formattedDates = [customStartValue, customEndValue].map(
171
+ formatCustomDate
172
+ );
173
+ return formattedDates.filter(Boolean).join(" - ");
174
+ };
175
+ const displayValue = getDisplayValueFromPresets() || getCustomDisplayValue();
176
+ const [previousValue, setPreviousValue] = useState(
177
+ displayValue
178
+ );
179
+ const handleRemove = () => {
180
+ selectedParams.delete();
181
+ removeFilter(key);
182
+ };
183
+ let timeoutId = null;
184
+ const handleOpenChange = (open2) => {
185
+ setOpen(open2);
186
+ setPreviousValue(displayValue);
187
+ if (timeoutId) {
188
+ clearTimeout(timeoutId);
189
+ }
190
+ if (!open2 && !currentValue.length) {
191
+ timeoutId = setTimeout(() => {
192
+ removeFilter(key);
193
+ }, 200);
194
+ }
195
+ };
196
+ return /* @__PURE__ */ jsxs2(RadixPopover2.Root, { modal: true, open, onOpenChange: handleOpenChange, children: [
197
+ /* @__PURE__ */ jsx2(
198
+ filter_chip_default,
199
+ {
200
+ hadPreviousValue: !!previousValue,
201
+ label,
202
+ value: displayValue,
203
+ onRemove: handleRemove,
204
+ readonly
205
+ }
206
+ ),
207
+ !readonly && /* @__PURE__ */ jsx2(RadixPopover2.Portal, { children: /* @__PURE__ */ jsxs2(
208
+ RadixPopover2.Content,
209
+ {
210
+ "data-name": "date_filter_content",
211
+ align: "start",
212
+ sideOffset: 8,
213
+ collisionPadding: 24,
214
+ className: clx2(
215
+ "bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout h-full max-h-[var(--radix-popper-available-height)] w-[300px] overflow-auto rounded-lg"
216
+ ),
217
+ onInteractOutside: (e) => {
218
+ if (e.target instanceof HTMLElement) {
219
+ if (e.target.attributes.getNamedItem("data-name")?.value === "filters_menu_content") {
220
+ e.preventDefault();
221
+ }
222
+ }
223
+ },
224
+ children: [
225
+ /* @__PURE__ */ jsxs2("ul", { className: "w-full p-1", children: [
226
+ presets.map((preset) => {
227
+ const isSelected = selectedParams.get().includes(JSON.stringify(preset.value));
228
+ return /* @__PURE__ */ jsx2("li", { children: /* @__PURE__ */ jsxs2(
229
+ "button",
230
+ {
231
+ className: "bg-ui-bg-base hover:bg-ui-bg-base-hover focus-visible:bg-ui-bg-base-pressed text-ui-fg-base data-[disabled]:text-ui-fg-disabled txt-compact-small relative flex w-full cursor-pointer select-none items-center rounded-md px-2 py-1.5 outline-none transition-colors data-[disabled]:pointer-events-none",
232
+ type: "button",
233
+ onClick: () => {
234
+ handleSelectPreset(preset.value);
235
+ },
236
+ children: [
237
+ /* @__PURE__ */ jsx2(
238
+ "div",
239
+ {
240
+ className: clx2(
241
+ "transition-fg flex h-5 w-5 items-center justify-center",
242
+ {
243
+ "[&_svg]:invisible": !isSelected
244
+ }
245
+ ),
246
+ children: /* @__PURE__ */ jsx2(EllipseMiniSolid, {})
247
+ }
248
+ ),
249
+ preset.label
250
+ ]
251
+ }
252
+ ) }, preset.label);
253
+ }),
254
+ /* @__PURE__ */ jsx2("li", { children: /* @__PURE__ */ jsxs2(
255
+ "button",
256
+ {
257
+ className: "bg-ui-bg-base hover:bg-ui-bg-base-hover focus-visible:bg-ui-bg-base-pressed text-ui-fg-base data-[disabled]:text-ui-fg-disabled txt-compact-small relative flex w-full cursor-pointer select-none items-center rounded-md px-2 py-1.5 outline-none transition-colors data-[disabled]:pointer-events-none",
258
+ type: "button",
259
+ onClick: handleSelectCustom,
260
+ children: [
261
+ /* @__PURE__ */ jsx2(
262
+ "div",
263
+ {
264
+ className: clx2(
265
+ "transition-fg flex h-5 w-5 items-center justify-center",
266
+ {
267
+ "[&_svg]:invisible": !showCustom
268
+ }
269
+ ),
270
+ children: /* @__PURE__ */ jsx2(EllipseMiniSolid, {})
271
+ }
272
+ ),
273
+ t("filters.date.custom")
274
+ ]
275
+ }
276
+ ) })
277
+ ] }),
278
+ showCustom && /* @__PURE__ */ jsxs2("div", { className: "border-t px-1 pb-3 pt-1", children: [
279
+ /* @__PURE__ */ jsxs2("div", { children: [
280
+ /* @__PURE__ */ jsx2("div", { className: "px-2 py-1", children: /* @__PURE__ */ jsx2(Text2, { size: "xsmall", leading: "compact", weight: "plus", children: t("filters.date.from") }) }),
281
+ /* @__PURE__ */ jsx2("div", { className: "px-2 py-1", children: /* @__PURE__ */ jsx2(
282
+ DatePicker,
283
+ {
284
+ modal: true,
285
+ maxValue: customEndValue,
286
+ value: customStartValue,
287
+ onChange: (d) => handleCustomDateChange(d, "start")
288
+ }
289
+ ) })
290
+ ] }),
291
+ /* @__PURE__ */ jsxs2("div", { children: [
292
+ /* @__PURE__ */ jsx2("div", { className: "px-2 py-1", children: /* @__PURE__ */ jsx2(Text2, { size: "xsmall", leading: "compact", weight: "plus", children: t("filters.date.to") }) }),
293
+ /* @__PURE__ */ jsx2("div", { className: "px-2 py-1", children: /* @__PURE__ */ jsx2(
294
+ DatePicker,
295
+ {
296
+ modal: true,
297
+ minValue: customStartValue,
298
+ value: customEndValue || void 0,
299
+ onChange: (d) => {
300
+ handleCustomDateChange(d, "end");
301
+ }
302
+ }
303
+ ) })
304
+ ] })
305
+ ] })
306
+ ]
307
+ }
308
+ ) })
309
+ ] });
310
+ };
311
+ var today = /* @__PURE__ */ new Date();
312
+ today.setHours(0, 0, 0, 0);
313
+ var usePresets = () => {
314
+ const { t: t2 } = useTranslation2();
315
+ return useMemo(
316
+ () => [
317
+ {
318
+ label: t2("filters.date.today"),
319
+ value: {
320
+ $gte: today.toISOString()
321
+ }
322
+ },
323
+ {
324
+ label: t2("filters.date.lastSevenDays"),
325
+ value: {
326
+ $gte: new Date(
327
+ today.getTime() - 7 * 24 * 60 * 60 * 1e3
328
+ ).toISOString()
329
+ // 7 days ago
330
+ }
331
+ },
332
+ {
333
+ label: t2("filters.date.lastThirtyDays"),
334
+ value: {
335
+ $gte: new Date(
336
+ today.getTime() - 30 * 24 * 60 * 60 * 1e3
337
+ ).toISOString()
338
+ // 30 days ago
339
+ }
340
+ },
341
+ {
342
+ label: t2("filters.date.lastNinetyDays"),
343
+ value: {
344
+ $gte: new Date(
345
+ today.getTime() - 90 * 24 * 60 * 60 * 1e3
346
+ ).toISOString()
347
+ // 90 days ago
348
+ }
349
+ },
350
+ {
351
+ label: t2("filters.date.lastTwelveMonths"),
352
+ value: {
353
+ $gte: new Date(
354
+ today.getTime() - 365 * 24 * 60 * 60 * 1e3
355
+ ).toISOString()
356
+ // 365 days ago
357
+ }
358
+ }
359
+ ],
360
+ [t2]
361
+ );
362
+ };
363
+ var parseDateComparison = (value) => {
364
+ return value?.length ? JSON.parse(value.join(",")) : null;
365
+ };
366
+ var getDateFromComparison = (comparison, key) => {
367
+ if (!comparison?.[key]) {
368
+ return void 0;
369
+ }
370
+ const compareDate = new Date(comparison[key]);
371
+ if (key === "$lte") {
372
+ compareDate.setHours(0, 0, 0, 0);
373
+ }
374
+ return compareDate;
375
+ };
376
+
377
+ // src/components/table/data-table/data-table-filter/number-filter.tsx
378
+ import { EllipseMiniSolid as EllipseMiniSolid2 } from "@medusajs/icons";
379
+ import { Input, Label, clx as clx3 } from "@medusajs/ui";
380
+ import debounce from "lodash.debounce";
381
+ import {
382
+ Popover as RadixPopover3,
383
+ RadioGroup as RadixRadioGroup
384
+ } from "radix-ui";
385
+ import { useCallback, useEffect, useState as useState2 } from "react";
386
+ import { useTranslation as useTranslation3 } from "react-i18next";
387
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
388
+ var NumberFilter = ({
389
+ filter,
390
+ prefix,
391
+ readonly,
392
+ openOnMount
393
+ }) => {
394
+ const { t: t2 } = useTranslation3();
395
+ const [open, setOpen] = useState2(openOnMount);
396
+ const { key, label } = filter;
397
+ const { removeFilter } = useDataTableFilterContext();
398
+ const selectedParams = useSelectedParams({
399
+ param: key,
400
+ prefix,
401
+ multiple: false
402
+ });
403
+ const currentValue = selectedParams.get();
404
+ const [previousValue, setPreviousValue] = useState2(
405
+ currentValue
406
+ );
407
+ const [operator, setOperator] = useState2(
408
+ getOperator(currentValue)
409
+ );
410
+ const debouncedOnChange = useCallback(
411
+ debounce((e, operator2) => {
412
+ const value = e.target.value;
413
+ const curr = JSON.parse(currentValue?.join(",") || "{}");
414
+ const isCurrentNumber = !isNaN(Number(curr));
415
+ const handleValue = (operator3) => {
416
+ if (!value && isCurrentNumber) {
417
+ selectedParams.delete();
418
+ return;
419
+ }
420
+ if (curr && !value) {
421
+ delete curr[operator3];
422
+ selectedParams.add(JSON.stringify(curr));
423
+ return;
424
+ }
425
+ if (!curr) {
426
+ selectedParams.add(JSON.stringify({ [operator3]: value }));
427
+ return;
428
+ }
429
+ selectedParams.add(JSON.stringify({ ...curr, [operator3]: value }));
430
+ };
431
+ switch (operator2) {
432
+ case "eq":
433
+ if (!value) {
434
+ selectedParams.delete();
435
+ } else {
436
+ selectedParams.add(value);
437
+ }
438
+ break;
439
+ case "lt":
440
+ case "gt":
441
+ handleValue(operator2);
442
+ break;
443
+ }
444
+ }, 500),
445
+ [selectedParams, currentValue]
446
+ );
447
+ useEffect(() => {
448
+ return () => {
449
+ debouncedOnChange.cancel();
450
+ };
451
+ }, [debouncedOnChange]);
452
+ let timeoutId = null;
453
+ const handleOpenChange = (open2) => {
454
+ setOpen(open2);
455
+ setPreviousValue(currentValue);
456
+ if (timeoutId) {
457
+ clearTimeout(timeoutId);
458
+ }
459
+ if (!open2 && !currentValue.length) {
460
+ timeoutId = setTimeout(() => {
461
+ removeFilter(key);
462
+ }, 200);
463
+ }
464
+ };
465
+ const handleRemove = () => {
466
+ selectedParams.delete();
467
+ removeFilter(key);
468
+ };
469
+ const operators = [
470
+ {
471
+ operator: "exact",
472
+ label: t2("filters.compare.exact")
473
+ },
474
+ {
475
+ operator: "range",
476
+ label: t2("filters.compare.range")
477
+ }
478
+ ];
479
+ const GT_KEY = `${key}-gt`;
480
+ const LT_KEY = `${key}-lt`;
481
+ const EQ_KEY = key;
482
+ const displayValue = parseDisplayValue(currentValue, t2);
483
+ const previousDisplayValue = parseDisplayValue(previousValue, t2);
484
+ return /* @__PURE__ */ jsxs3(RadixPopover3.Root, { modal: true, open, onOpenChange: handleOpenChange, children: [
485
+ /* @__PURE__ */ jsx3(
486
+ filter_chip_default,
487
+ {
488
+ hasOperator: true,
489
+ hadPreviousValue: !!previousDisplayValue,
490
+ label,
491
+ value: displayValue,
492
+ onRemove: handleRemove,
493
+ readonly
494
+ }
495
+ ),
496
+ !readonly && /* @__PURE__ */ jsx3(RadixPopover3.Portal, { children: /* @__PURE__ */ jsxs3(
497
+ RadixPopover3.Content,
498
+ {
499
+ "data-name": "number_filter_content",
500
+ align: "start",
501
+ sideOffset: 8,
502
+ collisionPadding: 24,
503
+ className: clx3(
504
+ "bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout max-h-[var(--radix-popper-available-height)] w-[300px] divide-y overflow-y-auto rounded-lg outline-none"
505
+ ),
506
+ onInteractOutside: (e) => {
507
+ if (e.target instanceof HTMLElement) {
508
+ if (e.target.attributes.getNamedItem("data-name")?.value === "filters_menu_content") {
509
+ e.preventDefault();
510
+ }
511
+ }
512
+ },
513
+ children: [
514
+ /* @__PURE__ */ jsx3("div", { className: "p-1", children: /* @__PURE__ */ jsx3(
515
+ RadixRadioGroup.Root,
516
+ {
517
+ value: operator,
518
+ onValueChange: (val) => setOperator(val),
519
+ className: "flex flex-col items-start",
520
+ orientation: "vertical",
521
+ autoFocus: true,
522
+ children: operators.map((o) => /* @__PURE__ */ jsxs3(
523
+ RadixRadioGroup.Item,
524
+ {
525
+ value: o.operator,
526
+ className: "txt-compact-small hover:bg-ui-bg-base-hover focus-visible:bg-ui-bg-base-hover active:bg-ui-bg-base-pressed transition-fg grid w-full grid-cols-[20px_1fr] gap-2 rounded-[4px] px-2 py-1.5 text-left outline-none",
527
+ children: [
528
+ /* @__PURE__ */ jsx3("div", { className: "size-5", children: /* @__PURE__ */ jsx3(RadixRadioGroup.Indicator, { children: /* @__PURE__ */ jsx3(EllipseMiniSolid2, {}) }) }),
529
+ /* @__PURE__ */ jsx3("span", { className: "w-full", children: o.label })
530
+ ]
531
+ },
532
+ o.operator
533
+ ))
534
+ }
535
+ ) }),
536
+ /* @__PURE__ */ jsx3("div", { children: operator === "range" ? /* @__PURE__ */ jsxs3("div", { className: "px-1 pb-3 pt-1", children: [
537
+ /* @__PURE__ */ jsx3("div", { className: "px-2 py-1.5", children: /* @__PURE__ */ jsx3(Label, { size: "xsmall", weight: "plus", htmlFor: GT_KEY, children: t2("filters.compare.greaterThan") }) }),
538
+ /* @__PURE__ */ jsx3("div", { className: "px-2 py-0.5", children: /* @__PURE__ */ jsx3(
539
+ Input,
540
+ {
541
+ name: GT_KEY,
542
+ size: "small",
543
+ type: "number",
544
+ defaultValue: getValue(currentValue, "gt"),
545
+ onChange: (e) => debouncedOnChange(e, "gt")
546
+ }
547
+ ) }),
548
+ /* @__PURE__ */ jsx3("div", { className: "px-2 py-1.5", children: /* @__PURE__ */ jsx3(Label, { size: "xsmall", weight: "plus", htmlFor: LT_KEY, children: t2("filters.compare.lessThan") }) }),
549
+ /* @__PURE__ */ jsx3("div", { className: "px-2 py-0.5", children: /* @__PURE__ */ jsx3(
550
+ Input,
551
+ {
552
+ name: LT_KEY,
553
+ size: "small",
554
+ type: "number",
555
+ defaultValue: getValue(currentValue, "lt"),
556
+ onChange: (e) => debouncedOnChange(e, "lt")
557
+ }
558
+ ) })
559
+ ] }, "range") : /* @__PURE__ */ jsxs3("div", { className: "px-1 pb-3 pt-1", children: [
560
+ /* @__PURE__ */ jsx3("div", { className: "px-2 py-1.5", children: /* @__PURE__ */ jsx3(Label, { size: "xsmall", weight: "plus", htmlFor: EQ_KEY, children: label }) }),
561
+ /* @__PURE__ */ jsx3("div", { className: "px-2 py-0.5", children: /* @__PURE__ */ jsx3(
562
+ Input,
563
+ {
564
+ name: EQ_KEY,
565
+ size: "small",
566
+ type: "number",
567
+ defaultValue: getValue(currentValue, "eq"),
568
+ onChange: (e) => debouncedOnChange(e, "eq")
569
+ }
570
+ ) })
571
+ ] }, "exact") })
572
+ ]
573
+ }
574
+ ) })
575
+ ] });
576
+ };
577
+ var parseDisplayValue = (value, t2) => {
578
+ const parsed = JSON.parse(value?.join(",") || "{}");
579
+ let displayValue = "";
580
+ if (typeof parsed === "object") {
581
+ const parts = [];
582
+ if (parsed.gt) {
583
+ parts.push(t2("filters.compare.greaterThanLabel", { value: parsed.gt }));
584
+ }
585
+ if (parsed.lt) {
586
+ parts.push(
587
+ t2("filters.compare.lessThanLabel", {
588
+ value: parsed.lt
589
+ })
590
+ );
591
+ }
592
+ displayValue = parts.join(` ${t2("filters.compare.andLabel")} `);
593
+ }
594
+ if (typeof parsed === "number") {
595
+ displayValue = parsed.toString();
596
+ }
597
+ return displayValue;
598
+ };
599
+ var parseValue = (value) => {
600
+ if (!value) {
601
+ return void 0;
602
+ }
603
+ const val = value.join(",");
604
+ if (!val) {
605
+ return void 0;
606
+ }
607
+ return JSON.parse(val);
608
+ };
609
+ var getValue = (value, key) => {
610
+ const parsed = parseValue(value);
611
+ if (typeof parsed === "object") {
612
+ return parsed[key];
613
+ }
614
+ if (typeof parsed === "number" && key === "eq") {
615
+ return parsed;
616
+ }
617
+ return void 0;
618
+ };
619
+ var getOperator = (value) => {
620
+ const parsed = parseValue(value);
621
+ return typeof parsed === "object" ? "range" : "exact";
622
+ };
623
+
624
+ // src/components/table/data-table/data-table-filter/select-filter.tsx
625
+ import { CheckMini, EllipseMiniSolid as EllipseMiniSolid3, XMarkMini as XMarkMini2 } from "@medusajs/icons";
626
+ import { clx as clx4 } from "@medusajs/ui";
627
+ import { Command } from "cmdk";
628
+ import { Popover as RadixPopover4 } from "radix-ui";
629
+ import { useState as useState3 } from "react";
630
+ import { useTranslation as useTranslation4 } from "react-i18next";
631
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
632
+ var SelectFilter = ({
633
+ filter,
634
+ prefix,
635
+ readonly,
636
+ multiple,
637
+ searchable,
638
+ options,
639
+ openOnMount
640
+ }) => {
641
+ const [open, setOpen] = useState3(openOnMount);
642
+ const [search, setSearch] = useState3("");
643
+ const [searchRef, setSearchRef] = useState3(null);
644
+ const { t: t2 } = useTranslation4();
645
+ const { removeFilter } = useDataTableFilterContext();
646
+ const { key, label } = filter;
647
+ const selectedParams = useSelectedParams({ param: key, prefix, multiple });
648
+ const currentValue = selectedParams.get();
649
+ const labelValues = currentValue.map((v) => options.find((o) => o.value === v)?.label).filter(Boolean);
650
+ const [previousValue, setPreviousValue] = useState3(labelValues);
651
+ const handleRemove = () => {
652
+ selectedParams.delete();
653
+ removeFilter(key);
654
+ };
655
+ let timeoutId = null;
656
+ const handleOpenChange = (open2) => {
657
+ setOpen(open2);
658
+ setPreviousValue(labelValues);
659
+ if (timeoutId) {
660
+ clearTimeout(timeoutId);
661
+ }
662
+ if (!open2 && !currentValue.length) {
663
+ timeoutId = setTimeout(() => {
664
+ removeFilter(key);
665
+ }, 200);
666
+ }
667
+ };
668
+ const handleClearSearch = () => {
669
+ setSearch("");
670
+ if (searchRef) {
671
+ searchRef.focus();
672
+ }
673
+ };
674
+ const handleSelect = (value) => {
675
+ const isSelected = selectedParams.get().includes(String(value));
676
+ if (isSelected) {
677
+ selectedParams.delete(String(value));
678
+ } else {
679
+ selectedParams.add(String(value));
680
+ }
681
+ };
682
+ const normalizedValues = labelValues ? Array.isArray(labelValues) ? labelValues : [labelValues] : null;
683
+ const normalizedPrev = previousValue ? Array.isArray(previousValue) ? previousValue : [previousValue] : null;
684
+ return /* @__PURE__ */ jsxs4(RadixPopover4.Root, { modal: true, open, onOpenChange: handleOpenChange, children: [
685
+ /* @__PURE__ */ jsx4(
686
+ filter_chip_default,
687
+ {
688
+ hasOperator: true,
689
+ hadPreviousValue: !!normalizedPrev?.length,
690
+ readonly,
691
+ label,
692
+ value: normalizedValues?.join(", "),
693
+ onRemove: handleRemove
694
+ }
695
+ ),
696
+ !readonly && /* @__PURE__ */ jsx4(RadixPopover4.Portal, { children: /* @__PURE__ */ jsx4(
697
+ RadixPopover4.Content,
698
+ {
699
+ hideWhenDetached: true,
700
+ align: "start",
701
+ sideOffset: 8,
702
+ collisionPadding: 8,
703
+ className: clx4(
704
+ "bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout z-[1] h-full max-h-[200px] w-[300px] overflow-hidden rounded-lg outline-none"
705
+ ),
706
+ onInteractOutside: (e) => {
707
+ if (e.target instanceof HTMLElement) {
708
+ if (e.target.attributes.getNamedItem("data-name")?.value === "filters_menu_content") {
709
+ e.preventDefault();
710
+ e.stopPropagation();
711
+ }
712
+ }
713
+ },
714
+ children: /* @__PURE__ */ jsxs4(Command, { className: "h-full", children: [
715
+ searchable && /* @__PURE__ */ jsx4("div", { className: "border-b p-1", children: /* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-[1fr_20px] gap-x-2 rounded-md px-2 py-1", children: [
716
+ /* @__PURE__ */ jsx4(
717
+ Command.Input,
718
+ {
719
+ ref: setSearchRef,
720
+ value: search,
721
+ onValueChange: setSearch,
722
+ className: "txt-compact-small placeholder:text-ui-fg-muted bg-transparent outline-none",
723
+ placeholder: "Search"
724
+ }
725
+ ),
726
+ /* @__PURE__ */ jsx4("div", { className: "flex h-5 w-5 items-center justify-center", children: /* @__PURE__ */ jsx4(
727
+ "button",
728
+ {
729
+ disabled: !search,
730
+ onClick: handleClearSearch,
731
+ className: clx4(
732
+ "transition-fg text-ui-fg-muted focus-visible:bg-ui-bg-base-pressed rounded-md outline-none",
733
+ {
734
+ invisible: !search
735
+ }
736
+ ),
737
+ children: /* @__PURE__ */ jsx4(XMarkMini2, {})
738
+ }
739
+ ) })
740
+ ] }) }),
741
+ /* @__PURE__ */ jsx4(Command.Empty, { className: "txt-compact-small flex items-center justify-center p-1", children: /* @__PURE__ */ jsx4("span", { className: "w-full px-2 py-1 text-center", children: t2("general.noResultsTitle") }) }),
742
+ /* @__PURE__ */ jsx4(Command.List, { className: "h-full max-h-[163px] min-h-[0] overflow-auto p-1 outline-none", children: options.map((option) => {
743
+ const isSelected = selectedParams.get().includes(String(option.value));
744
+ return /* @__PURE__ */ jsxs4(
745
+ Command.Item,
746
+ {
747
+ className: "bg-ui-bg-base hover:bg-ui-bg-base-hover aria-selected:bg-ui-bg-base-pressed focus-visible:bg-ui-bg-base-pressed text-ui-fg-base data-[disabled]:text-ui-fg-disabled txt-compact-small relative flex cursor-pointer select-none items-center gap-x-2 rounded-md px-2 py-1.5 outline-none transition-colors data-[disabled]:pointer-events-none",
748
+ value: option.label,
749
+ onSelect: () => {
750
+ handleSelect(option.value);
751
+ },
752
+ children: [
753
+ /* @__PURE__ */ jsx4(
754
+ "div",
755
+ {
756
+ className: clx4(
757
+ "transition-fg flex h-5 w-5 items-center justify-center",
758
+ {
759
+ "[&_svg]:invisible": !isSelected
760
+ }
761
+ ),
762
+ children: multiple ? /* @__PURE__ */ jsx4(CheckMini, {}) : /* @__PURE__ */ jsx4(EllipseMiniSolid3, {})
763
+ }
764
+ ),
765
+ option.label
766
+ ]
767
+ },
768
+ String(option.value)
769
+ );
770
+ }) })
771
+ ] })
772
+ }
773
+ ) })
774
+ ] });
775
+ };
776
+
777
+ // src/components/table/data-table/data-table-filter/string-filter.tsx
778
+ import { Input as Input2, Label as Label2, clx as clx5 } from "@medusajs/ui";
779
+ import debounce2 from "lodash.debounce";
780
+ import { Popover as RadixPopover5 } from "radix-ui";
781
+ import { useCallback as useCallback2, useEffect as useEffect2, useState as useState4 } from "react";
782
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
783
+ var StringFilter = ({
784
+ filter,
785
+ prefix,
786
+ readonly,
787
+ openOnMount
788
+ }) => {
789
+ const [open, setOpen] = useState4(openOnMount);
790
+ const { key, label } = filter;
791
+ const { removeFilter } = useDataTableFilterContext();
792
+ const selectedParams = useSelectedParams({ param: key, prefix });
793
+ const query = selectedParams.get();
794
+ const [previousValue, setPreviousValue] = useState4(
795
+ query?.[0]
796
+ );
797
+ const debouncedOnChange = useCallback2(
798
+ debounce2((e) => {
799
+ const value = e.target.value;
800
+ if (!value) {
801
+ selectedParams.delete();
802
+ } else {
803
+ selectedParams.add(value);
804
+ }
805
+ }, 500),
806
+ [selectedParams]
807
+ );
808
+ useEffect2(() => {
809
+ return () => {
810
+ debouncedOnChange.cancel();
811
+ };
812
+ }, [debouncedOnChange]);
813
+ let timeoutId = null;
814
+ const handleOpenChange = (open2) => {
815
+ setOpen(open2);
816
+ setPreviousValue(query?.[0]);
817
+ if (timeoutId) {
818
+ clearTimeout(timeoutId);
819
+ }
820
+ if (!open2 && !query.length) {
821
+ timeoutId = setTimeout(() => {
822
+ removeFilter(key);
823
+ }, 200);
824
+ }
825
+ };
826
+ const handleRemove = () => {
827
+ selectedParams.delete();
828
+ removeFilter(key);
829
+ };
830
+ return /* @__PURE__ */ jsxs5(RadixPopover5.Root, { modal: true, open, onOpenChange: handleOpenChange, children: [
831
+ /* @__PURE__ */ jsx5(
832
+ filter_chip_default,
833
+ {
834
+ hasOperator: true,
835
+ hadPreviousValue: !!previousValue,
836
+ label,
837
+ value: query?.[0],
838
+ onRemove: handleRemove,
839
+ readonly
840
+ }
841
+ ),
842
+ !readonly && /* @__PURE__ */ jsx5(RadixPopover5.Portal, { children: /* @__PURE__ */ jsx5(
843
+ RadixPopover5.Content,
844
+ {
845
+ hideWhenDetached: true,
846
+ align: "start",
847
+ sideOffset: 8,
848
+ collisionPadding: 8,
849
+ className: clx5(
850
+ "bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout z-[1] h-full max-h-[200px] w-[300px] overflow-hidden rounded-lg outline-none"
851
+ ),
852
+ onInteractOutside: (e) => {
853
+ if (e.target instanceof HTMLElement) {
854
+ if (e.target.attributes.getNamedItem("data-name")?.value === "filters_menu_content") {
855
+ e.preventDefault();
856
+ e.stopPropagation();
857
+ }
858
+ }
859
+ },
860
+ children: /* @__PURE__ */ jsxs5("div", { className: "px-1 pb-3 pt-1", children: [
861
+ /* @__PURE__ */ jsx5("div", { className: "px-2 py-1.5", children: /* @__PURE__ */ jsx5(Label2, { size: "xsmall", weight: "plus", htmlFor: key, children: label }) }),
862
+ /* @__PURE__ */ jsx5("div", { className: "px-2 py-0.5", children: /* @__PURE__ */ jsx5(
863
+ Input2,
864
+ {
865
+ name: key,
866
+ size: "small",
867
+ defaultValue: query?.[0] || void 0,
868
+ onChange: debouncedOnChange
869
+ }
870
+ ) })
871
+ ] })
872
+ }
873
+ ) })
874
+ ] });
875
+ };
876
+
877
+ // src/components/table/data-table/data-table-filter/data-table-filter.tsx
878
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
879
+ var DataTableFilter = ({
880
+ filters,
881
+ readonly,
882
+ prefix
883
+ }) => {
884
+ const { t: t2 } = useTranslation5();
885
+ const [searchParams] = useSearchParams();
886
+ const [open, setOpen] = useState5(false);
887
+ const [activeFilters, setActiveFilters] = useState5(
888
+ getInitialFilters({ searchParams, filters, prefix })
889
+ );
890
+ const availableFilters = filters.filter(
891
+ (f) => !activeFilters.find((af) => af.key === f.key)
892
+ );
893
+ const initialMount = useRef(true);
894
+ useEffect3(() => {
895
+ if (initialMount.current) {
896
+ const params = new URLSearchParams(searchParams);
897
+ filters.forEach((filter) => {
898
+ const key = prefix ? `${prefix}_${filter.key}` : filter.key;
899
+ const value = params.get(key);
900
+ if (value && !activeFilters.find((af) => af.key === filter.key)) {
901
+ if (filter.type === "select") {
902
+ setActiveFilters((prev) => [
903
+ ...prev,
904
+ {
905
+ ...filter,
906
+ multiple: filter.multiple,
907
+ options: filter.options,
908
+ openOnMount: false
909
+ }
910
+ ]);
911
+ } else {
912
+ setActiveFilters((prev) => [
913
+ ...prev,
914
+ { ...filter, openOnMount: false }
915
+ ]);
916
+ }
917
+ }
918
+ });
919
+ }
920
+ initialMount.current = false;
921
+ }, [activeFilters, filters, prefix, searchParams]);
922
+ const addFilter = (filter) => {
923
+ setOpen(false);
924
+ setActiveFilters((prev) => [...prev, { ...filter, openOnMount: true }]);
925
+ };
926
+ const removeFilter = useCallback3((key) => {
927
+ setActiveFilters((prev) => prev.filter((f) => f.key !== key));
928
+ }, []);
929
+ const removeAllFilters = useCallback3(() => {
930
+ setActiveFilters([]);
931
+ }, []);
932
+ return /* @__PURE__ */ jsx6(
933
+ DataTableFilterContext.Provider,
934
+ {
935
+ value: useMemo2(
936
+ () => ({
937
+ removeFilter,
938
+ removeAllFilters
939
+ }),
940
+ [removeAllFilters, removeFilter]
941
+ ),
942
+ children: /* @__PURE__ */ jsxs6("div", { className: "max-w-2/3 flex flex-wrap items-center gap-2", children: [
943
+ activeFilters.map((filter) => {
944
+ switch (filter.type) {
945
+ case "select":
946
+ return /* @__PURE__ */ jsx6(
947
+ SelectFilter,
948
+ {
949
+ filter,
950
+ prefix,
951
+ readonly,
952
+ options: filter.options,
953
+ multiple: filter.multiple,
954
+ searchable: filter.searchable,
955
+ openOnMount: filter.openOnMount
956
+ },
957
+ filter.key
958
+ );
959
+ case "date":
960
+ return /* @__PURE__ */ jsx6(
961
+ DateFilter,
962
+ {
963
+ filter,
964
+ prefix,
965
+ readonly,
966
+ openOnMount: filter.openOnMount
967
+ },
968
+ filter.key
969
+ );
970
+ case "string":
971
+ return /* @__PURE__ */ jsx6(
972
+ StringFilter,
973
+ {
974
+ filter,
975
+ prefix,
976
+ readonly,
977
+ openOnMount: filter.openOnMount
978
+ },
979
+ filter.key
980
+ );
981
+ case "number":
982
+ return /* @__PURE__ */ jsx6(
983
+ NumberFilter,
984
+ {
985
+ filter,
986
+ prefix,
987
+ readonly,
988
+ openOnMount: filter.openOnMount
989
+ },
990
+ filter.key
991
+ );
992
+ default:
993
+ break;
994
+ }
995
+ }),
996
+ !readonly && availableFilters.length > 0 && /* @__PURE__ */ jsxs6(RadixPopover6.Root, { modal: true, open, onOpenChange: setOpen, children: [
997
+ /* @__PURE__ */ jsx6(RadixPopover6.Trigger, { asChild: true, id: "filters_menu_trigger", children: /* @__PURE__ */ jsx6(Button, { size: "small", variant: "secondary", children: t2("filters.addFilter") }) }),
998
+ /* @__PURE__ */ jsx6(RadixPopover6.Portal, { children: /* @__PURE__ */ jsx6(
999
+ RadixPopover6.Content,
1000
+ {
1001
+ className: clx6(
1002
+ "bg-ui-bg-base text-ui-fg-base shadow-elevation-flyout z-[1] h-full max-h-[200px] w-[300px] overflow-auto rounded-lg p-1 outline-none"
1003
+ ),
1004
+ "data-name": "filters_menu_content",
1005
+ align: "start",
1006
+ sideOffset: 8,
1007
+ collisionPadding: 8,
1008
+ onCloseAutoFocus: (e) => {
1009
+ const hasOpenFilter = activeFilters.find(
1010
+ (filter) => filter.openOnMount
1011
+ );
1012
+ if (hasOpenFilter) {
1013
+ e.preventDefault();
1014
+ }
1015
+ },
1016
+ children: availableFilters.map((filter) => {
1017
+ return /* @__PURE__ */ jsx6(
1018
+ "div",
1019
+ {
1020
+ className: "bg-ui-bg-base hover:bg-ui-bg-base-hover focus-visible:bg-ui-bg-base-pressed text-ui-fg-base data-[disabled]:text-ui-fg-disabled txt-compact-small relative flex cursor-pointer select-none items-center rounded-md px-2 py-1.5 outline-none transition-colors data-[disabled]:pointer-events-none",
1021
+ role: "menuitem",
1022
+ onClick: () => {
1023
+ addFilter(filter);
1024
+ },
1025
+ children: filter.label
1026
+ },
1027
+ filter.key
1028
+ );
1029
+ })
1030
+ }
1031
+ ) })
1032
+ ] }),
1033
+ !readonly && activeFilters.length > 0 && /* @__PURE__ */ jsx6(ClearAllFilters, { filters, prefix })
1034
+ ] })
1035
+ }
1036
+ );
1037
+ };
1038
+ var ClearAllFilters = ({ filters, prefix }) => {
1039
+ const { removeAllFilters } = useDataTableFilterContext();
1040
+ const [_, setSearchParams] = useSearchParams();
1041
+ const handleRemoveAll = () => {
1042
+ setSearchParams((prev) => {
1043
+ const newValues = new URLSearchParams(prev);
1044
+ filters.forEach((filter) => {
1045
+ newValues.delete(prefix ? `${prefix}_${filter.key}` : filter.key);
1046
+ });
1047
+ return newValues;
1048
+ });
1049
+ removeAllFilters();
1050
+ };
1051
+ return /* @__PURE__ */ jsx6(
1052
+ "button",
1053
+ {
1054
+ type: "button",
1055
+ onClick: handleRemoveAll,
1056
+ className: clx6(
1057
+ "text-ui-fg-muted transition-fg txt-compact-small-plus rounded-md px-2 py-1",
1058
+ "hover:text-ui-fg-subtle",
1059
+ "focus-visible:shadow-borders-focus"
1060
+ ),
1061
+ children: "Clear all"
1062
+ }
1063
+ );
1064
+ };
1065
+ var getInitialFilters = ({
1066
+ searchParams,
1067
+ filters,
1068
+ prefix
1069
+ }) => {
1070
+ const params = new URLSearchParams(searchParams);
1071
+ const activeFilters = [];
1072
+ filters.forEach((filter) => {
1073
+ const key = prefix ? `${prefix}_${filter.key}` : filter.key;
1074
+ const value = params.get(key);
1075
+ if (value) {
1076
+ if (filter.type === "select") {
1077
+ activeFilters.push({
1078
+ ...filter,
1079
+ multiple: filter.multiple,
1080
+ options: filter.options,
1081
+ openOnMount: false
1082
+ });
1083
+ } else {
1084
+ activeFilters.push({ ...filter, openOnMount: false });
1085
+ }
1086
+ }
1087
+ });
1088
+ return activeFilters;
1089
+ };
1090
+
1091
+ export {
1092
+ DataTableFilter
1093
+ };