@mercurjs/vendor 2.1.0-canary.6 → 2.1.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 (27) hide show
  1. package/dist/{[id]-JFIRCPSU.js → [id]-5Y3RKUP5.js} +2 -2
  2. package/dist/{[id]-FDQKYXM4.js → [id]-EENMQYUJ.js} +3 -3
  3. package/dist/{add-LXPUKGJB.js → add-QWM4G35U.js} +2 -2
  4. package/dist/{add-promotions-4B5LIBOH.js → add-promotions-VXRVFK5G.js} +3 -3
  5. package/dist/{chunk-DQJV54JW.js → chunk-6J5FJYIK.js} +1 -1
  6. package/dist/{chunk-XIEEWPAS.js → chunk-7L4BLGGR.js} +1 -1
  7. package/dist/{chunk-AICNTTYI.js → chunk-CWDADNT7.js} +5 -5
  8. package/dist/{chunk-4K7VMKTY.js → chunk-FIPGFHTT.js} +10 -6
  9. package/dist/{chunk-B6EM2JZ3.js → chunk-GGNNCQLJ.js} +1 -1
  10. package/dist/{chunk-EBBU22VO.js → chunk-RL3DZQR2.js} +1 -1
  11. package/dist/{chunk-GPGY7UXF.js → chunk-XDCJL4LN.js} +1 -1
  12. package/dist/{create-AB7EKAU6.js → create-DUYQTFGO.js} +3 -3
  13. package/dist/{edit-M3W2QYOK.js → edit-3AH3SX32.js} +33 -17
  14. package/dist/{edit-WMJY63W7.js → edit-6NGTXTDK.js} +1 -1
  15. package/dist/{edit-DQUWVHUO.js → edit-GCDQPZY4.js} +1 -1
  16. package/dist/index.css +3 -0
  17. package/dist/index.js +279 -121
  18. package/dist/{login-TNRTA2FS.js → login-LIPPO7J3.js} +1 -1
  19. package/dist/{media-ANAL5H2W.js → media-4IOP6FBP.js} +2 -2
  20. package/dist/pages/index.js +7 -7
  21. package/dist/{payment-details-CUXHWIZQ.js → payment-details-PQZ7B35T.js} +2 -2
  22. package/dist/{products-DCQQT4QJ.js → products-I2ZMMVAP.js} +3 -3
  23. package/dist/{promotions-DB4TBJQW.js → promotions-JEBVGZU5.js} +4 -4
  24. package/dist/{register-CKWROYR3.js → register-J364NNU7.js} +3 -1
  25. package/dist/{reset-password-3RGOOILO.js → reset-password-U7TV7QLM.js} +1 -1
  26. package/dist/{store-S53SGYYE.js → store-JCMKUE4C.js} +0 -6
  27. package/package.json +4 -4
@@ -6,13 +6,13 @@ import {
6
6
  } from "./chunk-BWGPN6XV.js";
7
7
  import {
8
8
  StatusCell
9
- } from "./chunk-EBBU22VO.js";
9
+ } from "./chunk-RL3DZQR2.js";
10
10
  import "./chunk-FMFVTERD.js";
11
11
  import "./chunk-DB6ANJBO.js";
12
12
  import {
13
13
  NoRecords
14
14
  } from "./chunk-3EF54XFY.js";
15
- import "./chunk-4K7VMKTY.js";
15
+ import "./chunk-FIPGFHTT.js";
16
16
  import {
17
17
  TwoColumnPage
18
18
  } from "./chunk-RM5RSDYP.js";
@@ -7,8 +7,8 @@ import {
7
7
  import {
8
8
  usePromotionTableColumns,
9
9
  usePromotionTableQuery
10
- } from "./chunk-B6EM2JZ3.js";
11
- import "./chunk-EBBU22VO.js";
10
+ } from "./chunk-GGNNCQLJ.js";
11
+ import "./chunk-RL3DZQR2.js";
12
12
  import "./chunk-JHIMVLB2.js";
13
13
  import {
14
14
  usePromotionTableFilters
@@ -24,7 +24,7 @@ import {
24
24
  import "./chunk-LYUCDASZ.js";
25
25
  import "./chunk-KAZ5BYTQ.js";
26
26
  import "./chunk-3EF54XFY.js";
27
- import "./chunk-4K7VMKTY.js";
27
+ import "./chunk-FIPGFHTT.js";
28
28
  import {
29
29
  currencies
30
30
  } from "./chunk-IQPN4PZJ.js";
@@ -3,14 +3,14 @@ import {
3
3
  } from "./chunk-I5K5USJM.js";
4
4
  import {
5
5
  ProductCreateOptionSchema
6
- } from "./chunk-XIEEWPAS.js";
6
+ } from "./chunk-7L4BLGGR.js";
7
7
  import "./chunk-IZ5RG5XI.js";
8
8
  import "./chunk-SMQT3ZNO.js";
9
9
  import "./chunk-DLNNTQRY.js";
10
10
  import "./chunk-NCYTM57J.js";
11
11
  import "./chunk-YVCBMOJG.js";
12
12
  import "./chunk-VBRTC2VU.js";
13
- import "./chunk-4K7VMKTY.js";
13
+ import "./chunk-FIPGFHTT.js";
14
14
  import "./chunk-TKGWSUEI.js";
15
15
  import {
16
16
  KeyboundForm
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  usePromotionTableColumns,
3
3
  usePromotionTableQuery
4
- } from "./chunk-B6EM2JZ3.js";
5
- import "./chunk-EBBU22VO.js";
4
+ } from "./chunk-GGNNCQLJ.js";
5
+ import "./chunk-RL3DZQR2.js";
6
6
  import "./chunk-JHIMVLB2.js";
7
7
  import {
8
8
  usePromotionTableFilters
@@ -18,7 +18,7 @@ import {
18
18
  import "./chunk-LYUCDASZ.js";
19
19
  import "./chunk-KAZ5BYTQ.js";
20
20
  import "./chunk-3EF54XFY.js";
21
- import "./chunk-4K7VMKTY.js";
21
+ import "./chunk-FIPGFHTT.js";
22
22
  import "./chunk-TKGWSUEI.js";
23
23
  import {
24
24
  KeyboundForm
@@ -26,7 +26,7 @@ import {
26
26
  PRODUCT_CREATE_FORM_DEFAULTS,
27
27
  ProductCreateSchema,
28
28
  decorateVariantsWithDefaultValues
29
- } from "./chunk-XIEEWPAS.js";
29
+ } from "./chunk-7L4BLGGR.js";
30
30
  import {
31
31
  NumericInput
32
32
  } from "./chunk-DLNNTQRY.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-IZ5RG5XI.js";
5
5
  import {
6
6
  i18n
7
- } from "./chunk-4K7VMKTY.js";
7
+ } from "./chunk-FIPGFHTT.js";
8
8
 
9
9
  // src/pages/products/create/constants.ts
10
10
  import { z } from "zod";
@@ -18,7 +18,7 @@ import {
18
18
  import { Children } from "react";
19
19
  import { zodResolver } from "@hookform/resolvers/zod";
20
20
  import i18n from "i18next";
21
- import { Alert, Button, Heading, Hint, Input, Text } from "@medusajs/ui";
21
+ import { Alert, Button, Heading, Input, Text } from "@medusajs/ui";
22
22
  import { useForm } from "react-hook-form";
23
23
  import { Trans, useTranslation } from "react-i18next";
24
24
  import { Link, useNavigate, useSearchParams } from "react-router-dom";
@@ -90,7 +90,6 @@ var LoginForm = () => {
90
90
  );
91
91
  });
92
92
  const serverError = form.formState.errors?.root?.serverError?.message || reasonMessage;
93
- const validationError = form.formState.errors.email?.message || form.formState.errors.password?.message;
94
93
  return /* @__PURE__ */ jsx(Form, { ...form, children: /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "flex w-full flex-col gap-y-6", children: [
95
94
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-4", children: [
96
95
  /* @__PURE__ */ jsx(
@@ -100,7 +99,8 @@ var LoginForm = () => {
100
99
  name: "email",
101
100
  render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
102
101
  /* @__PURE__ */ jsx(Form.Label, { children: t("fields.email") }),
103
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { autoComplete: "email", ...field }) })
102
+ /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { autoComplete: "email", ...field }) }),
103
+ /* @__PURE__ */ jsx(Form.ErrorMessage, {})
104
104
  ] })
