@mercurjs/vendor 2.0.0-canary.0

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 (290) hide show
  1. package/dist/[id]-23D3HY3G.js +444 -0
  2. package/dist/[id]-2VBOAZM4.js +1215 -0
  3. package/dist/[id]-A4FSDRER.js +325 -0
  4. package/dist/[id]-E45G2SDA.js +213 -0
  5. package/dist/[id]-FXKSI52D.js +477 -0
  6. package/dist/[id]-HHZ3BSXV.js +1166 -0
  7. package/dist/[id]-MIV4U5UW.js +137 -0
  8. package/dist/[id]-QSRIPPIP.js +612 -0
  9. package/dist/[id]-RGDXOC7T.js +499 -0
  10. package/dist/[id]-TI2MOR2C.js +377 -0
  11. package/dist/[id]-U5DT2ZLS.js +301 -0
  12. package/dist/[id]-UMFGLDM2.js +354 -0
  13. package/dist/[id]-VTFOP3BF.js +97 -0
  14. package/dist/[id]-ZYF75L6G.js +479 -0
  15. package/dist/[location_id]-4UIEW5KM.js +685 -0
  16. package/dist/[province_id]-ZCHPXXQN.js +205 -0
  17. package/dist/add-KNDQL6YN.js +660 -0
  18. package/dist/add-customer-groups-JA346MTF.js +275 -0
  19. package/dist/add-products-2VB57KXV.js +273 -0
  20. package/dist/add-promotions-KVKEP6EO.js +260 -0
  21. package/dist/add-to-campaign-V6D7JKRS.js +44 -0
  22. package/dist/additional-attributes-E36EZX4V.js +219 -0
  23. package/dist/adjust-inventory-P7AB7VIB.js +228 -0
  24. package/dist/allocate-items-QAS5PZLR.js +529 -0
  25. package/dist/areas-Y7VDWH7G.js +151 -0
  26. package/dist/attributes-UEM2VJKV.js +277 -0
  27. package/dist/breadcrumb-3QTVWXZB.js +27 -0
  28. package/dist/breadcrumb-5OTOCYNL.js +38 -0
  29. package/dist/breadcrumb-6NAAOPIY.js +11 -0
  30. package/dist/breadcrumb-ASB2YCNV.js +25 -0
  31. package/dist/breadcrumb-CIGKLKKS.js +28 -0
  32. package/dist/breadcrumb-EOYLR3IQ.js +22 -0
  33. package/dist/breadcrumb-LENACUAA.js +22 -0
  34. package/dist/breadcrumb-LIXGWUQF.js +44 -0
  35. package/dist/breadcrumb-MOQ7GI3Z.js +27 -0
  36. package/dist/breadcrumb-NCBGPQML.js +23 -0
  37. package/dist/breadcrumb-OVMEC5OZ.js +33 -0
  38. package/dist/breadcrumb-RIXJ5QSX.js +45 -0
  39. package/dist/breadcrumb-TZB6EWNC.js +31 -0
  40. package/dist/breadcrumb-WP34OXGQ.js +23 -0
  41. package/dist/campaigns-PMVKUFEA.js +28 -0
  42. package/dist/categories-CKKIUMYG.js +27 -0
  43. package/dist/chunk-26OOAKQ6.js +18 -0
  44. package/dist/chunk-2C3HUJ3Z.js +222 -0
  45. package/dist/chunk-2F3H6ORE.js +36 -0
  46. package/dist/chunk-2ZFELO2L.js +13 -0
  47. package/dist/chunk-3CK6OINO.js +448 -0
  48. package/dist/chunk-3EF54XFY.js +64 -0
  49. package/dist/chunk-3LPVUPZZ.js +74 -0
  50. package/dist/chunk-3QSRE5LS.js +161 -0
  51. package/dist/chunk-3SIDRPKT.js +185 -0
  52. package/dist/chunk-4F5GP7J7.js +45 -0
  53. package/dist/chunk-4GPAS5GW.js +36 -0
  54. package/dist/chunk-4MFMCZEJ.js +70 -0
  55. package/dist/chunk-4TBDDMFP.js +425 -0
  56. package/dist/chunk-4TLP3TAA.js +34 -0
  57. package/dist/chunk-54TMLQH3.js +9 -0
  58. package/dist/chunk-5NF4OTVV.js +169 -0
  59. package/dist/chunk-66V3GFSW.js +138 -0
  60. package/dist/chunk-6EYGH3TB.js +26 -0
  61. package/dist/chunk-6IJMSVC6.js +16 -0
  62. package/dist/chunk-6YA3C4NB.js +55 -0
  63. package/dist/chunk-7AV5EJJ5.js +29 -0
  64. package/dist/chunk-7RPRNVBS.js +45 -0
  65. package/dist/chunk-A2SY5L5G.js +183 -0
  66. package/dist/chunk-A5DJIOHN.js +4 -0
  67. package/dist/chunk-AIFLEWO2.js +56 -0
  68. package/dist/chunk-ASVMGV2B.js +80 -0
  69. package/dist/chunk-AW77UWCZ.js +363 -0
  70. package/dist/chunk-AYUG34XF.js +84 -0
  71. package/dist/chunk-AYVH6Q5O.js +31 -0
  72. package/dist/chunk-B2RVONU7.js +160 -0
  73. package/dist/chunk-BCU3FKP2.js +18 -0
  74. package/dist/chunk-BDGZ4EQO.js +86 -0
  75. package/dist/chunk-BDZOSMAX.js +23 -0
  76. package/dist/chunk-C6SUTRP2.js +13 -0
  77. package/dist/chunk-CDIZEXFJ.js +145 -0
  78. package/dist/chunk-CFETU5BI.js +261 -0
  79. package/dist/chunk-CMHI2RPL.js +20 -0
  80. package/dist/chunk-CP5IL4P6.js +98 -0
  81. package/dist/chunk-CUO22GTM.js +96 -0
  82. package/dist/chunk-CVVYQI5F.js +41 -0
  83. package/dist/chunk-DARJTN4I.js +60 -0
  84. package/dist/chunk-DB6ANJBO.js +35 -0
  85. package/dist/chunk-DC2K6CFQ.js +86 -0
  86. package/dist/chunk-DDEIH66R.js +123 -0
  87. package/dist/chunk-DY3XQPHC.js +31 -0
  88. package/dist/chunk-DYUTYBAQ.js +67 -0
  89. package/dist/chunk-E3MNEQID.js +24 -0
  90. package/dist/chunk-FBZHM2QZ.js +247 -0
  91. package/dist/chunk-FDZC3TFZ.js +717 -0
  92. package/dist/chunk-FGCKXH45.js +263 -0
  93. package/dist/chunk-FMFVTERD.js +0 -0
  94. package/dist/chunk-FOMEBUX6.js +89 -0
  95. package/dist/chunk-FQERBIVS.js +0 -0
  96. package/dist/chunk-GC33DBKG.js +143 -0
  97. package/dist/chunk-GDMNHL7E.js +144 -0
  98. package/dist/chunk-GTUR4HSV.js +53 -0
  99. package/dist/chunk-H35HHFTB.js +225 -0
  100. package/dist/chunk-HB3BP55W.js +25 -0
  101. package/dist/chunk-HHD2VUED.js +29 -0
  102. package/dist/chunk-HUNGNEPY.js +312 -0
  103. package/dist/chunk-HUZG6A3X.js +127 -0
  104. package/dist/chunk-INNFZYX2.js +183 -0
  105. package/dist/chunk-IQPN4PZJ.js +749 -0
  106. package/dist/chunk-IZ5RG5XI.js +72 -0
  107. package/dist/chunk-J2XP7VRG.js +1080 -0
  108. package/dist/chunk-JHIMVLB2.js +42 -0
  109. package/dist/chunk-JKXAL7WR.js +92 -0
  110. package/dist/chunk-JRTZWK77.js +1764 -0
  111. package/dist/chunk-JVBLYMY2.js +268 -0
  112. package/dist/chunk-JXP5YZ77.js +86 -0
  113. package/dist/chunk-KAZ5BYTQ.js +132 -0
  114. package/dist/chunk-KHHY7EEM.js +267 -0
  115. package/dist/chunk-LAVHRER2.js +17 -0
  116. package/dist/chunk-LQSLDDPT.js +67 -0
  117. package/dist/chunk-LWVBKUUL.js +77 -0
  118. package/dist/chunk-LYUCDASZ.js +115 -0
  119. package/dist/chunk-LZ7QV42C.js +37 -0
  120. package/dist/chunk-MAEP2UCK.js +110 -0
  121. package/dist/chunk-MG4GKUJW.js +31 -0
  122. package/dist/chunk-N2TQXB44.js +1280 -0
  123. package/dist/chunk-N3T24SEK.js +32 -0
  124. package/dist/chunk-NANYVBFI.js +106 -0
  125. package/dist/chunk-NCMUZ6BQ.js +0 -0
  126. package/dist/chunk-NCYTM57J.js +160 -0
  127. package/dist/chunk-NX26QE2O.js +47 -0
  128. package/dist/chunk-NYDJTWRL.js +389 -0
  129. package/dist/chunk-O5LRZEG6.js +253 -0
  130. package/dist/chunk-O6PRBSFL.js +115 -0
  131. package/dist/chunk-OJCDB3N5.js +539 -0
  132. package/dist/chunk-OSFOX7MG.js +176 -0
  133. package/dist/chunk-OVPAOBZB.js +110 -0
  134. package/dist/chunk-PADOWAXM.js +118 -0
  135. package/dist/chunk-PHOCVOZ5.js +9 -0
  136. package/dist/chunk-PKBMQBKP.js +7 -0
  137. package/dist/chunk-PLSJ74T2.js +298 -0
  138. package/dist/chunk-PVZBDWLK.js +41 -0
  139. package/dist/chunk-PWZKFTJS.js +247 -0
  140. package/dist/chunk-PXYDR7WQ.js +48 -0
  141. package/dist/chunk-PYQJ5N25.js +191 -0
  142. package/dist/chunk-Q4UVXS46.js +14 -0
  143. package/dist/chunk-QDPLZDMX.js +17 -0
  144. package/dist/chunk-QSGR43JM.js +30 -0
  145. package/dist/chunk-QUNDGPF7.js +92801 -0
  146. package/dist/chunk-R65A4P4H.js +136 -0
  147. package/dist/chunk-RE7YXVFG.js +128 -0
  148. package/dist/chunk-RETT6WME.js +37 -0
  149. package/dist/chunk-RHKRREUU.js +15 -0
  150. package/dist/chunk-RIILGKYR.js +32 -0
  151. package/dist/chunk-RM5RSDYP.js +353 -0
  152. package/dist/chunk-RNC4NFVK.js +170 -0
  153. package/dist/chunk-RSMZHZI2.js +2078 -0
  154. package/dist/chunk-RXM4B6HR.js +8 -0
  155. package/dist/chunk-S2WEYEQR.js +14 -0
  156. package/dist/chunk-S3PQKKNV.js +49 -0
  157. package/dist/chunk-S5GQ2SES.js +276 -0
  158. package/dist/chunk-SECZTXSU.js +31 -0
  159. package/dist/chunk-SI4ALL7W.js +180 -0
  160. package/dist/chunk-SID3COTK.js +21 -0
  161. package/dist/chunk-SMQT3ZNO.js +8 -0
  162. package/dist/chunk-SOZMJA7V.js +61 -0
  163. package/dist/chunk-TG3TCIL6.js +207 -0
  164. package/dist/chunk-THHRRYRS.js +16 -0
  165. package/dist/chunk-TKGWSUEI.js +0 -0
  166. package/dist/chunk-TTFCO5HU.js +173 -0
  167. package/dist/chunk-TXEPCJEQ.js +430 -0
  168. package/dist/chunk-U2EI2ZLM.js +32 -0
  169. package/dist/chunk-U2ZFCAPX.js +34 -0
  170. package/dist/chunk-U3X4DNV6.js +179 -0
  171. package/dist/chunk-UXKKD4AD.js +437 -0
  172. package/dist/chunk-UYJ65N46.js +261 -0
  173. package/dist/chunk-VDWGP2U6.js +71 -0
  174. package/dist/chunk-VGJTARSA.js +89 -0
  175. package/dist/chunk-VHMGJUYN.js +28 -0
  176. package/dist/chunk-VKC3XKFF.js +283 -0
  177. package/dist/chunk-VKOE5J66.js +31 -0
  178. package/dist/chunk-VOHEQ7B5.js +31 -0
  179. package/dist/chunk-VW56KWO2.js +9 -0
  180. package/dist/chunk-W4KHJ4D6.js +74 -0
  181. package/dist/chunk-W6Y3PPU5.js +73 -0
  182. package/dist/chunk-W6ZVQJYB.js +311 -0
  183. package/dist/chunk-WA3IVAUC.js +123 -0
  184. package/dist/chunk-WHTS4G5K.js +1551 -0
  185. package/dist/chunk-WIYFXWRI.js +30 -0
  186. package/dist/chunk-WPFTRRWV.js +455 -0
  187. package/dist/chunk-WQZ4ONQV.js +6 -0
  188. package/dist/chunk-WS652CCV.js +893 -0
  189. package/dist/chunk-XG4PTPRM.js +0 -0
  190. package/dist/chunk-XRNDVICA.js +85 -0
  191. package/dist/chunk-XXZJISPX.js +48 -0
  192. package/dist/chunk-Y224F4UU.js +81 -0
  193. package/dist/chunk-Y3FR5JC7.js +437 -0
  194. package/dist/chunk-Y4VBOHAP.js +111 -0
  195. package/dist/chunk-Y7QKP6QU.js +35 -0
  196. package/dist/chunk-YVCBMOJG.js +50 -0
  197. package/dist/chunk-Z2WPXJ6J.js +146 -0
  198. package/dist/chunk-ZA2KFUFR.js +19 -0
  199. package/dist/chunk-ZEKV7LGF.js +6 -0
  200. package/dist/chunk-ZFFA36DB.js +186 -0
  201. package/dist/chunk-ZPGWTLF2.js +499 -0
  202. package/dist/chunk-ZVT2QSWR.js +263 -0
  203. package/dist/chunk-ZZ7VKT2S.js +4113 -0
  204. package/dist/collections-TREF67TO.js +63 -0
  205. package/dist/configuration-KWAL2QZ5.js +152 -0
  206. package/dist/configuration-RNWBTRAH.js +205 -0
  207. package/dist/create-7UEEO5TM.js +125 -0
  208. package/dist/create-DTCDJMIT.js +634 -0
  209. package/dist/create-DYDRAY6V.js +622 -0
  210. package/dist/create-EJM5C2XP.js +27 -0
  211. package/dist/create-F7OMPGZV.js +853 -0
  212. package/dist/create-G4UJOJJ6.js +69 -0
  213. package/dist/create-IE6MYOIY.js +170 -0
  214. package/dist/create-L23TGTBH.js +225 -0
  215. package/dist/create-LOBCFTCT.js +583 -0
  216. package/dist/create-MKBBF2V3.js +150 -0
  217. package/dist/create-TFDUNJSI.js +163 -0
  218. package/dist/create-TMTZDKII.js +711 -0
  219. package/dist/create-XGF6DB5F.js +239 -0
  220. package/dist/create-YAAK7JQ3.js +1052 -0
  221. package/dist/create-YPCVTXAK.js +194 -0
  222. package/dist/create-ZU362U3B.js +310 -0
  223. package/dist/customers-4QWR5UOL.js +27 -0
  224. package/dist/edit-2QA5BVOY.js +735 -0
  225. package/dist/edit-47I7VVNB.js +167 -0
  226. package/dist/edit-5BUGSOTL.js +255 -0
  227. package/dist/edit-7LQATDUD.js +193 -0
  228. package/dist/edit-AQAPYMDY.js +260 -0
  229. package/dist/edit-BQLSTFTQ.js +138 -0
  230. package/dist/edit-BYXHU3IG.js +308 -0
  231. package/dist/edit-DG3MY3ZH.js +244 -0
  232. package/dist/edit-J3LD76JS.js +192 -0
  233. package/dist/edit-J6WCPHDS.js +205 -0
  234. package/dist/edit-KCZVZLSZ.js +131 -0
  235. package/dist/edit-LOKLQGM2.js +181 -0
  236. package/dist/edit-MDTTTB33.js +104 -0
  237. package/dist/edit-NFSU2K3O.js +413 -0
  238. package/dist/edit-RHNZWNXD.js +89 -0
  239. package/dist/edit-XU33IVZH.js +204 -0
  240. package/dist/edit-ZMINDMGM.js +116 -0
  241. package/dist/edit-budget-Z5USV462.js +145 -0
  242. package/dist/edit-inventory-item-YFW2AFRD.js +128 -0
  243. package/dist/edit-inventory-item-attributes-IYAMJDTB.js +278 -0
  244. package/dist/fulfillment-SKXAF3BZ.js +545 -0
  245. package/dist/fulfillment-providers-ACERVITQ.js +279 -0
  246. package/dist/home-PP7YYCSB.js +16 -0
  247. package/dist/index.css +6 -0
  248. package/dist/index.d.ts +39 -0
  249. package/dist/index.js +3656 -0
  250. package/dist/inventory-AIRQ2KNS.js +26 -0
  251. package/dist/locations-SQKM7JWN.js +23 -0
  252. package/dist/login-LKFCRHXN.js +35 -0
  253. package/dist/manage-locations-4PQS4QY7.js +195 -0
  254. package/dist/media-PL477QJO.js +703 -0
  255. package/dist/metadata-42MU3H7T.js +60 -0
  256. package/dist/metadata-DIJTVDF7.js +45 -0
  257. package/dist/metadata-NX3LEEB3.js +64 -0
  258. package/dist/metadata-RBDSM567.js +65 -0
  259. package/dist/metadata-VZTWNZPG.js +66 -0
  260. package/dist/metadata-X3XGQ563.js +67 -0
  261. package/dist/no-match-BO2NNLCM.js +33 -0
  262. package/dist/orders-2KHCHNO5.js +59 -0
  263. package/dist/organization-VQXCKHCN.js +233 -0
  264. package/dist/organize-3F5ZUIGB.js +23 -0
  265. package/dist/organize-WPWEPCF7.js +23 -0
  266. package/dist/pages/index.d.ts +1153 -0
  267. package/dist/pages/index.js +198 -0
  268. package/dist/payouts-3BY73LZ3.js +27 -0
  269. package/dist/price-lists-G256JJN7.js +34 -0
  270. package/dist/prices-EW7KBY6R.js +269 -0
  271. package/dist/pricing-3PUJDOZN.js +313 -0
  272. package/dist/product-tags-PI3RENEX.js +80 -0
  273. package/dist/product-types-WJPLJI7H.js +32 -0
  274. package/dist/product-variant-detail-EYTE7PHL.js +377 -0
  275. package/dist/product-variant-edit-PW7W5J5E.js +402 -0
  276. package/dist/products-GSN4I7BT.js +272 -0
  277. package/dist/products-RFYNEY57.js +85 -0
  278. package/dist/promotions-CIZIDQ64.js +31 -0
  279. package/dist/reset-password-OFUSH363.js +299 -0
  280. package/dist/return-reasons-4V2KVSRI.js +52 -0
  281. package/dist/sales-channels-MBWVM3X2.js +184 -0
  282. package/dist/sales-channels-ZKA62EAW.js +156 -0
  283. package/dist/seller-ZFDLKF5Y.js +36 -0
  284. package/dist/settings-NP2IAID5.js +111 -0
  285. package/dist/shipping-profile-7FTHSPY2.js +145 -0
  286. package/dist/shipping-profiles-7R6L65WG.js +43 -0
  287. package/dist/stock-ENMBCZRY.js +502 -0
  288. package/dist/stock-VYDJY46S.js +278 -0
  289. package/dist/tax-regions-V6G6244H.js +87 -0
  290. package/package.json +87 -0