105
105
  }
106
106
  ),
@@ -118,11 +118,11 @@ var LoginForm = () => {
118
118
  autoComplete: "current-password",
119
119
  ...field
120
120
  }
121
- ) })
121
+ ) }),
122
+ /* @__PURE__ */ jsx(Form.ErrorMessage, {})
122
123
  ] })
123
124
  }
124
125
  ),
125
- validationError && /* @__PURE__ */ jsx(Hint, { className: "inline-flex", variant: "error", children: validationError }),
126
126
  serverError && /* @__PURE__ */ jsx(
127
127
  Alert,
128
128
  {
@@ -11469,6 +11469,7 @@ var en_default = {
11469
11469
  handleTooltip: "The handle becomes the URL slug for your store. Leave empty to auto-generate from the name.",
11470
11470
  validation: {
11471
11471
  nameRequired: "Please enter a name",
11472
+ nameTooLong: "Name must be at most 100 characters",
11472
11473
  emailInvalid: "Please enter a valid email"
11473
11474
  },
11474
11475
  profileCompletion: {
@@ -11483,7 +11484,7 @@ var en_default = {
11483
11484
  status: {
11484
11485
  active: "Active",
11485
11486
  pendingApproval: "Pending",
11486
- suspended: "Suspended",
11487
+ suspended: "Inactive",
11487
11488
  terminated: "Terminated"
11488
11489
  },
11489
11490
  alert: {
@@ -11561,11 +11562,13 @@ var en_default = {
11561
11562
  },
11562
11563
  fields: {
11563
11564
  countryCode: "Country",
11564
- holderName: "Account holder",
11565
+ holderName: "Account name",
11565
11566
  bankName: "Bank name",
11566
11567
  iban: "IBAN",
11567
- bic: "BIC / SWIFT",
11568
+ bic: "SWIFT / BIC",
11569
+ swiftBic: "SWIFT / BIC",
11568
11570
  routingNumber: "Routing number",
11571
+ achRoutingNumber: "ACH routing number",
11569
11572
  accountNumber: "Account number"
11570
11573
  },
11571
11574
  validation: {
@@ -11983,8 +11986,8 @@ var en_default = {
11983
11986
  }
11984
11987
  },
11985
11988
  register: {
11986
- title: "Create your vendor account",
11987
- hint: "Start selling on {{name}}.",
11989
+ title: "Join Mercur!",
11990
+ hint: "Enter your details and create a password to set up your admin account.",
11988
11991
  companyName: "Company name",
11989
11992
  confirmPassword: "Confirm password",
11990
11993
  signUp: "Sign up",
@@ -11997,11 +12000,12 @@ var en_default = {
11997
12000
  lastNameRequired: "Please enter your last name",
11998
12001
  emailInvalid: "Please enter a valid email address",
11999
12002
  passwordMinLength: "Password must be at least 8 characters",
12003
+ passwordComplexity: "Password must include one lowercase letter, one uppercase letter, and one number or symbol",
12000
12004
  confirmPasswordRequired: "Please confirm your password"
12001
12005
  },
12002
12006
  firstName: "First name",
12003
12007
  lastName: "Last name",
12004
- passwordHint: "Must be at least 8 characters.",
12008
+ passwordHint: "Your password must include at least 8 characters, one lowercase letter, one uppercase letter, one number or symbol",
12005
12009
  successTitle: "Thank you for registering!",
12006
12010
  successHint: "You may need to wait for admin authorization before logging in. A confirmation email will be sent to you shortly.",
12007
12011
  backToLogin: "Back to login"
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StatusCell
3
- } from "./chunk-EBBU22VO.js";
3
+ } from "./chunk-RL3DZQR2.js";
4
4
  import {
5
5
  TextCell,
6
6
  TextHeader
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-DB6ANJBO.js";
4
4
  import {
5
5
  i18n
6
- } from "./chunk-4K7VMKTY.js";
6
+ } from "./chunk-FIPGFHTT.js";
7
7
 
8
8
  // src/lib/promotions.ts
9
9
  var promotionStatusMap = {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  usePromotionTableColumns,
3
3
  usePromotionTableQuery
4
- } from "./chunk-B6EM2JZ3.js";
4
+ } from "./chunk-GGNNCQLJ.js";
5
5
  import {
6
6
  usePromotionTableFilters
7
7
  } from "./chunk-S2WEYEQR.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ProductCreatePage
3
- } from "./chunk-DQJV54JW.js";
3
+ } from "./chunk-6J5FJYIK.js";
4
4
  import "./chunk-HJ56YXBU.js";
5
5
  import "./chunk-WFE6CT6M.js";
6
6
  import "./chunk-TZTKHOEK.js";
@@ -17,7 +17,7 @@ import {
17
17
  ProductCreateBaseSchema,
18
18
  ProductCreateOptionSchema,
19
19
  ProductCreateSchema
20
- } from "./chunk-XIEEWPAS.js";
20
+ } from "./chunk-7L4BLGGR.js";
21
21
  import "./chunk-IZ5RG5XI.js";
22
22
  import "./chunk-SMQT3ZNO.js";
23
23
  import "./chunk-DLNNTQRY.js";
@@ -25,7 +25,7 @@ import "./chunk-NCYTM57J.js";
25
25
  import "./chunk-YVCBMOJG.js";
26
26
  import "./chunk-VBRTC2VU.js";
27
27
  import "./chunk-LPOAVK6Y.js";
28
- import "./chunk-4K7VMKTY.js";
28
+ import "./chunk-FIPGFHTT.js";
29
29
  import "./chunk-5IWBNPZX.js";
30
30
  import "./chunk-IQPN4PZJ.js";
31
31
  import "./chunk-TKGWSUEI.js";
@@ -6,10 +6,10 @@ import {
6
6
  } from "./chunk-S2Q7PO7I.js";
7
7
  import {
8
8
  MediaSchema
9
- } from "./chunk-XIEEWPAS.js";
9
+ } from "./chunk-7L4BLGGR.js";
10
10
  import "./chunk-IZ5RG5XI.js";
11
11
  import "./chunk-SMQT3ZNO.js";
12
- import "./chunk-4K7VMKTY.js";
12
+ import "./chunk-FIPGFHTT.js";
13
13
  import {
14
14
  currencies
15
15
  } from "./chunk-IQPN4PZJ.js";
@@ -62,14 +62,22 @@ import { useTranslation as useTranslation2 } from "react-i18next";
62
62
  // src/pages/settings/store/edit/_components/edit-store-form.tsx
63
63
  import { zodResolver } from "@hookform/resolvers/zod";
64
64
  import i18n from "i18next";
65
- import { Button, Heading, Input, Select, Textarea, toast } from "@medusajs/ui";
65
+ import {
66
+ Button,
67
+ Heading,
68
+ Input,
69
+ Select,
70
+ Text,
71
+ Textarea,
72
+ toast
73
+ } from "@medusajs/ui";
66
74
  import { useFieldArray, useForm } from "react-hook-form";
67
75
  import { useTranslation } from "react-i18next";
68
76
  import * as zod from "zod";
69
77
  import { useCallback } from "react";
70
78
  import { jsx, jsxs } from "react/jsx-runtime";
71
79
  var EditStoreSchema = zod.object({
72
- name: zod.string().min(1, { message: i18n.t("store.validation.nameRequired") }),
80
+ name: zod.string().trim().min(1, { message: i18n.t("store.validation.nameRequired") }).max(100, { message: i18n.t("store.validation.nameTooLong") }),
73
81
  handle: zod.string().optional().or(zod.literal("")),
74
82
  email: zod.string().email({ message: i18n.t("store.validation.emailInvalid") }).optional().or(zod.literal("")),
75
83
  phone: zod.string().optional().or(zod.literal("")),
@@ -233,10 +241,10 @@ var EditStoreForm = ({ seller }) => {
233
241
  Form.Field,
234
242
  {
235
243
  control: form.control,
236
- name: "handle",
244
+ name: "description",
237
245
  render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
238
- /* @__PURE__ */ jsx(Form.Label, { optional: true, tooltip: t("store.handleTooltip"), children: t("fields.handle") }),
239
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(HandleInput, { ...field }) }),
246
+ /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("fields.description") }),
247
+ /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Textarea, { ...field }) }),
240
248
  /* @__PURE__ */ jsx(Form.ErrorMessage, {})
241
249
  ] })
242
250
  }
@@ -245,10 +253,10 @@ var EditStoreForm = ({ seller }) => {
245
253
  Form.Field,
246
254
  {
247
255
  control: form.control,
248
- name: "email",
256
+ name: "handle",
249
257
  render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
250
- /* @__PURE__ */ jsx(Form.Label, { children: t("fields.email") }),
251
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { type: "email", ...field }) }),
258
+ /* @__PURE__ */ jsx(Form.Label, { optional: true, tooltip: t("store.handleTooltip"), children: t("fields.handle") }),
259
+ /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(HandleInput, { ...field }) }),
252
260
  /* @__PURE__ */ jsx(Form.ErrorMessage, {})
253
261
  ] })
254
262
  }
@@ -257,10 +265,10 @@ var EditStoreForm = ({ seller }) => {
257
265
  Form.Field,
258
266
  {
259
267
  control: form.control,
260
- name: "phone",
268
+ name: "email",
261
269
  render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
262
- /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("fields.phone") }),
263
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { type: "tel", ...field }) }),
270
+ /* @__PURE__ */ jsx(Form.Label, { children: t("fields.email") }),
271
+ /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { type: "email", ...field }) }),
264
272
  /* @__PURE__ */ jsx(Form.ErrorMessage, {})
265
273
  ] })
266
274
  }
@@ -269,10 +277,10 @@ var EditStoreForm = ({ seller }) => {
269
277
  Form.Field,
270
278
  {
271
279
  control: form.control,
272
- name: "description",
280
+ name: "phone",
273
281
  render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
274
- /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("fields.description") }),
275
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Textarea, { ...field }) }),
282
+ /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("fields.phone") }),
283
+ /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { type: "tel", ...field }) }),
276
284
  /* @__PURE__ */ jsx(Form.ErrorMessage, {})
277
285
  ] })
278
286
  }
@@ -359,7 +367,15 @@ var EditStoreForm = ({ seller }) => {
359
367
  ] });
360
368
  }
361
369
  }
362
- )
370
+ ),
371
+ /* @__PURE__ */ jsx("div", { className: "bg-ui-bg-subtle border-l-2 border-ui-border-strong rounded-md px-4 py-3", children: /* @__PURE__ */ jsxs(Text, { size: "small", className: "text-ui-fg-base", children: [
372
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: t("store.mediaTip.label", "Tip:") }),
373
+ " ",
374
+ t(
375
+ "store.mediaTip.message",
376
+ "This media will be visible on the storefront."
377
+ )
378
+ ] }) })
363
379
  ] })
364
380
  ] }),
365
381
  /* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-x-2", children: [
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-VBRTC2VU.js";
8
8
  import {
9
9
  i18n
10
- } from "./chunk-4K7VMKTY.js";
10
+ } from "./chunk-FIPGFHTT.js";
11
11
  import "./chunk-TKGWSUEI.js";
12
12
  import {
13
13
  KeyboundForm
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-VBRTC2VU.js";
14
14
  import {
15
15
  i18n
16
- } from "./chunk-4K7VMKTY.js";
16
+ } from "./chunk-FIPGFHTT.js";
17
17
  import "./chunk-TKGWSUEI.js";
18
18
  import {
19
19
  KeyboundForm
package/dist/index.css CHANGED
@@ -2608,6 +2608,9 @@ video {
2608
2608
  .border-l {
2609
2609
  border-left-width: 1px;
2610
2610
  }
2611
+ .border-l-2 {
2612
+ border-left-width: 2px;
2613
+ }
2611
2614
  .border-l-4 {
2612
2615
  border-left-width: 4px;
2613
2616
  }
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-LPOAVK6Y.js";
12
12
  import {
13
13
  I18n
14
- } from "./chunk-4K7VMKTY.js";
14
+ } from "./chunk-FIPGFHTT.js";
15
15
  import "./chunk-TKGWSUEI.js";
16
16
  import "./chunk-U2ZFCAPX.js";
17
17
  import "./chunk-3CK6OINO.js";
@@ -1463,15 +1463,12 @@ var ProtectedRoute = () => {
1463
1463
 
1464
1464
  // src/components/layout/main-layout/main-layout.tsx
1465
1465
  import {
1466
- ArrowRightOnRectangle,
1467
- BuildingStorefront,
1468
1466
  Buildings,
1469
1467
  CogSixTooth,
1470
1468
  CurrencyDollar,
1471
1469
  CreditCardRefresh,
1472
1470
  EllipsisHorizontal as EllipsisHorizontal2,
1473
1471
  MagnifyingGlass as MagnifyingGlass2,
1474
- OpenRectArrowOut as OpenRectArrowOut2,
1475
1472
  Plus as Plus2,
1476
1473
  ReceiptPercent,
1477
1474
  ShoppingCart,
@@ -1890,7 +1887,7 @@ var StoreSetupWidget = () => {
1890
1887
  };
1891
1888
 
1892
1889
  // src/components/layout/main-layout/main-layout.tsx
1893
- import { Link as Link3, useLocation as useLocation8, useNavigate as useNavigate4 } from "react-router-dom";
1890
+ import { useLocation as useLocation8, useNavigate as useNavigate4 } from "react-router-dom";
1894
1891
 
1895
1892
  // src/components/layout/user-menu/user-menu.tsx
1896
1893
  import {
@@ -1919,6 +1916,91 @@ import { useTranslation as useTranslation6 } from "react-i18next";
1919
1916
  import { useState as useState10 } from "react";
1920
1917
  import { Link as Link2, useLocation as useLocation6, useNavigate as useNavigate3 } from "react-router-dom";
1921
1918
  import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
1919
+ var UserMenu = () => {
1920
+ const { t: t2 } = useTranslation6();
1921
+ const location = useLocation6();
1922
+ const direction = useDocumentDirection();
1923
+ const [openMenu, setOpenMenu] = useState10(false);
1924
+ const [openModal, setOpenModal] = useState10(false);
1925
+ const toggleModal = () => {
1926
+ setOpenMenu(false);
1927
+ setOpenModal(!openModal);
1928
+ };
1929
+ return /* @__PURE__ */ jsxs5("div", { children: [
1930
+ /* @__PURE__ */ jsxs5(DropdownMenu2, { dir: direction, open: openMenu, onOpenChange: setOpenMenu, children: [
1931
+ /* @__PURE__ */ jsx9(UserBadge, {}),
1932
+ /* @__PURE__ */ jsxs5(DropdownMenu2.Content, { className: "min-w-[var(--radix-dropdown-menu-trigger-width)] max-w-[var(--radix-dropdown-menu-trigger-width)]", children: [
1933
+ /* @__PURE__ */ jsx9(UserItem, {}),
1934
+ /* @__PURE__ */ jsx9(DropdownMenu2.Separator, {}),
1935
+ /* @__PURE__ */ jsx9(DropdownMenu2.Item, { asChild: true, children: /* @__PURE__ */ jsxs5(Link2, { to: "/settings/profile", state: { from: location.pathname }, children: [
1936
+ /* @__PURE__ */ jsx9(UserIcon, { className: "text-ui-fg-subtle me-2" }),
1937
+ t2("app.menus.user.profileSettings")
1938
+ ] }) }),
1939
+ /* @__PURE__ */ jsx9(DropdownMenu2.Separator, {}),
1940
+ /* @__PURE__ */ jsx9(DropdownMenu2.Item, { asChild: true, children: /* @__PURE__ */ jsxs5(Link2, { to: "https://docs.mercurjs.com/v2/welcome", target: "_blank", children: [
1941
+ /* @__PURE__ */ jsx9(BookOpen, { className: "text-ui-fg-subtle me-2" }),
1942
+ t2("app.menus.user.documentation")
1943
+ ] }) }),
1944
+ /* @__PURE__ */ jsx9(DropdownMenu2.Item, { asChild: true, children: /* @__PURE__ */ jsxs5(Link2, { to: "https://www.mercurjs.com/updates", target: "_blank", children: [
1945
+ /* @__PURE__ */ jsx9(TimelineVertical, { className: "text-ui-fg-subtle me-2" }),
1946
+ t2("app.menus.user.changelog")
1947
+ ] }) }),
1948
+ /* @__PURE__ */ jsx9(DropdownMenu2.Separator, {}),
1949
+ /* @__PURE__ */ jsxs5(DropdownMenu2.Item, { onClick: toggleModal, children: [
1950
+ /* @__PURE__ */ jsx9(Keyboard, { className: "text-ui-fg-subtle me-2" }),
1951
+ t2("app.menus.user.shortcuts")
1952
+ ] }),
1953
+ /* @__PURE__ */ jsx9(ThemeToggle, {}),
1954
+ /* @__PURE__ */ jsx9(LanguageToggle, {}),
1955
+ /* @__PURE__ */ jsx9(DropdownMenu2.Separator, {}),
1956
+ /* @__PURE__ */ jsx9(Logout, {})
1957
+ ] })
1958
+ ] }),
1959
+ /* @__PURE__ */ jsx9(GlobalKeybindsModal, { open: openModal, onOpenChange: setOpenModal })
1960
+ ] });
1961
+ };
1962
+ var UserBadge = () => {
1963
+ const { seller_member, isPending, isError, error } = useMe();
1964
+ const member = seller_member?.member;
1965
+ const fullName = [member?.first_name, member?.last_name].filter(Boolean).join(" ").trim();
1966
+ const displayName = fullName || member?.email;
1967
+ const fallback = displayName ? displayName[0].toUpperCase() : null;
1968
+ if (isPending) {
1969
+ return /* @__PURE__ */ jsxs5("button", { className: "shadow-borders-base flex max-w-[192px] select-none items-center gap-x-2 overflow-hidden text-ellipsis whitespace-nowrap rounded-full py-1 ps-1 pe-2.5", children: [
1970
+ /* @__PURE__ */ jsx9(Skeleton, { className: "h-5 w-5 rounded-full" }),
1971
+ /* @__PURE__ */ jsx9(Skeleton, { className: "h-[9px] w-[70px]" })
1972
+ ] });
1973
+ }
1974
+ if (isError) {
1975
+ throw error;
1976
+ }
1977
+ return /* @__PURE__ */ jsx9("div", { className: "p-3", children: /* @__PURE__ */ jsxs5(
1978
+ DropdownMenu2.Trigger,
1979
+ {
1980
+ disabled: !member,
1981
+ className: clx4(
1982
+ "bg-ui-bg-subtle grid w-full cursor-pointer grid-cols-[24px_1fr_15px] items-center gap-2 rounded-md py-1 ps-0.5 pe-2 outline-none",
1983
+ "hover:bg-ui-bg-subtle-hover",
1984
+ "data-[state=open]:bg-ui-bg-subtle-hover",
1985
+ "focus-visible:shadow-borders-focus"
1986
+ ),
1987
+ children: [
1988
+ /* @__PURE__ */ jsx9("div", { className: "flex size-6 items-center justify-center", children: fallback ? /* @__PURE__ */ jsx9(Avatar, { size: "xsmall", fallback }) : /* @__PURE__ */ jsx9(Skeleton, { className: "h-6 w-6 rounded-full" }) }),
1989
+ /* @__PURE__ */ jsx9("div", { className: "flex items-center overflow-hidden", children: displayName ? /* @__PURE__ */ jsx9(
1990
+ Text3,
1991
+ {
1992
+ size: "xsmall",
1993
+ weight: "plus",
1994
+ leading: "compact",
1995
+ className: "truncate",
1996
+ children: displayName
1997
+ }
1998
+ ) : /* @__PURE__ */ jsx9(Skeleton, { className: "h-[9px] w-[70px]" }) }),
1999
+ /* @__PURE__ */ jsx9(EllipsisHorizontal, { className: "text-ui-fg-muted" })
2000
+ ]
2001
+ }
2002
+ ) });
2003
+ };
1922
2004
  var ThemeToggle = () => {
1923
2005
  const { t: t2 } = useTranslation6();
1924
2006
  const { theme, setTheme } = useTheme();
@@ -2005,6 +2087,113 @@ var LanguageToggle = () => {
2005
2087
  )) }) })