@@ -0,0 +1,363 @@
1
+ // src/components/inputs/combobox/combobox.tsx
2
+ import {
3
+ Combobox as PrimitiveCombobox,
4
+ ComboboxDisclosure as PrimitiveComboboxDisclosure,
5
+ ComboboxItem as PrimitiveComboboxItem,
6
+ ComboboxItemCheck as PrimitiveComboboxItemCheck,
7
+ ComboboxItemValue as PrimitiveComboboxItemValue,
8
+ ComboboxPopover as PrimitiveComboboxPopover,
9
+ ComboboxProvider as PrimitiveComboboxProvider,
10
+ Separator as PrimitiveSeparator
11
+ } from "@ariakit/react";
12
+ import {
13
+ CheckMini,
14
+ EllipseMiniSolid,
15
+ PlusMini,
16
+ TrianglesMini,
17
+ XMarkMini
18
+ } from "@medusajs/icons";
19
+ import { clx, Text } from "@medusajs/ui";
20
+ import { matchSorter } from "match-sorter";
21
+ import {
22
+ Fragment,
23
+ useCallback,
24
+ useDeferredValue,
25
+ useImperativeHandle,
26
+ useMemo,
27
+ useRef,
28
+ useState,
29
+ useTransition
30
+ } from "react";
31
+ import { useTranslation } from "react-i18next";
32
+
33
+ // src/components/utilities/generic-forward-ref/generic-forward-ref.tsx
34
+ import { forwardRef } from "react";
35
+ function genericForwardRef(render) {
36
+ return forwardRef(render);
37
+ }
38
+
39
+ // src/components/inputs/combobox/combobox.tsx
40
+ import { jsx, jsxs } from "react/jsx-runtime";
41
+ var TABLUAR_NUM_WIDTH = 8;
42
+ var TAG_BASE_WIDTH = 28;
43
+ var ComboboxImpl = ({
44
+ value: controlledValue,
45
+ onChange,
46
+ searchValue: controlledSearchValue,
47
+ onSearchValueChange,
48
+ options,
49
+ className,
50
+ placeholder,
51
+ fetchNextPage,
52
+ isFetchingNextPage,
53
+ onCreateOption,
54
+ noResultsPlaceholder,
55
+ allowClear,
56
+ forceHideInput,
57
+ ...inputProps
58
+ }, ref) => {
59
+ const [open, setOpen] = useState(false);
60
+ const [isPending, startTransition] = useTransition();
61
+ const { t } = useTranslation();
62
+ const comboboxRef = useRef(null);
63
+ const listboxRef = useRef(null);
64
+ useImperativeHandle(ref, () => comboboxRef.current);
65
+ const isValueControlled = controlledValue !== void 0;
66
+ const isSearchControlled = controlledSearchValue !== void 0;
67
+ const isArrayValue = Array.isArray(controlledValue);
68
+ const emptyState = isArrayValue ? [] : "";
69
+ const [uncontrolledSearchValue, setUncontrolledSearchValue] = useState(
70
+ controlledSearchValue || ""
71
+ );
72
+ const defferedSearchValue = useDeferredValue(uncontrolledSearchValue);
73
+ const [uncontrolledValue, setUncontrolledValue] = useState(emptyState);
74
+ const searchValue = isSearchControlled ? controlledSearchValue : uncontrolledSearchValue;
75
+ const selectedValues = isValueControlled ? controlledValue : uncontrolledValue;
76
+ const handleValueChange = (newValues) => {
77
+ const exists = options.filter((o) => !o.disabled).find((o) => {
78
+ if (isArrayValue) {
79
+ return newValues?.includes(o.value);
80
+ }
81
+ return o.value === newValues;
82
+ });
83
+ if (!exists && onCreateOption && newValues) {
84
+ onCreateOption(newValues);
85
+ }
86
+ if (!isValueControlled) {
87
+ setUncontrolledValue(newValues || emptyState);
88
+ }
89
+ if (onChange) {
90
+ onChange(newValues);
91
+ }
92
+ setUncontrolledSearchValue("");
93
+ };
94
+ const handleSearchChange = (query) => {
95
+ setUncontrolledSearchValue(query);
96
+ if (onSearchValueChange) {
97
+ onSearchValueChange(query);
98
+ }
99
+ };
100
+ const matches = useMemo(() => {
101
+ if (isSearchControlled) {
102
+ return [];
103
+ }
104
+ if (forceHideInput) {
105
+ return options;
106
+ }
107
+ return matchSorter(options, defferedSearchValue, {
108
+ keys: ["label"]
109
+ });
110
+ }, [options, defferedSearchValue, isSearchControlled, forceHideInput]);
111
+ const observer = useRef(
112
+ new IntersectionObserver(
113
+ (entries) => {
114
+ const first = entries[0];
115
+ if (first.isIntersecting) {
116
+ fetchNextPage?.();
117
+ }
118
+ },
119
+ { threshold: 1 }
120
+ )
121
+ );
122
+ const lastOptionRef = useCallback(
123
+ (node) => {
124
+ if (isFetchingNextPage) {
125
+ return;
126
+ }
127
+ if (observer.current) {
128
+ observer.current.disconnect();
129
+ }
130
+ if (node) {
131
+ observer.current.observe(node);
132
+ }
133
+ },
134
+ [isFetchingNextPage]
135
+ );
136
+ const handleOpenChange = (open2) => {
137
+ if (!open2) {
138
+ setUncontrolledSearchValue("");
139
+ }
140
+ setOpen(open2);
141
+ };
142
+ const hasValue = selectedValues?.length > 0;
143
+ const showTag = hasValue && isArrayValue;
144
+ const showSelected = showTag && !searchValue && !open;
145
+ const hideInput = forceHideInput || !isArrayValue && hasValue && !open;
146
+ const selectedLabel = options.find((o) => o.value === selectedValues)?.label;
147
+ const hidePlaceholder = showSelected || open;
148
+ const tagWidth = useMemo(() => {
149
+ if (!Array.isArray(selectedValues)) {
150
+ return TAG_BASE_WIDTH + TABLUAR_NUM_WIDTH;
151
+ }
152
+ const count = selectedValues.length;
153
+ const digits = count.toString().length;
154
+ return TAG_BASE_WIDTH + digits * TABLUAR_NUM_WIDTH;
155
+ }, [selectedValues]);
156
+ const results = useMemo(() => {
157
+ return isSearchControlled ? options : matches;
158
+ }, [matches, options, isSearchControlled]);
159
+ return /* @__PURE__ */ jsxs(
160
+ PrimitiveComboboxProvider,
161
+ {
162
+ open,
163
+ setOpen: handleOpenChange,
164
+ selectedValue: selectedValues,
165
+ setSelectedValue: (value) => handleValueChange(value),
166
+ value: uncontrolledSearchValue,
167
+ setValue: (query) => {
168
+ startTransition(() => handleSearchChange(query));
169
+ },
170
+ children: [
171
+ /* @__PURE__ */ jsxs(
172
+ "div",
173
+ {
174
+ className: clx(
175
+ "relative flex cursor-pointer items-center gap-x-2 overflow-hidden",
176
+ "h-8 w-full rounded-md",
177
+ "bg-ui-bg-field transition-fg shadow-borders-base",
178
+ "has-[input:focus]:shadow-borders-interactive-with-active",
179
+ "has-[:invalid]:shadow-borders-error has-[[aria-invalid=true]]:shadow-borders-error",
180
+ "has-[:disabled]:bg-ui-bg-disabled has-[:disabled]:text-ui-fg-disabled has-[:disabled]:cursor-not-allowed",
181
+ className
182
+ ),
183
+ style: {
184
+ "--tag-width": `${tagWidth}px`
185
+ },
186
+ children: [
187
+ showTag && /* @__PURE__ */ jsxs(
188
+ "button",
189
+ {
190
+ type: "button",
191
+ onClick: (e) => {
192
+ e.preventDefault();
193
+ handleValueChange(isArrayValue ? [] : void 0);
194
+ },
195
+ className: "bg-ui-bg-base hover:bg-ui-bg-base-hover txt-compact-small-plus text-ui-fg-subtle focus-within:border-ui-fg-interactive transition-fg absolute start-0.5 top-0.5 z-[1] flex h-[28px] items-center rounded-[4px] border py-[3px] pe-1 ps-1.5 outline-none",
196
+ children: [
197
+ /* @__PURE__ */ jsx("span", { className: "tabular-nums", children: selectedValues.length }),
198
+ /* @__PURE__ */ jsx(XMarkMini, { className: "text-ui-fg-muted" })
199
+ ]
200
+ }
201
+ ),
202
+ /* @__PURE__ */ jsxs("div", { className: "relative flex size-full items-center", children: [
203
+ showSelected && /* @__PURE__ */ jsx(
204
+ "div",
205
+ {
206
+ className: clx(
207
+ "pointer-events-none absolute inset-y-0 flex size-full items-center",
208
+ {
209
+ "start-[calc(var(--tag-width)+8px)]": showTag,
210
+ "start-2": !showTag
211
+ }
212
+ ),
213
+ children: /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", children: t("general.selected") })
214
+ }
215
+ ),
216
+ hideInput && /* @__PURE__ */ jsx(
217
+ "div",
218
+ {
219
+ className: clx(
220
+ "pointer-events-none absolute inset-y-0 flex size-full items-center overflow-hidden",
221
+ {
222
+ "start-[calc(var(--tag-width)+8px)]": showTag,
223
+ "start-2": !showTag
224
+ }
225
+ ),
226
+ children: /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", className: "truncate", children: selectedLabel })
227
+ }
228
+ ),
229
+ /* @__PURE__ */ jsx(
230
+ PrimitiveCombobox,
231
+ {
232
+ autoSelect: true,
233
+ ref: comboboxRef,
234
+ onFocus: () => setOpen(true),
235
+ className: clx(
236
+ "txt-compact-small text-ui-fg-base !placeholder:text-ui-fg-muted transition-fg size-full cursor-pointer bg-transparent pe-8 ps-2 outline-none focus:cursor-text",
237
+ "hover:bg-ui-bg-field-hover",
238
+ {
239
+ "opacity-0": hideInput,
240
+ "ps-2": !showTag,
241
+ "ps-[calc(var(--tag-width)+8px)]": showTag
242
+ }
243
+ ),
244
+ placeholder: hidePlaceholder ? void 0 : placeholder,
245
+ ...inputProps
246
+ }
247
+ )
248
+ ] }),
249
+ allowClear && controlledValue && /* @__PURE__ */ jsx(
250
+ "button",
251
+ {
252
+ type: "button",
253
+ onClick: (e) => {
254
+ e.preventDefault();
255
+ handleValueChange(void 0);
256
+ },
257
+ className: "bg-ui-bg-base hover:bg-ui-bg-base-hover txt-compact-small-plus text-ui-fg-subtle focus-within:border-ui-fg-interactive transition-fg absolute end-[28px] top-0.5 z-[1] flex h-[28px] items-center rounded-[4px] border px-1.5 py-[2px] outline-none",
258
+ children: /* @__PURE__ */ jsx(XMarkMini, { className: "text-ui-fg-muted" })
259
+ }
260
+ ),
261
+ /* @__PURE__ */ jsx(
262
+ PrimitiveComboboxDisclosure,
263
+ {
264
+ render: (props) => {
265
+ return /* @__PURE__ */ jsx(
266
+ "button",
267
+ {
268
+ ...props,
269
+ type: "button",
270
+ className: "text-ui-fg-muted transition-fg hover:bg-ui-bg-field-hover absolute end-0 flex size-8 items-center justify-center rounded-r outline-none",
271
+ children: /* @__PURE__ */ jsx(TrianglesMini, {})
272
+ }
273
+ );
274
+ }
275
+ }
276
+ )
277
+ ]
278
+ }
279
+ ),
280
+ /* @__PURE__ */ jsxs(
281
+ PrimitiveComboboxPopover,
282
+ {
283
+ gutter: 4,
284
+ sameWidth: true,
285
+ ref: listboxRef,
286
+ role: "listbox",
287
+ className: clx(
288
+ "shadow-elevation-flyout bg-ui-bg-base z-50 rounded-[8px] p-1",
289
+ "max-h-[200px] overflow-y-auto",
290
+ "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
291
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
292
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=start]:slide-in-from-end-2 data-[side=end]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2"
293
+ ),
294
+ style: {
295
+ pointerEvents: open ? "auto" : "none"
296
+ },
297
+ "aria-busy": isPending,
298
+ children: [
299
+ results.map(({ value, label, disabled }) => /* @__PURE__ */ jsxs(
300
+ PrimitiveComboboxItem,
301
+ {
302
+ value,
303
+ focusOnHover: true,
304
+ setValueOnClick: false,
305
+ disabled,
306
+ className: clx(
307
+ "transition-fg bg-ui-bg-base data-[active-item=true]:bg-ui-bg-base-hover group flex cursor-pointer items-center gap-x-2 rounded-[4px] px-2 py-1",
308
+ {
309
+ "text-ui-fg-disabled": disabled,
310
+ "bg-ui-bg-component": disabled
311
+ }
312
+ ),
313
+ children: [
314
+ /* @__PURE__ */ jsx(PrimitiveComboboxItemCheck, { className: "flex !size-5 items-center justify-center", children: isArrayValue ? /* @__PURE__ */ jsx(CheckMini, {}) : /* @__PURE__ */ jsx(EllipseMiniSolid, {}) }),
315
+ /* @__PURE__ */ jsx(PrimitiveComboboxItemValue, { className: "txt-compact-small", children: label })
316
+ ]
317
+ },
318
+ value
319
+ )),
320
+ !!fetchNextPage && /* @__PURE__ */ jsx("div", { ref: lastOptionRef, className: "w-px" }),
321
+ isFetchingNextPage && /* @__PURE__ */ jsx("div", { className: "transition-fg bg-ui-bg-base flex items-center rounded-[4px] px-2 py-1.5", children: /* @__PURE__ */ jsx("div", { className: "bg-ui-bg-component size-full h-5 w-full animate-pulse rounded-[4px]" }) }),
322
+ !results.length && (noResultsPlaceholder && !searchValue?.length ? noResultsPlaceholder : /* @__PURE__ */ jsx("div", { className: "flex items-center gap-x-2 rounded-[4px] px-2 py-1.5", children: /* @__PURE__ */ jsx(
323
+ Text,
324
+ {
325
+ size: "small",
326
+ leading: "compact",
327
+ className: "text-ui-fg-subtle",
328
+ children: t("general.noResultsTitle")
329
+ }
330
+ ) })),
331
+ !results.length && onCreateOption && /* @__PURE__ */ jsxs(Fragment, { children: [
332
+ /* @__PURE__ */ jsx(PrimitiveSeparator, { className: "bg-ui-border-base -mx-1" }),
333
+ /* @__PURE__ */ jsxs(
334
+ PrimitiveComboboxItem,
335
+ {
336
+ value: uncontrolledSearchValue,
337
+ focusOnHover: true,
338
+ setValueOnClick: false,
339
+ className: "transition-fg bg-ui-bg-base data-[active-item=true]:bg-ui-bg-base-hover group mt-1 flex cursor-pointer items-center gap-x-2 rounded-[4px] px-2 py-1.5",
340
+ children: [
341
+ /* @__PURE__ */ jsx(PlusMini, { className: "text-ui-fg-subtle" }),
342
+ /* @__PURE__ */ jsxs(Text, { size: "small", leading: "compact", children: [
343
+ t("actions.create"),
344
+ ' "',
345
+ searchValue,
346
+ '"'
347
+ ] })
348
+ ]
349
+ }
350
+ )
351
+ ] })
352
+ ]
353
+ }
354
+ )
355
+ ]
356
+ }
357
+ );
358
+ };
359
+ var Combobox = genericForwardRef(ComboboxImpl);
360
+
361
+ export {
362
+ Combobox
363
+ };
@@ -0,0 +1,84 @@
1
+ import {
2
+ StatusCell
3
+ } from "./chunk-XXZJISPX.js";
4
+ import {
5
+ TextCell,
6
+ TextHeader
7
+ } from "./chunk-JHIMVLB2.js";
8
+ import {
9
+ useQueryParams
10
+ } from "./chunk-THHRRYRS.js";
11
+
12
+ // src/hooks/table/query/use-promotion-table-query.tsx
13
+ var usePromotionTableQuery = ({
14
+ prefix,
15
+ pageSize = 20
16
+ }) => {
17
+ const queryObject = useQueryParams(
18
+ ["offset", "q", "order", "created_at", "updated_at"],
19
+ prefix
20
+ );
21
+ const { offset, q, order, created_at, updated_at } = queryObject;
22
+ const searchParams = {
23
+ limit: pageSize,
24
+ created_at: created_at ? JSON.parse(created_at) : void 0,
25
+ updated_at: updated_at ? JSON.parse(updated_at) : void 0,
26
+ offset: offset ? Number(offset) : 0,
27
+ order,
28
+ q
29
+ };
30
+ return {
31
+ searchParams,
32
+ raw: queryObject
33
+ };
34
+ };
35
+
36
+ // src/hooks/table/columns/use-promotion-table-columns.tsx
37
+ import { createColumnHelper } from "@tanstack/react-table";
38
+ import { useMemo } from "react";
39
+ import { useTranslation } from "react-i18next";
40
+
41
+ // src/components/table/table-cells/common/code-cell/code-cell.tsx
42
+ import { Badge } from "@medusajs/ui";
43
+ import { jsx } from "react/jsx-runtime";
44
+ var CodeCell = ({ code }) => {
45
+ return /* @__PURE__ */ jsx("div", { className: "flex h-full w-full items-center gap-x-3 overflow-hidden", children: /* @__PURE__ */ jsx(Badge, { size: "2xsmall", className: "truncate", children: code }) });
46
+ };
47
+ var CodeHeader = ({ text }) => {
48
+ return /* @__PURE__ */ jsx("div", { className: " flex h-full w-full items-center ", children: /* @__PURE__ */ jsx("span", { children: text }) });
49
+ };
50
+
51
+ // src/hooks/table/columns/use-promotion-table-columns.tsx
52
+ import { jsx as jsx2 } from "react/jsx-runtime";
53
+ var columnHelper = createColumnHelper();
54
+ var usePromotionTableColumns = () => {
55
+ const { t } = useTranslation();
56
+ return useMemo(
57
+ () => [
58
+ columnHelper.display({
59
+ id: "code",
60
+ header: () => /* @__PURE__ */ jsx2(CodeHeader, { text: t("fields.code") }),
61
+ cell: ({ row }) => /* @__PURE__ */ jsx2(CodeCell, { code: row.original.code })
62
+ }),
63
+ columnHelper.display({
64
+ id: "method",
65
+ header: () => /* @__PURE__ */ jsx2(TextHeader, { text: t("promotions.fields.method") }),
66
+ cell: ({ row }) => {
67
+ const text = row.original.is_automatic ? t("promotions.form.method.automatic.title") : t("promotions.form.method.code.title");
68
+ return /* @__PURE__ */ jsx2(TextCell, { text });
69
+ }
70
+ }),
71
+ columnHelper.display({
72
+ id: "status",
73
+ header: () => /* @__PURE__ */ jsx2(TextHeader, { text: t("fields.status") }),
74
+ cell: ({ row }) => /* @__PURE__ */ jsx2(StatusCell, { promotion: row.original })
75
+ })
76
+ ],
77
+ [t]
78
+ );
79
+ };
80
+
81
+ export {
82
+ usePromotionTableColumns,
83
+ usePromotionTableQuery
84
+ };
@@ -0,0 +1,31 @@
1
+ import {
2
+ useQueryParams
3
+ } from "./chunk-THHRRYRS.js";
4
+
5
+ // src/hooks/table/query/use-tax-region-table-query.tsx
6
+ var useTaxRegionTableQuery = ({
7
+ prefix,
8
+ pageSize = 20
9
+ }) => {
10
+ const queryObject = useQueryParams(
11
+ ["offset", "q", "order", "created_at", "updated_at"],
12
+ prefix
13
+ );
14
+ const { offset, q, order, created_at, updated_at } = queryObject;
15
+ const searchParams = {
16
+ limit: pageSize,
17
+ offset: offset ? Number(offset) : 0,
18
+ order,
19
+ created_at: created_at ? JSON.parse(created_at) : void 0,
20
+ updated_at: updated_at ? JSON.parse(updated_at) : void 0,
21
+ q
22
+ };
23
+ return {
24
+ searchParams,
25
+ raw: queryObject
26
+ };
27
+ };
28
+
29
+ export {
30
+ useTaxRegionTableQuery
31
+ };
@@ -0,0 +1,160 @@
1
+ import {
2
+ useCustomerTableColumns
3
+ } from "./chunk-NANYVBFI.js";
4
+ import {
5
+ useCustomerTableQuery
6
+ } from "./chunk-PVZBDWLK.js";
7
+ import {
8
+ useCustomerTableFilters
9
+ } from "./chunk-SOZMJA7V.js";
10
+ import {
11
+ _DataTable,
12
+ useDataTable
13
+ } from "./chunk-WHTS4G5K.js";
14
+ import {
15
+ SingleColumnPage
16
+ } from "./chunk-RM5RSDYP.js";
17
+ import {
18
+ useCustomers
19
+ } from "./chunk-PADOWAXM.js";
20
+
21
+ // src/pages/customers/customer-list-page.tsx
22
+ import { Children as Children3 } from "react";
23
+
24
+ // src/pages/customers/_components/customer-list-table/customer-list-table.tsx
25
+ import { Children as Children2 } from "react";
26
+ import { Container } from "@medusajs/ui";
27
+ import { Outlet } from "react-router-dom";
28
+
29
+ // src/pages/customers/_components/customer-list-table/customer-list-header.tsx
30
+ import { Children } from "react";
31
+ import { useTranslation } from "react-i18next";
32
+ import { Heading } from "@medusajs/ui";
33
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
34
+ var CustomerListTitle = () => {
35
+ const { t } = useTranslation();
36
+ return /* @__PURE__ */ jsx(Heading, { children: t("customers.domain") });
37
+ };
38
+ var CustomerListActions = ({
39
+ children
40
+ }) => {
41
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center gap-x-2", children: Children.count(children) > 0 ? children : null });
42
+ };
43
+ var CustomerListHeader = ({
44
+ children
45
+ }) => {
46
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between px-6 py-4", children: Children.count(children) > 0 ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
47
+ /* @__PURE__ */ jsx(CustomerListTitle, {}),
48
+ /* @__PURE__ */ jsx(CustomerListActions, {})
49
+ ] }) });
50
+ };
51
+
52
+ // src/pages/customers/_components/customer-list-table/customer-list-data-table.tsx
53
+ import { keepPreviousData } from "@tanstack/react-query";
54
+ import { useMemo } from "react";
55
+ import { useTranslation as useTranslation2 } from "react-i18next";
56
+ import { jsx as jsx2 } from "react/jsx-runtime";
57
+ var PAGE_SIZE = 20;
58
+ var CustomerListDataTable = () => {
59
+ const { t } = useTranslation2();
60
+ const { searchParams, raw } = useCustomerTableQuery({
61
+ pageSize: PAGE_SIZE
62
+ });
63
+ const { customers, count, isLoading, isError, error } = useCustomers(
64
+ {
65
+ offset: searchParams.offset,
66
+ limit: searchParams.limit
67
+ },
68
+ {
69
+ placeholderData: keepPreviousData
70
+ },
71
+ {
72
+ has_account: searchParams.has_account,
73
+ order: searchParams.order,
74
+ q: searchParams.q
75
+ }
76
+ );
77
+ const filters = useCustomerTableFilters();
78
+ const columns = useColumns();
79
+ const { table } = useDataTable({
80
+ data: customers ?? [],
81
+ columns,
82
+ count,
83
+ enablePagination: true,
84
+ getRowId: (row) => row.id,
85
+ pageSize: PAGE_SIZE
86
+ });
87
+ if (isError) {
88
+ throw error;
89
+ }
90
+ return /* @__PURE__ */ jsx2(
91
+ _DataTable,
92
+ {
93
+ table,
94
+ columns,
95
+ pageSize: PAGE_SIZE,
96
+ count,
97
+ filters,
98
+ orderBy: [
99
+ { key: "email", label: t("fields.email") },
100
+ {
101
+ key: "first_name",
102
+ label: t("fields.firstName")
103
+ },
104
+ { key: "last_name", label: t("fields.lastName") },
105
+ {
106
+ key: "has_account",
107
+ label: t("customers.hasAccount")
108
+ },
109
+ {
110
+ key: "created_at",
111
+ label: t("fields.createdAt")
112
+ },
113
+ {
114
+ key: "updated_at",
115
+ label: t("fields.updatedAt")
116
+ }
117
+ ],
118
+ isLoading,
119
+ navigateTo: (row) => row.original.id,
120
+ queryObject: raw,
121
+ search: true,
122
+ noRecords: {
123
+ message: t("customers.list.noRecordsMessage")
124
+ }
125
+ }
126
+ );
127
+ };
128
+ var useColumns = () => {
129
+ const columns = useCustomerTableColumns();
130
+ return useMemo(() => [...columns], [columns]);
131
+ };
132
+
133
+ // src/pages/customers/_components/customer-list-table/customer-list-table.tsx
134
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
135
+ var CustomerListTable = ({ children }) => {
136
+ return /* @__PURE__ */ jsxs2(Container, { className: "divide-y p-0", children: [
137
+ Children2.count(children) > 0 ? children : /* @__PURE__ */ jsxs2(Fragment2, { children: [
138
+ /* @__PURE__ */ jsx3(CustomerListHeader, {}),
139
+ /* @__PURE__ */ jsx3(CustomerListDataTable, {})
140
+ ] }),
141
+ /* @__PURE__ */ jsx3(Outlet, {})
142
+ ] });
143
+ };
144
+
145
+ // src/pages/customers/customer-list-page.tsx
146
+ import { jsx as jsx4 } from "react/jsx-runtime";
147
+ var Root = ({ children }) => {
148
+ return /* @__PURE__ */ jsx4(SingleColumnPage, { children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx4(CustomerListTable, {}) });
149
+ };
150
+ var CustomerListPage = Object.assign(Root, {
151
+ Table: CustomerListTable,
152
+ Header: CustomerListHeader,
153
+ HeaderTitle: CustomerListTitle,
154
+ HeaderActions: CustomerListActions,
155
+ DataTable: CustomerListDataTable
156
+ });
157
+
158
+ export {
159
+ CustomerListPage
160
+ };
@@ -0,0 +1,18 @@
1
+ // src/pages/settings/locations/_common/constants.ts
2
+ var ShippingOptionPriceType = /* @__PURE__ */ ((ShippingOptionPriceType2) => {
3
+ ShippingOptionPriceType2["FlatRate"] = "flat";
4
+ ShippingOptionPriceType2["Calculated"] = "calculated";
5
+ return ShippingOptionPriceType2;
6
+ })(ShippingOptionPriceType || {});
7
+ var GEO_ZONE_STACKED_MODAL_ID = "geo-zone";
8
+ var CONDITIONAL_PRICES_STACKED_MODAL_ID = "conditional-prices";
9
+ var ITEM_TOTAL_ATTRIBUTE = "item_total";
10
+ var REGION_ID_ATTRIBUTE = "region_id";
11
+
12
+ export {
13
+ ShippingOptionPriceType,
14
+ GEO_ZONE_STACKED_MODAL_ID,
15
+ CONDITIONAL_PRICES_STACKED_MODAL_ID,
16
+ ITEM_TOTAL_ATTRIBUTE,
17
+ REGION_ID_ATTRIBUTE
18
+ };