2006
2088
  ] });
2007
2089
  };
2090
+ var Logout = () => {
2091
+ const { t: t2 } = useTranslation6();
2092
+ const navigate = useNavigate3();
2093
+ const { mutateAsync: logoutMutation } = useLogout();
2094
+ const handleLogout = async () => {
2095
+ await logoutMutation(void 0, {
2096
+ onSuccess: () => {
2097
+ queryClient.clear();
2098
+ navigate("/login");
2099
+ }
2100
+ });
2101
+ };
2102
+ return /* @__PURE__ */ jsx9(DropdownMenu2.Item, { onClick: handleLogout, children: /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-x-2", children: [
2103
+ /* @__PURE__ */ jsx9(OpenRectArrowOut, { className: "text-ui-fg-subtle" }),
2104
+ /* @__PURE__ */ jsx9("span", { children: t2("app.menus.actions.logout") })
2105
+ ] }) });
2106
+ };
2107
+ var GlobalKeybindsModal = (props) => {
2108
+ const { t: t2 } = useTranslation6();
2109
+ const globalShortcuts = useGlobalShortcuts();
2110
+ const [searchValue, onSearchValueChange] = useState10("");
2111
+ const searchResults = searchValue ? globalShortcuts.filter((shortcut) => {
2112
+ return shortcut.label.toLowerCase().includes(searchValue?.toLowerCase());
2113
+ }) : globalShortcuts;
2114
+ return /* @__PURE__ */ jsx9(RadixDialog3.Root, { ...props, children: /* @__PURE__ */ jsxs5(RadixDialog3.Portal, { children: [
2115
+ /* @__PURE__ */ jsx9(RadixDialog3.Overlay, { className: "bg-ui-bg-overlay fixed inset-0" }),
2116
+ /* @__PURE__ */ jsxs5(RadixDialog3.Content, { className: "bg-ui-bg-subtle shadow-elevation-modal fixed left-[50%] top-[50%] flex h-full max-h-[612px] w-full max-w-[560px] translate-x-[-50%] translate-y-[-50%] flex-col divide-y overflow-hidden rounded-lg", children: [
2117
+ /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-y-3 px-6 py-4", children: [
2118
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between", children: [
2119
+ /* @__PURE__ */ jsxs5("div", { children: [
2120
+ /* @__PURE__ */ jsx9(RadixDialog3.Title, { asChild: true, children: /* @__PURE__ */ jsx9(Heading, { children: t2("app.menus.user.shortcuts") }) }),
2121
+ /* @__PURE__ */ jsx9(RadixDialog3.Description, { className: "sr-only" })
2122
+ ] }),
2123
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-x-2", children: [
2124
+ /* @__PURE__ */ jsx9(Kbd3, { children: "esc" }),
2125
+ /* @__PURE__ */ jsx9(RadixDialog3.Close, { asChild: true, children: /* @__PURE__ */ jsx9(IconButton3, { variant: "transparent", size: "small", children: /* @__PURE__ */ jsx9(XMark2, {}) }) })
2126
+ ] })
2127
+ ] }),
2128
+ /* @__PURE__ */ jsx9("div", { children: /* @__PURE__ */ jsx9(
2129
+ Input,
2130
+ {
2131
+ type: "search",
2132
+ value: searchValue,
2133
+ onChange: (e) => onSearchValueChange(e.target.value)
2134
+ }
2135
+ ) })
2136
+ ] }),
2137
+ /* @__PURE__ */ jsx9("div", { className: "flex flex-col divide-y overflow-y-auto", children: searchResults.map((shortcut, index) => {
2138
+ return /* @__PURE__ */ jsxs5(
2139
+ "div",
2140
+ {
2141
+ className: "text-ui-fg-subtle flex items-center justify-between px-6 py-3",
2142
+ children: [
2143
+ /* @__PURE__ */ jsx9(Text3, { size: "small", children: shortcut.label }),
2144
+ /* @__PURE__ */ jsx9("div", { className: "flex items-center gap-x-1", children: shortcut.keys.Mac?.map((key, index2) => {
2145
+ return /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-x-1", children: [
2146
+ /* @__PURE__ */ jsx9(Kbd3, { children: key }),
2147
+ index2 < (shortcut.keys.Mac?.length || 0) - 1 && /* @__PURE__ */ jsx9("span", { className: "txt-compact-xsmall text-ui-fg-subtle", children: t2("app.keyboardShortcuts.then") })
2148
+ ] }, index2);
2149
+ }) })
2150
+ ]
2151
+ },
2152
+ index
2153
+ );
2154
+ }) })
2155
+ ] })
2156
+ ] }) });
2157
+ };
2158
+ var UserItem = () => {
2159
+ const { seller_member, isPending, isError, error } = useMe();
2160
+ const member = seller_member?.member;
2161
+ const loaded = !isPending && !!member;
2162
+ if (!loaded) {
2163
+ return /* @__PURE__ */ jsx9("div", {});
2164
+ }
2165
+ const fullName = [member.first_name, member.last_name].filter(Boolean).join(" ").trim();
2166
+ const displayName = fullName || member.email;
2167
+ const email = member.email;
2168
+ const fallback = displayName ? displayName[0].toUpperCase() : "U";
2169
+ if (isError) {
2170
+ throw error;
2171
+ }
2172
+ return /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-x-3 overflow-hidden px-2 py-1", children: [
2173
+ /* @__PURE__ */ jsx9(Avatar, { size: "small", variant: "rounded", fallback }),
2174
+ /* @__PURE__ */ jsxs5("div", { className: "block w-full min-w-0 max-w-[187px] overflow-hidden whitespace-nowrap", children: [
2175
+ /* @__PURE__ */ jsx9(
2176
+ Text3,
2177
+ {
2178
+ size: "small",
2179
+ weight: "plus",
2180
+ leading: "compact",
2181
+ className: "overflow-hidden text-ellipsis whitespace-nowrap",
2182
+ children: displayName
2183
+ }
2184
+ ),
2185
+ !!email && displayName !== email && /* @__PURE__ */ jsx9(
2186
+ Text3,
2187
+ {
2188
+ size: "xsmall",
2189
+ leading: "compact",
2190
+ className: "text-ui-fg-subtle overflow-hidden text-ellipsis whitespace-nowrap",
2191
+ children: email
2192
+ }
2193
+ )
2194
+ ] })
2195
+ ] });
2196
+ };
2008
2197
 
2009
2198
  // src/components/layout/main-layout/main-layout.tsx
2010
2199
  import components2 from "virtual:mercur/components";
@@ -2207,7 +2396,7 @@ var getNestedMenuItems = (menuItems, parentPath) => {
2207
2396
  };
2208
2397
 
2209
2398
  // src/components/layout/main-layout/main-layout.tsx
2210
- import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
2399
+ import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
2211
2400
  var MainLayout = () => {
2212
2401
  const Sidebar = components2.MainSidebar ? components2.MainSidebar : MainSidebar;
2213
2402
  return /* @__PURE__ */ jsx11(Shell, { children: /* @__PURE__ */ jsx11(Sidebar, {}) });
@@ -2259,93 +2448,67 @@ var MainSidebar = () => {
2259
2448
  ] })
2260
2449
  ] }) });
2261
2450
  };
2262
- var Logout = () => {
2263
- const { t: t2 } = useTranslation8();
2264
- const navigate = useNavigate4();
2265
- const { mutateAsync: logoutMutation } = useLogout();
2266
- const handleLogout = async () => {
2267
- await logoutMutation(void 0, {
2268
- onSuccess: () => {
2269
- queryClient.clear();
2270
- navigate("/login");
2271
- }
2272
- });
2273
- };
2274
- return /* @__PURE__ */ jsx11(DropdownMenu3.Item, { onClick: handleLogout, children: /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-x-2", children: [
2275
- /* @__PURE__ */ jsx11(OpenRectArrowOut2, { className: "text-ui-fg-subtle" }),
2276
- /* @__PURE__ */ jsx11("span", { children: t2("app.menus.actions.logout") })
2277
- ] }) });
2278
- };
2279
- var SwitchStore = ({ currentSellerId }) => {
2451
+ var StoreList = ({ currentSellerId }) => {
2280
2452
  const { t: t2 } = useTranslation8();
2281
2453
  const navigate = useNavigate4();
2282
2454
  const { seller_member } = useMe();
2283
2455
  const { seller_members } = useSellers();
2284
2456
  const { mutateAsync: selectSeller } = useSelectSeller();
2285
- if (!seller_members?.length) {
2286
- return null;
2287
- }
2288
2457
  const handleSelect = async (sellerId) => {
2289
2458
  if (sellerId === currentSellerId) return;
2290
2459
  await selectSeller({ seller_id: sellerId });
2291
2460
  navigate("/", { replace: true });
2292
2461
  };
2293
- return /* @__PURE__ */ jsxs7(DropdownMenu3.SubMenu, { children: [
2294
- /* @__PURE__ */ jsxs7(DropdownMenu3.SubMenuTrigger, { className: "rounded-md", children: [
2295
- /* @__PURE__ */ jsx11(ArrowRightOnRectangle, { className: "text-ui-fg-subtle me-2" }),
2296
- t2("app.menus.store.switchStore")
2297
- ] }),
2298
- /* @__PURE__ */ jsxs7(DropdownMenu3.SubMenuContent, { children: [
2299
- /* @__PURE__ */ jsx11(DropdownMenu3.RadioGroup, { value: currentSellerId, children: seller_members?.map((member) => {
2300
- const seller = member.seller;
2301
- return /* @__PURE__ */ jsxs7(
2302
- DropdownMenu3.RadioItem,
2303
- {
2304
- value: seller.id,
2305
- onClick: (e) => {
2306
- e.preventDefault();
2307
- handleSelect(seller.id);
2308
- },
2309
- className: "gap-x-2",
2310
- children: [
2311
- /* @__PURE__ */ jsx11(
2312
- Avatar2,
2313
- {
2314
- variant: "squared",
2315
- size: "xsmall",
2316
- fallback: seller.name.charAt(0).toUpperCase()
2317
- }
2318
- ),
2319
- /* @__PURE__ */ jsx11(
2320
- Text5,
2321
- {
2322
- size: "small",
2323
- weight: "plus",
2324
- leading: "compact",
2325
- className: "truncate",
2326
- children: seller.name
2327
- }
2328
- )
2329
- ]
2330
- },
2331
- seller.id
2332
- );
2333
- }) }),
2334
- !!seller_members?.length && /* @__PURE__ */ jsx11(DropdownMenu3.Separator, {}),
2335
- /* @__PURE__ */ jsxs7(
2336
- DropdownMenu3.Item,
2462
+ return /* @__PURE__ */ jsxs7(Fragment2, { children: [
2463
+ !!seller_members?.length && /* @__PURE__ */ jsx11(DropdownMenu3.RadioGroup, { value: currentSellerId, children: seller_members.map((member) => {
2464
+ const seller = member.seller;
2465
+ return /* @__PURE__ */ jsxs7(
2466
+ DropdownMenu3.RadioItem,
2337
2467
  {
2338
- onClick: () => navigate("/onboarding", {
2339
- state: { email: seller_member?.member.email }
2340
- }),
2468
+ value: seller.id,
2469
+ onClick: (e) => {
2470
+ e.preventDefault();
2471
+ handleSelect(seller.id);
2472
+ },
2341
2473
  className: "gap-x-2",
2342
2474
  children: [
2343
- /* @__PURE__ */ jsx11(Plus2, { className: "text-ui-fg-subtle" }),
2344
- /* @__PURE__ */ jsx11(Text5, { size: "small", weight: "plus", leading: "compact", children: t2("storeSelect.addNewStore") })
2475
+ /* @__PURE__ */ jsx11(
2476
+ Avatar2,
2477
+ {
2478
+ variant: "squared",
2479
+ size: "xsmall",
2480
+ fallback: seller.name.charAt(0).toUpperCase()
2481
+ }
2482
+ ),
2483
+ /* @__PURE__ */ jsx11(
2484
+ Text5,
2485
+ {
2486
+ size: "small",
2487
+ weight: "plus",
2488
+ leading: "compact",
2489
+ className: "truncate",
2490
+ children: seller.name
2491
+ }
2492
+ )
2345
2493
  ]
2346
- }
2347
- )
2348
- ] })
2494
+ },
2495
+ seller.id
2496
+ );
2497
+ }) }),
2498
+ !!seller_members?.length && /* @__PURE__ */ jsx11(DropdownMenu3.Separator, {}),
2499
+ /* @__PURE__ */ jsxs7(
2500
+ DropdownMenu3.Item,
2501
+ {
2502
+ onClick: () => navigate("/onboarding", {
2503
+ state: { email: seller_member?.member.email }
2504
+ }),
2505
+ className: "gap-x-2",
2506
+ children: [
2507
+ /* @__PURE__ */ jsx11(Plus2, { className: "text-ui-fg-subtle" }),
2508
+ /* @__PURE__ */ jsx11(Text5, { size: "small", weight: "plus", leading: "compact", children: t2("storeSelect.addNewStore") })
2509
+ ]
2510
+ }
2511
+ )
2349
2512
  ] });
2350
2513
  };
2351
2514
  var Header = () => {
@@ -2411,16 +2574,7 @@ var Header = () => {
2411
2574
  ] })
2412
2575
  ] }),
2413
2576
  /* @__PURE__ */ jsx11(DropdownMenu3.Separator, {}),
2414
- /* @__PURE__ */ jsx11(DropdownMenu3.Item, { className: "gap-x-2", asChild: true, children: /* @__PURE__ */ jsxs7(Link3, { to: "/settings/store", children: [
2415
- /* @__PURE__ */ jsx11(BuildingStorefront, { className: "text-ui-fg-subtle" }),
2416
- t2("app.menus.store.editStore")
2417
- ] }) }),
2418
- /* @__PURE__ */ jsx11(SwitchStore, { currentSellerId: seller_member.seller.id }),
2419
- /* @__PURE__ */ jsx11(DropdownMenu3.Separator, {}),
2420
- /* @__PURE__ */ jsx11(ThemeToggle, {}),
2421
- /* @__PURE__ */ jsx11(LanguageToggle, {}),
2422
- /* @__PURE__ */ jsx11(DropdownMenu3.Separator, {}),
2423
- /* @__PURE__ */ jsx11(Logout, {})
2577
+ /* @__PURE__ */ jsx11(StoreList, { currentSellerId: seller_member.seller.id })
2424
2578
  ] })
2425
2579
  ] }) });
2426
2580
  };
@@ -2517,15 +2671,19 @@ var Searchbar = () => {
2517
2671
  var UtilitySection = () => {
2518
2672
  const location = useLocation8();
2519
2673
  const { t: t2 } = useTranslation8();
2520
- return /* @__PURE__ */ jsx11("div", { className: "flex flex-col gap-y-0.5 py-3", children: /* @__PURE__ */ jsx11(
2521
- NavItem,
2522
- {
2523
- label: t2("app.nav.settings.header"),
2524
- to: "/settings",
2525
- from: location.pathname,
2526
- icon: /* @__PURE__ */ jsx11(CogSixTooth, {})
2527
- }
2528
- ) });
2674
+ return /* @__PURE__ */ jsxs7("div", { className: "flex flex-col", children: [
2675
+ /* @__PURE__ */ jsx11("div", { className: "flex flex-col gap-y-0.5 py-3", children: /* @__PURE__ */ jsx11(
2676
+ NavItem,
2677
+ {
2678
+ label: t2("app.nav.settings.header"),
2679
+ to: "/settings",
2680
+ from: location.pathname,
2681
+ icon: /* @__PURE__ */ jsx11(CogSixTooth, {})
2682
+ }
2683
+ ) }),
2684
+ /* @__PURE__ */ jsx11("div", { className: "px-3", children: /* @__PURE__ */ jsx11(Divider, { variant: "dashed" }) }),
2685
+ /* @__PURE__ */ jsx11(UserMenu, {})
2686
+ ] });
2529
2687
  };
2530
2688
 
2531
2689
  // src/components/layout/public-layout/public-layout.tsx
@@ -2541,7 +2699,7 @@ import { clx as clx6, Divider as Divider2, IconButton as IconButton4, Text as Te
2541
2699
  import { Collapsible as RadixCollapsible2 } from "radix-ui";
2542
2700
  import { useEffect as useEffect9, useMemo as useMemo4, useState as useState11 } from "react";
2543
2701
  import { useTranslation as useTranslation9 } from "react-i18next";
2544
- import { Link as Link4, useLocation as useLocation9 } from "react-router-dom";
2702
+ import { Link as Link3, useLocation as useLocation9 } from "react-router-dom";
2545
2703
  import components3 from "virtual:mercur/components";
2546
2704
  import menuItemsModule2 from "virtual:mercur/menu-items";
2547
2705
  import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
@@ -2625,7 +2783,7 @@ var Header2 = () => {
2625
2783
  }
2626
2784
  }, [location]);
2627
2785
  return /* @__PURE__ */ jsx13("div", { className: "bg-ui-bg-subtle p-3", children: /* @__PURE__ */ jsx13(
2628
- Link4,
2786
+ Link3,
2629
2787
  {
2630
2788
  to: from,
2631
2789
  replace: true,
@@ -2656,7 +2814,7 @@ var RadixCollapsibleSection = ({
2656
2814
  var UserSection = () => {
2657
2815
  return /* @__PURE__ */ jsxs8("div", { children: [
2658
2816
  /* @__PURE__ */ jsx13("div", { className: "px-3", children: /* @__PURE__ */ jsx13(Divider2, { variant: "dashed" }) }),
2659
- /* @__PURE__ */ jsx13(Header, {})
2817
+ /* @__PURE__ */ jsx13(UserMenu, {})
2660
2818
  ] });
2661
2819
  };
2662
2820
 
@@ -2711,7 +2869,7 @@ function getRouteMap({
2711
2869
  {
2712
2870
  path: "",
2713
2871
  lazy: async () => {
2714
- const { ProductListPage } = await import("./products-DCQQT4QJ.js");
2872
+ const { ProductListPage } = await import("./products-I2ZMMVAP.js");
2715
2873
  return {
2716
2874
  Component: ProductListPage
2717
2875
  };
@@ -2720,7 +2878,7 @@ function getRouteMap({
2720
2878
  {
2721
2879
  path: "create",
2722
2880
  lazy: async () => {
2723
- const { ProductCreatePage } = await import("./create-AB7EKAU6.js");
2881
+ const { ProductCreatePage } = await import("./create-DUYQTFGO.js");
2724
2882
  return {
2725
2883
  Component: ProductCreatePage
2726
2884
  };
@@ -2769,7 +2927,7 @@ function getRouteMap({
2769
2927
  },
2770
2928
  {
2771
2929
  path: "media",
2772
- lazy: () => import("./media-ANAL5H2W.js")
2930
+ lazy: () => import("./media-4IOP6FBP.js")
2773
2931
  },
2774
2932
  {
2775
2933
  path: "attributes",
@@ -2777,11 +2935,11 @@ function getRouteMap({
2777
2935
  },
2778
2936
  {
2779
2937
  path: "attributes/add",
2780
- lazy: () => import("./add-LXPUKGJB.js")
2938
+ lazy: () => import("./add-QWM4G35U.js")
2781
2939
  },
2782
2940
  {
2783
2941
  path: "informational-attributes/:attribute_id/edit",
2784
- lazy: () => import("./edit-DQUWVHUO.js")
2942
+ lazy: () => import("./edit-GCDQPZY4.js")
2785
2943
  },
2786
2944
  {
2787
2945
  path: "metadata",
@@ -2801,7 +2959,7 @@ function getRouteMap({
2801
2959
  },
2802
2960
  {
2803
2961
  path: "options/:option_id/edit",
2804
- lazy: () => import("./edit-WMJY63W7.js")
2962
+ lazy: () => import("./edit-6NGTXTDK.js")
2805
2963
  },
2806
2964
  {
2807
2965
  path: "variants/create",
@@ -3167,7 +3325,7 @@ function getRouteMap({
3167
3325
  {
3168
3326
  path: "",
3169
3327
  lazy: async () => {
3170
- const { PromotionListPage } = await import("./promotions-DB4TBJQW.js");
3328
+ const { PromotionListPage } = await import("./promotions-JEBVGZU5.js");
3171
3329
  return {
3172
3330
  Component: PromotionListPage
3173
3331
  };
@@ -3182,7 +3340,7 @@ function getRouteMap({
3182
3340
  {
3183
3341
  path: ":id",
3184
3342
  lazy: async () => {
3185
- const { loader } = await import("./[id]-JFIRCPSU.js");
3343
+ const { loader } = await import("./[id]-5Y3RKUP5.js");
3186
3344
  const { Breadcrumb } = await import("./breadcrumb-UAUX7XCV.js");
3187
3345
  return {
3188
3346
  Component: Outlet4,
@@ -3196,7 +3354,7 @@ function getRouteMap({
3196
3354
  {
3197
3355
  path: "",
3198
3356
  lazy: async () => {
3199
- const { PromotionDetailPage } = await import("./[id]-JFIRCPSU.js");
3357
+ const { PromotionDetailPage } = await import("./[id]-5Y3RKUP5.js");
3200
3358
  return {
3201
3359
  Component: PromotionDetailPage
3202
3360
  };
@@ -3244,7 +3402,7 @@ function getRouteMap({
3244
3402
  {
3245
3403
  path: ":id",
3246
3404
  lazy: async () => {
3247
- const { loader } = await import("./[id]-FDQKYXM4.js");
3405
+ const { loader } = await import("./[id]-EENMQYUJ.js");
3248
3406
  const { Breadcrumb } = await import("./breadcrumb-F3BN5753.js");
3249
3407
  return {
3250
3408
  Component: Outlet4,
@@ -3258,7 +3416,7 @@ function getRouteMap({
3258
3416
  {
3259
3417
  path: "",
3260
3418
  lazy: async () => {
3261
- const { CampaignDetailPage } = await import("./[id]-FDQKYXM4.js");
3419
+ const { CampaignDetailPage } = await import("./[id]-EENMQYUJ.js");
3262
3420
  return {
3263
3421
  Component: CampaignDetailPage
3264
3422
  };
@@ -3279,7 +3437,7 @@ function getRouteMap({
3279
3437
  {
3280
3438
  path: "add-promotions",
3281
3439
  lazy: async () => {
3282
- const { AddPromotionsPage } = await import("./add-promotions-4B5LIBOH.js");
3440
+ const { AddPromotionsPage } = await import("./add-promotions-VXRVFK5G.js");
3283
3441
  return {
3284
3442
  Component: AddPromotionsPage
3285
3443
  };
@@ -3451,13 +3609,13 @@ function getRouteMap({
3451
3609
  {
3452
3610
  path: "",
3453
3611
  lazy: async () => {
3454
- const { StoreDetailPage } = await import("./store-S53SGYYE.js");
3612
+ const { StoreDetailPage } = await import("./store-JCMKUE4C.js");
3455
3613
  return { Component: StoreDetailPage };
3456
3614
  },
3457
3615
  children: [
3458
3616
  {
3459
3617
  path: "edit",
3460
- lazy: () => import("./edit-M3W2QYOK.js")
3618
+ lazy: () => import("./edit-3AH3SX32.js")
3461
3619
  },
3462
3620
  {
3463
3621
  path: "address",
@@ -3465,7 +3623,7 @@ function getRouteMap({
3465
3623
  },
3466
3624
  {
3467
3625
  path: "payment-details",
3468
- lazy: () => import("./payment-details-CUXHWIZQ.js")
3626
+ lazy: () => import("./payment-details-PQZ7B35T.js")
3469
3627
  },
3470
3628
  {
3471
3629
  path: "professional-details",
@@ -3864,18 +4022,18 @@ function getRouteMap({
3864
4022
  {
3865
4023
  path: "/login",
3866
4024
  lazy: async () => {
3867
- const { LoginPage } = await import("./login-TNRTA2FS.js");
4025
+ const { LoginPage } = await import("./login-LIPPO7J3.js");
3868
4026
  return { Component: LoginPage };
3869
4027
  }
3870
4028
  },
3871
4029
  {
3872
4030
  path: "/reset-password",
3873
- lazy: () => import("./reset-password-3RGOOILO.js")
4031
+ lazy: () => import("./reset-password-U7TV7QLM.js")
3874
4032
  },
3875
4033
  {
3876
4034
  path: "/register",
3877
4035
  lazy: async () => {
3878
- const { RegisterPage } = await import("./register-CKWROYR3.js");
4036
+ const { RegisterPage } = await import("./register-J364NNU7.js");
3879
4037
  return { Component: RegisterPage };
3880
4038
  }
3881
4039
  },
@@ -4194,7 +4352,7 @@ var InfiniteList = ({
4194
4352
  };
4195
4353
 
4196
4354
  // src/components/layout/notifications/notifications.tsx
4197
- import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
4355
+ import { Fragment as Fragment3, jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
4198
4356
  var LAST_READ_NOTIFICATION_KEY = "notificationsLastReadAt";
4199
4357
  var Notifications = () => {
4200
4358
  const { t: t2 } = useTranslation10();
@@ -4273,7 +4431,7 @@ var Notification = ({
4273
4431
  if (!data?.title) {
4274
4432
  return null;
4275
4433
  }
4276
- return /* @__PURE__ */ jsx18(Fragment2, { children: /* @__PURE__ */ jsxs12("div", { className: "relative flex items-start justify-center gap-3 border-b p-6", children: [
4434
+ return /* @__PURE__ */ jsx18(Fragment3, { children: /* @__PURE__ */ jsxs12("div", { className: "relative flex items-start justify-center gap-3 border-b p-6", children: [
4277
4435
  /* @__PURE__ */ jsx18("div", { className: "text-ui-fg-muted flex size-5 items-center justify-center", children: /* @__PURE__ */ jsx18(InformationCircleSolid, {}) }),
4278
4436
  /* @__PURE__ */ jsxs12("div", { className: "flex w-full flex-col gap-y-3", children: [
4279
4437
  /* @__PURE__ */ jsxs12("div", { className: "flex flex-col", children: [
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LoginPage
3
- } from "./chunk-AICNTTYI.js";
3
+ } from "./chunk-CWDADNT7.js";
4
4
  import "./chunk-HXGLPDZW.js";
5
5
  import "./chunk-KVKO6N4G.js";
6
6
  import "./chunk-CP5IL4P6.js";
@@ -4,10 +4,10 @@ import {
4
4
  import "./chunk-S2Q7PO7I.js";
5
5
  import {
6
6
  EditProductMediaSchema
7
- } from "./chunk-XIEEWPAS.js";
7
+ } from "./chunk-7L4BLGGR.js";
8
8
  import "./chunk-IZ5RG5XI.js";
9
9
  import "./chunk-SMQT3ZNO.js";
10
- import "./chunk-4K7VMKTY.js";
10
+ import "./chunk-FIPGFHTT.js";
11
11
  import "./chunk-TKGWSUEI.js";
12
12
  import {
13
13
  KeyboundForm
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LoginPage
3
- } from "../chunk-AICNTTYI.js";
3
+ } from "../chunk-CWDADNT7.js";
4
4
  import "../chunk-HXGLPDZW.js";
5
5
  import "../chunk-KVKO6N4G.js";
6
6
  import "../chunk-CP5IL4P6.js";
@@ -36,9 +36,9 @@ import {
36
36
  import "../chunk-7TIZP4YG.js";
37
37
  import {
38
38
  PromotionListPage
39
- } from "../chunk-GPGY7UXF.js";
40
- import "../chunk-B6EM2JZ3.js";
41
- import "../chunk-EBBU22VO.js";
39
+ } from "../chunk-XDCJL4LN.js";
40
+ import "../chunk-GGNNCQLJ.js";
41
+ import "../chunk-RL3DZQR2.js";
42
42
  import {
43
43
  InventoryListPage
44
44
  } from "../chunk-FQTYHU6G.js";
@@ -104,7 +104,7 @@ import "../chunk-KAZ5BYTQ.js";
104
104
  import "../chunk-3EF54XFY.js";
105
105
  import {
106
106
  ProductCreatePage
107
- } from "../chunk-DQJV54JW.js";
107
+ } from "../chunk-6J5FJYIK.js";
108
108
  import "../chunk-HJ56YXBU.js";
109
109
  import "../chunk-WFE6CT6M.js";
110
110
  import "../chunk-TZTKHOEK.js";
@@ -121,7 +121,7 @@ import {
121
121
  ProductCreateBaseSchema,
122
122
  ProductCreateOptionSchema,
123
123
  ProductCreateSchema
124
- } from "../chunk-XIEEWPAS.js";
124
+ } from "../chunk-7L4BLGGR.js";
125
125
  import "../chunk-IZ5RG5XI.js";
126
126
  import "../chunk-SMQT3ZNO.js";
127
127
  import "../chunk-DLNNTQRY.js";
@@ -129,7 +129,7 @@ import "../chunk-NCYTM57J.js";
129
129
  import "../chunk-YVCBMOJG.js";
130
130
  import "../chunk-VBRTC2VU.js";
131
131
  import "../chunk-LPOAVK6Y.js";
132
- import "../chunk-4K7VMKTY.js";
132
+ import "../chunk-FIPGFHTT.js";
133
133
  import "../chunk-5IWBNPZX.js";
134
134
  import "../chunk-IQPN4PZJ.js";
135
135
  import "../chunk-TKGWSUEI.js";
@@ -159,7 +159,7 @@ var StorePaymentDetailsForm = ({
159
159
  control: form.control,
160
160
  name: "routing_number",
161
161
  render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
162
- /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("store.paymentDetails.fields.routingNumber") }),
162
+ /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("store.paymentDetails.fields.achRoutingNumber") }),
163
163
  /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { size: "small", ...field }) }),
164
164
  /* @__PURE__ */ jsx(Form.ErrorMessage, {})
165
165
  ] })
@@ -196,7 +196,7 @@ var StorePaymentDetailsForm = ({
196
196
  control: form.control,
197
197
  name: "bic",
198
198
  render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
199
- /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("store.paymentDetails.fields.bic") }),
199
+ /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("store.paymentDetails.fields.swiftBic") }),
200
200
  /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(Input, { size: "small", ...field }) }),
201
201
  /* @__PURE__ */ jsx(Form.ErrorMessage, {})
202
202
  ] })
@@ -13,7 +13,7 @@ import "./chunk-KAZ5BYTQ.js";
13
13
  import "./chunk-3EF54XFY.js";
14
14
  import {
15
15
  ProductCreatePage
16
- } from "./chunk-DQJV54JW.js";
16
+ } from "./chunk-6J5FJYIK.js";
17
17
  import "./chunk-HJ56YXBU.js";
18
18
  import "./chunk-WFE6CT6M.js";
19
19
  import "./chunk-TZTKHOEK.js";
@@ -30,7 +30,7 @@ import {
30
30
  ProductCreateBaseSchema,
31
31
  ProductCreateOptionSchema,
32
32
  ProductCreateSchema
33
- } from "./chunk-XIEEWPAS.js";
33
+ } from "./chunk-7L4BLGGR.js";
34
34
  import "./chunk-IZ5RG5XI.js";
35
35
  import "./chunk-SMQT3ZNO.js";
36
36
  import "./chunk-DLNNTQRY.js";
@@ -38,7 +38,7 @@ import "./chunk-NCYTM57J.js";
38
38
  import "./chunk-YVCBMOJG.js";
39
39
  import "./chunk-VBRTC2VU.js";
40
40
  import "./chunk-LPOAVK6Y.js";
41
- import "./chunk-4K7VMKTY.js";
41
+ import "./chunk-FIPGFHTT.js";
42
42
  import "./chunk-5IWBNPZX.js";
43
43
  import "./chunk-IQPN4PZJ.js";
44
44
  import "./chunk-TKGWSUEI.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  PromotionListPage
3
- } from "./chunk-GPGY7UXF.js";
4
- import "./chunk-B6EM2JZ3.js";
5
- import "./chunk-EBBU22VO.js";
3
+ } from "./chunk-XDCJL4LN.js";
4
+ import "./chunk-GGNNCQLJ.js";
5
+ import "./chunk-RL3DZQR2.js";
6
6
  import "./chunk-JHIMVLB2.js";
7
7
  import "./chunk-S2WEYEQR.js";
8
8
  import "./chunk-FMFVTERD.js";
@@ -13,7 +13,7 @@ import "./chunk-QXUKJDZB.js";
13
13
  import "./chunk-LYUCDASZ.js";
14
14
  import "./chunk-KAZ5BYTQ.js";
15
15
  import "./chunk-3EF54XFY.js";
16
- import "./chunk-4K7VMKTY.js";
16
+ import "./chunk-FIPGFHTT.js";
17
17
  import "./chunk-RM5RSDYP.js";
18
18
  import "./chunk-THHRRYRS.js";
19
19
  import "./chunk-LRD242C7.js";
@@ -11,7 +11,7 @@ import {
11
11
  import "./chunk-FMFVTERD.js";
12
12
  import {
13
13
  i18n
14
- } from "./chunk-4K7VMKTY.js";
14
+ } from "./chunk-FIPGFHTT.js";
15
15
  import {
16
16
  Form
17
17
  } from "./chunk-3QSRE5LS.js";
@@ -67,6 +67,8 @@ var RegisterSchema = z.object({
67
67
  email: z.string().email(i18n.t("register.validation.emailInvalid")),
68
68
  password: z.string().min(8, i18n.t("register.validation.passwordMinLength")).refine((val) => val.trim().length >= 8, {
69
69
  message: i18n.t("register.validation.passwordMinLength")
70
+ }).refine((val) => /[a-z]/.test(val) && /[A-Z]/.test(val) && /[\d\W]/.test(val), {
71
+ message: i18n.t("register.validation.passwordComplexity")
70
72
  })
71
73
  });
72
74
 
@@ -4,7 +4,7 @@ import {
4
4
  import "./chunk-FMFVTERD.js";
5
5
  import {
6
6
  i18n
7
- } from "./chunk-4K7VMKTY.js";
7
+ } from "./chunk-FIPGFHTT.js";
8
8
  import {
9
9
  Form
10
10
  } from "./chunk-3QSRE5LS.js";
@@ -590,12 +590,6 @@ var Root = ({ children }) => {
590
590
  }
591
591
  const statusAlert = (() => {
592
592
  switch (seller.status) {
593
- case import_types2.SellerStatus.SUSPENDED:
594
- return {
595
- variant: "error",
596
- title: t("store.alert.suspended.title"),
597
- description: seller.status_reason || t("store.alert.suspended.description")
598
- };
599
593
  case import_types2.SellerStatus.TERMINATED:
600
594
  return {
601
595
  variant: "error",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mercurjs/vendor",
3
- "version": "2.1.0-canary.6",
3
+ "version": "2.1.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/mercurjs/mercur",
@@ -29,8 +29,8 @@
29
29
  "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
30
30
  },
31
31
  "dependencies": {
32
- "@mercurjs/dashboard-shared": "2.1.0-canary.6",
33
- "@mercurjs/client": "2.1.0-canary.6",
32
+ "@mercurjs/dashboard-shared": "2.1.0",
33
+ "@mercurjs/client": "2.1.0",
34
34
  "@ariakit/react": "^0.4.15",
35
35
  "@babel/runtime": "^7.26.10",
36
36
  "@dnd-kit/core": "^6.1.0",
@@ -87,4 +87,4 @@
87
87
  "@mercurjs/dashboard-sdk": "workspace:*",
88
88
  "@mercurjs/types": "workspace:*"
89
89
  }
90
- }
90
+ }