@feedmepos/mf-brand-app-builder 0.5.19-dev.1 → 0.5.19-dev.4

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 (36) hide show
  1. package/README.md +37 -18
  2. package/dist/{App-djqaTpJK.js → App-DVLHiNG9.js} +3 -3
  3. package/dist/{AssetsSettings-DlxVE_kh.js → AssetsSettings-BvM-SP-0.js} +141 -140
  4. package/dist/{BrandkitView-okuZYwD5.js → BrandkitView-CblefL8X.js} +2614 -1739
  5. package/dist/{BuilderView-BYnQdLnw.js → BuilderView--q-5hMi3.js} +4043 -2393
  6. package/dist/ButtonGroup-Bj4keKPr.js +29 -0
  7. package/dist/{ColorPicker-BsSFgHSF.js → ColorPicker-I6CkNIxt.js} +50 -47
  8. package/dist/{ImageUpload-hoE0aTOn.js → ImageUpload-BjpONdvQ.js} +2 -2
  9. package/dist/{LinkButton-BGVmggik.js → LinkButton-DKtZH2cU.js} +1 -1
  10. package/dist/{ListRepeater-DCqV0LTM.js → ListRepeater-D4MyXNOt.js} +1 -1
  11. package/dist/{ManagementSettings-CuQCt7cj.js → ManagementSettings-DPBoHGLa.js} +73 -72
  12. package/dist/{ProjectView-D9Nlnspn.js → ProjectView-Crd-APxa.js} +393 -367
  13. package/dist/Select-DnIKki3a.js +95 -0
  14. package/dist/SettingsView-Cm0hTMsz.js +34 -0
  15. package/dist/app-BfAfuAYv.js +8693 -0
  16. package/dist/app.js +5 -4
  17. package/dist/client/components/src/views/_Credit.vue.d.ts +4 -0
  18. package/dist/client/components/src/views/_MemberProfile.vue.d.ts +5 -17
  19. package/dist/client/components/src/views/_Point.vue.d.ts +4 -0
  20. package/dist/client/merchant/src/app.d.ts +1544 -1
  21. package/dist/client/merchant/src/components/element-sidebar/ElementSidebar.vue.d.ts +1 -1
  22. package/dist/client/merchant/src/plugin/formkit-i18n.d.ts +2 -0
  23. package/dist/client/merchant/src/plugin/i18n.d.ts +2 -0
  24. package/dist/{image-Bi_ML0ft.js → image-CBUD2SnK.js} +1 -1
  25. package/dist/{index-D9RorkCV.js → index-B029PiqU.js} +1 -1
  26. package/dist/{index-nYUFS3mj.js → index-BNtn5C9X.js} +1 -1
  27. package/dist/{index-BxfIC7wL.js → index-Bzf4Ev8B.js} +1 -1
  28. package/dist/{index-aAXVQp3l.js → index-CHLideqw.js} +1 -1
  29. package/dist/{main-pKSbpQEA.js → main-DBrQC_KK.js} +968 -939
  30. package/dist/package.json +4 -2
  31. package/dist/style.css +1 -1
  32. package/package.json +4 -2
  33. package/dist/ButtonGroup-B3ba45VA.js +0 -25
  34. package/dist/Select-DQrjO2Su.js +0 -91
  35. package/dist/SettingsView-DFAxZPug.js +0 -33
  36. package/dist/app-CAYGmzf1.js +0 -4757
@@ -0,0 +1,29 @@
1
+ import { defineComponent as s, computed as n, resolveComponent as c, openBlock as m, createBlock as d } from "vue";
2
+ import { u as i } from "./app-BfAfuAYv.js";
3
+ const x = /* @__PURE__ */ s({
4
+ __name: "ButtonGroup",
5
+ props: {
6
+ context: {}
7
+ },
8
+ setup(u) {
9
+ const { t: l } = i(), t = u, o = n(() => t.context.groupItems.map((e) => ({
10
+ ...e,
11
+ label: l(e.label)
12
+ }))), r = (e) => {
13
+ t.context.node.input(e.value);
14
+ }, a = n(() => o.value.find(
15
+ (e) => JSON.stringify(e.value) === JSON.stringify(t.context._value)
16
+ ));
17
+ return (e, v) => {
18
+ const p = c("FmButtonGroup");
19
+ return m(), d(p, {
20
+ "model-value": a.value,
21
+ "onUpdate:modelValue": r,
22
+ items: o.value
23
+ }, null, 8, ["model-value", "items"]);
24
+ };
25
+ }
26
+ });
27
+ export {
28
+ x as default
29
+ };
@@ -1,4 +1,4 @@
1
- import { defineComponent as x, ref as f, watch as w, resolveComponent as m, openBlock as y, createBlock as h, withCtx as d, createVNode as i, createTextVNode as F, createElementVNode as t, createElementBlock as C, Fragment as B, renderList as V, normalizeClass as $, normalizeStyle as k, toDisplayString as P, computed as S, unref as D } from "vue";
1
+ import { defineComponent as x, ref as b, watch as w, resolveComponent as m, openBlock as y, createBlock as h, withCtx as d, createVNode as i, createTextVNode as F, createElementVNode as r, createElementBlock as C, Fragment as B, renderList as V, normalizeClass as $, normalizeStyle as k, toDisplayString as P, computed as S, unref as D } from "vue";
2
2
  import { K as E } from "./ColorPicker-CHzKbuCD.js";
3
3
  const L = { class: "grid grid-cols-4 place-items-center items-start gap-16 flex-wrap pb-24" }, N = { class: "flex flex-col items-center" }, z = ["onClick"], K = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary text-center" }, R = { class: "w-full flex gap-8 justify-end items-center" }, T = /* @__PURE__ */ x({
4
4
  __name: "LinkBrandkitColor",
@@ -6,15 +6,15 @@ const L = { class: "grid grid-cols-4 place-items-center items-start gap-16 flex-
6
6
  color: {}
7
7
  },
8
8
  emits: ["update"],
9
- setup(v, { emit: n }) {
10
- const p = v, l = f(p.color);
9
+ setup(f, { emit: l }) {
10
+ const p = f, a = b(p.color);
11
11
  w(
12
12
  () => p.color,
13
13
  (o) => {
14
- l.value = o;
14
+ a.value = o;
15
15
  }
16
16
  );
17
- const a = f(!1), b = n, s = [
17
+ const s = b(!1), v = l, e = [
18
18
  "--brand-color-primary",
19
19
  "--brand-color-secondary",
20
20
  "--brand-color-accent",
@@ -32,11 +32,11 @@ const L = { class: "grid grid-cols-4 place-items-center items-start gap-16 flex-
32
32
  "--brand-color-status-error",
33
33
  "--brand-color-status-info"
34
34
  ];
35
- return (o, e) => {
35
+ return (o, t) => {
36
36
  const u = m("FmButton"), c = m("FmDialog");
37
37
  return y(), h(c, {
38
- modelValue: a.value,
39
- "onUpdate:modelValue": e[2] || (e[2] = (r) => a.value = r),
38
+ modelValue: s.value,
39
+ "onUpdate:modelValue": t[2] || (t[2] = (n) => s.value = n),
40
40
  "dismiss-away": ""
41
41
  }, {
42
42
  "dialog-button": d(() => [
@@ -45,41 +45,41 @@ const L = { class: "grid grid-cols-4 place-items-center items-start gap-16 flex-
45
45
  icon: "link"
46
46
  })
47
47
  ]),
48
- "dialog-header": d(() => e[3] || (e[3] = [
48
+ "dialog-header": d(() => t[3] || (t[3] = [
49
49
  F(" Link with brandkit color ")
50
50
  ])),
51
51
  default: d(() => [
52
- t("div", L, [
53
- (y(), C(B, null, V(s, (r) => {
52
+ r("div", L, [
53
+ (y(), C(B, null, V(e, (n) => {
54
54
  var g, _;
55
- return t("div", N, [
56
- t("div", {
57
- onClick: (q) => l.value = r,
55
+ return r("div", N, [
56
+ r("div", {
57
+ onClick: (q) => a.value = n,
58
58
  class: $(["p-[2px] border-1 rounded-sm", {
59
- "border-fm-color-primary": (g = l.value) == null ? void 0 : g.includes(r),
60
- "border-fm-color-neutral-gray-200": !((_ = l.value) != null && _.includes(r))
59
+ "border-fm-color-primary": (g = a.value) == null ? void 0 : g.includes(n),
60
+ "border-fm-color-neutral-gray-200": !((_ = a.value) != null && _.includes(n))
61
61
  }])
62
62
  }, [
63
- t("div", {
63
+ r("div", {
64
64
  class: "h-[40px] aspect-square cursor-pointer",
65
- style: k({ backgroundColor: `var(${r})` })
65
+ style: k({ backgroundColor: `var(${n})` })
66
66
  }, null, 4)
67
67
  ], 10, z),
68
- t("div", K, P(r.replace("--brand-color-", "").replace(/-/g, " ")), 1)
68
+ r("div", K, P(n.replace("--brand-color-", "").replace(/-/g, " ")), 1)
69
69
  ]);
70
70
  }), 64))
71
71
  ])
72
72
  ]),
73
73
  "dialog-footer": d(() => [
74
- t("div", R, [
74
+ r("div", R, [
75
75
  i(u, {
76
76
  variant: "secondary",
77
77
  label: "Close",
78
- onClick: e[0] || (e[0] = (r) => a.value = !1)
78
+ onClick: t[0] || (t[0] = (n) => s.value = !1)
79
79
  }),
80
80
  i(u, {
81
81
  label: "Confirm",
82
- onClick: e[1] || (e[1] = (r) => (b("update", `var(${l.value})`), a.value = !1))
82
+ onClick: t[1] || (t[1] = (n) => (v("update", `var(${a.value})`), s.value = !1))
83
83
  })
84
84
  ])
85
85
  ]),
@@ -92,46 +92,49 @@ const L = { class: "grid grid-cols-4 place-items-center items-start gap-16 flex-
92
92
  props: {
93
93
  context: {}
94
94
  },
95
- setup(v) {
96
- const n = v, p = f(), l = async (s) => {
97
- await n.context.node.input(s);
98
- }, a = (s) => {
99
- navigator.clipboard.writeText(s);
100
- }, b = S(() => n.context._value.startsWith("var") ? getComputedStyle(document.documentElement).getPropertyValue(
101
- n.context._value.slice(
102
- 4,
103
- n.context._value.length - 1
104
- )
105
- ).trim() : n.context._value);
106
- return (s, o) => {
107
- const e = m("FmButton"), u = m("FmPopover");
95
+ setup(f) {
96
+ const l = f, p = b(), a = async (e) => {
97
+ await l.context.node.input(e);
98
+ }, s = (e) => {
99
+ navigator.clipboard.writeText(e);
100
+ }, v = S(() => {
101
+ var e;
102
+ return (e = l.context._value) != null && e.startsWith("var") ? getComputedStyle(document.documentElement).getPropertyValue(
103
+ l.context._value.slice(
104
+ 4,
105
+ l.context._value.length - 1
106
+ )
107
+ ).trim() : l.context._value;
108
+ });
109
+ return (e, o) => {
110
+ const t = m("FmButton"), u = m("FmPopover");
108
111
  return y(), C("div", U, [
109
112
  i(u, null, {
110
113
  "popover-button": d(() => [
111
- t("div", {
114
+ r("div", {
112
115
  ref_key: "elRef",
113
116
  ref: p,
114
117
  class: "w-[50px] h-[25px] relative border border-gray-400 rounded overflow-hidden"
115
118
  }, [
116
- o[3] || (o[3] = t("div", { class: "absolute inset-0 bg-checkerboard" }, null, -1)),
117
- t("div", {
119
+ o[3] || (o[3] = r("div", { class: "absolute inset-0 bg-checkerboard" }, null, -1)),
120
+ r("div", {
118
121
  class: "absolute inset-0",
119
- style: k({ backgroundColor: s.context._value })
122
+ style: k({ backgroundColor: e.context._value || "#ffffff00" })
120
123
  }, null, 4)
121
124
  ], 512)
122
125
  ]),
123
126
  default: d(() => [
124
- t("div", j, [
127
+ r("div", j, [
125
128
  i(D(E), {
126
- copy: a,
127
- onColorCopy: o[0] || (o[0] = (c) => a(c.cssColor)),
129
+ copy: s,
130
+ onColorCopy: o[0] || (o[0] = (c) => s(c.cssColor)),
128
131
  "default-format": "hex",
129
- color: b.value,
132
+ color: v.value,
130
133
  "visible-formats": ["hex"],
131
- onColorChange: o[1] || (o[1] = (c) => l(c.cssColor))
134
+ onColorChange: o[1] || (o[1] = (c) => a(c.cssColor))
132
135
  }, {
133
136
  "copy-button": d(() => [
134
- i(e, {
137
+ i(t, {
135
138
  class: "w-full h-32",
136
139
  variant: "secondary",
137
140
  icon: "content_copy"
@@ -144,8 +147,8 @@ const L = { class: "grid grid-cols-4 place-items-center items-start gap-16 flex-
144
147
  _: 1
145
148
  }),
146
149
  i(T, {
147
- color: n.context._value,
148
- onUpdate: o[2] || (o[2] = (c) => l(c))
150
+ color: l.context._value || "#ffffff00",
151
+ onUpdate: o[2] || (o[2] = (c) => a(c))
149
152
  }, null, 8, ["color"])
150
153
  ]);
151
154
  };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as y, ref as b, resolveComponent as w, openBlock as r, createElementBlock as s, createVNode as c, Fragment as C, createElementVNode as i, unref as u, createCommentVNode as f } from "vue";
2
- import { r as g, I as h } from "./image-Bi_ML0ft.js";
2
+ import { r as g, I as h } from "./image-CBUD2SnK.js";
3
3
  import { useCoreStore as I } from "@feedmepos/mf-common";
4
- import "./main-pKSbpQEA.js";
4
+ import "./main-DBrQC_KK.js";
5
5
  import { _ as $ } from "./Icon.vue_vue_type_style_index_0_lang-CVCHCcWR.js";
6
6
  import { C as k } from "./CircularProgress-h90pbjU3.js";
7
7
  import { v as F } from "./v4-ANoOI1Qw.js";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as I, ref as f, computed as k, onBeforeMount as L, resolveComponent as c, openBlock as u, createBlock as v, withCtx as m, createElementBlock as x, createElementVNode as a, toDisplayString as P, createVNode as r, withModifiers as R, Fragment as M, renderList as F } from "vue";
2
2
  import { B as y } from "./BaDivider-DWZv3fqi.js";
3
3
  import { _ as W } from "./Icon.vue_vue_type_style_index_0_lang-CVCHCcWR.js";
4
- import { u as $ } from "./index-BxfIC7wL.js";
4
+ import { u as $ } from "./index-Bzf4Ev8B.js";
5
5
  import "@feedmepos/mf-common";
6
6
  const j = {
7
7
  key: 1,
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as b, resolveComponent as y, openBlock as c, createBlock as s, unref as u, withCtx as i, createElementBlock as m, Fragment as x, renderList as g, createElementVNode as p, createVNode as n, resolveDynamicComponent as F } from "vue";
2
- import { F as f } from "./app-CAYGmzf1.js";
2
+ import { F as f } from "./app-BfAfuAYv.js";
3
3
  const h = { class: "flex justify-end gap-4 items-center w-full py-16 px-12 border-b" }, z = { class: "flex flex-col gap-4 w-full p-12" }, I = /* @__PURE__ */ b({
4
4
  __name: "ListRepeater",
5
5
  props: {
@@ -1,10 +1,11 @@
1
- import { defineComponent as j, ref as w, computed as z, watch as S, resolveComponent as m, openBlock as p, createElementBlock as y, createElementVNode as i, createVNode as l, unref as o, createBlock as F, withCtx as $, toDisplayString as C } from "vue";
2
- import { useCoreStore as U } from "@feedmepos/mf-common";
3
- import { B as g } from "./index-aAXVQp3l.js";
4
- import { K as P } from "./vue-sonner-PX6Req0V.js";
5
- import { r as V, I as q } from "./image-Bi_ML0ft.js";
6
- import { useSnackbar as A } from "@feedmepos/ui-library";
7
- const I = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), R = [
1
+ import { defineComponent as C, ref as y, computed as S, watch as $, resolveComponent as d, openBlock as g, createElementBlock as k, createElementVNode as o, toDisplayString as _, unref as i, createVNode as u, createBlock as F, withCtx as U } from "vue";
2
+ import { useCoreStore as P } from "@feedmepos/mf-common";
3
+ import { B as h } from "./index-CHLideqw.js";
4
+ import { K as V } from "./vue-sonner-PX6Req0V.js";
5
+ import { r as q, I } from "./image-CBUD2SnK.js";
6
+ import { useSnackbar as T } from "@feedmepos/ui-library";
7
+ import { u as A } from "./app-BfAfuAYv.js";
8
+ const E = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), N = [
8
9
  "brand",
9
10
  "home",
10
11
  "app",
@@ -502,17 +503,17 @@ const I = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), R = [
502
503
  "za",
503
504
  "zm",
504
505
  "zw"
505
- ], L = { class: "w-full flex flex-col gap-40" }, T = { class: "flex flex-col gap-24" }, E = { class: "w-full flex items-center justify-between h-[36px]" }, D = { class: "w-full flex gap-32" }, K = { class: "relative shrink-0 h-[100px] w-[100px]" }, M = ["src"], N = { class: "absolute -top-8 -right-8 rounded-full h-32 w-32 border border-fm-color-neutral-gray-100 bg-fm-color-neutral-white flex justify-center items-center" }, O = { class: "w-full flex flex-col gap-24 max-w-[400px]" }, G = { class: "text-fm-color-typo-secondary" }, ee = /* @__PURE__ */ j({
506
+ ], D = { class: "w-full flex flex-col gap-40" }, K = { class: "flex flex-col gap-24" }, R = { class: "w-full flex items-center justify-between h-[36px]" }, L = { class: "fm-typo-en-title-sm-600 text-fm-color-typo-primary" }, M = { class: "w-full flex gap-32" }, O = { class: "relative shrink-0 h-[100px] w-[100px]" }, G = ["src"], H = { class: "absolute -top-8 -right-8 rounded-full h-32 w-32 border border-fm-color-neutral-gray-100 bg-fm-color-neutral-white flex justify-center items-center" }, J = { class: "w-full flex flex-col gap-24 max-w-[400px]" }, Q = { class: "text-fm-color-typo-secondary" }, ne = /* @__PURE__ */ C({
506
507
  __name: "ManagementSettings",
507
- setup(H) {
508
- const s = U(), h = A(), d = w(!0), a = w({
508
+ setup(W) {
509
+ const s = P(), b = T(), { t: n } = A(), p = y(!0), a = y({
509
510
  name: "",
510
511
  url: "",
511
512
  thumbnail: ""
512
- }), k = z(
513
+ }), x = S(
513
514
  () => "https://{slug}.feedmedev.vip".replace("https://{slug}", "")
514
515
  );
515
- function _() {
516
+ function B() {
516
517
  var t, e;
517
518
  navigator.clipboard.writeText(
518
519
  "https://{slug}.feedmedev.vip".replace(
@@ -520,30 +521,30 @@ const I = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), R = [
520
521
  ((t = s.currentBusiness.value) == null ? void 0 : t.url) ?? ((e = s.currentBusiness.value) == null ? void 0 : e._id)
521
522
  )
522
523
  ).then(() => {
523
- h.open(
524
+ b.open(
524
525
  {
525
- message: "Copied URL to clipboard!",
526
+ message: n("brand.settings.management.toast.copiedUrl"),
526
527
  type: "success"
527
528
  },
528
529
  1500
529
530
  );
530
- }).catch((r) => {
531
- h.open(
531
+ }).catch((l) => {
532
+ b.open(
532
533
  {
533
- message: "Failed to copy URL to clipboard",
534
+ message: n("brand.settings.management.toast.failedToCopyUrl"),
534
535
  type: "error"
535
536
  },
536
537
  1500
537
538
  );
538
539
  });
539
540
  }
540
- function x() {
541
- P.promise(
542
- g.setShortUrl(
541
+ function j() {
542
+ V.promise(
543
+ h.setShortUrl(
543
544
  a.value.url,
544
545
  s.currentBusiness.value.url ?? "",
545
546
  s.currentBusiness.value._id
546
- ).then(async (t) => await g.updateBusinessProfile(
547
+ ).then(async (t) => await h.updateBusinessProfile(
547
548
  s.currentBusiness.value._id,
548
549
  {
549
550
  name: a.value.name,
@@ -557,21 +558,21 @@ const I = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), R = [
557
558
  throw { message: t.message };
558
559
  }),
559
560
  {
560
- loading: "Saving your settings...",
561
- success: () => "Settings saved",
562
- error: (t) => t.message ?? "An error occured when saving your settings, please try again"
561
+ loading: n("brand.settings.management.toast.saving"),
562
+ success: () => n("brand.settings.management.toast.saved"),
563
+ error: (t) => t.message ?? n("brand.settings.management.toast.errorSaving")
563
564
  }
564
565
  );
565
566
  }
566
- function B(t) {
567
- var r, u;
568
- const e = ((r = t.dataTransfer) == null ? void 0 : r.files[0]) ?? ((u = t.target) == null ? void 0 : u.files[0]);
569
- q.uploadImage(
567
+ function z(t) {
568
+ var l, m;
569
+ const e = ((l = t.dataTransfer) == null ? void 0 : l.files[0]) ?? ((m = t.target) == null ? void 0 : m.files[0]);
570
+ I.uploadImage(
570
571
  s.currentBusiness.value._id,
571
572
  `thumbnail/${(/* @__PURE__ */ new Date()).toISOString()}.${e.name.split(".").pop()}`,
572
573
  e
573
574
  ).then(async (c) => {
574
- await g.updateBusinessProfile(s.currentBusiness.value._id, {
575
+ await h.updateBusinessProfile(s.currentBusiness.value._id, {
575
576
  name: a.value.name,
576
577
  url: a.value.url,
577
578
  thumbnail: `https://image.feedmedev.cc/business/${s.currentBusiness.value._id}/${c.imagePath}`,
@@ -579,45 +580,45 @@ const I = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), R = [
579
580
  }), a.value.thumbnail = `https://image.feedmedev.cc/business/${s.currentBusiness.value._id}/${c.imagePath}`;
580
581
  });
581
582
  }
582
- return S(
583
+ return $(
583
584
  () => s.currentBusiness.value,
584
585
  () => {
585
- var t, e, r;
586
- a.value.name = ((t = s.currentBusiness.value) == null ? void 0 : t.name) ?? "", a.value.url = ((e = s.currentBusiness.value) == null ? void 0 : e.url) ?? "", a.value.thumbnail = ((r = s.currentBusiness.value) == null ? void 0 : r.thumbnail) ?? "";
586
+ var t, e, l;
587
+ a.value.name = ((t = s.currentBusiness.value) == null ? void 0 : t.name) ?? "", a.value.url = ((e = s.currentBusiness.value) == null ? void 0 : e.url) ?? "", a.value.thumbnail = ((l = s.currentBusiness.value) == null ? void 0 : l.thumbnail) ?? "";
587
588
  },
588
589
  { immediate: !0 }
589
590
  ), (t, e) => {
590
- var v, b;
591
- const r = m("FmButton"), u = m("FmAvatar"), c = m("FmIcon"), f = m("FmTextField");
592
- return p(), y("div", L, [
593
- i("div", T, [
594
- i("div", E, [
595
- e[4] || (e[4] = i("h2", { class: "fm-typo-en-title-sm-600 text-fm-color-typo-primary" }, " Business details ", -1)),
596
- l(r, {
597
- disabled: d.value,
598
- label: "Save",
599
- onClick: x
600
- }, null, 8, ["disabled"])
591
+ var v, w;
592
+ const l = d("FmButton"), m = d("FmAvatar"), c = d("FmIcon"), f = d("FmTextField");
593
+ return g(), k("div", D, [
594
+ o("div", K, [
595
+ o("div", R, [
596
+ o("h2", L, _(i(n)("brand.settings.management.details")), 1),
597
+ u(l, {
598
+ disabled: p.value,
599
+ label: i(n)("brand.settings.management.save"),
600
+ onClick: j
601
+ }, null, 8, ["disabled", "label"])
601
602
  ]),
602
- i("div", D, [
603
- i("div", K, [
604
- a.value.thumbnail ? (p(), y("img", {
603
+ o("div", M, [
604
+ o("div", O, [
605
+ a.value.thumbnail ? (g(), k("img", {
605
606
  key: 0,
606
607
  class: "h-full w-full rounded-full",
607
- src: o(V)(a.value.thumbnail)
608
- }, null, 8, M)) : (p(), F(u, {
608
+ src: i(q)(a.value.thumbnail)
609
+ }, null, 8, G)) : (g(), F(m, {
609
610
  key: 1,
610
- name: ((v = o(s).currentBusiness.value) == null ? void 0 : v.name) ?? "",
611
+ name: ((v = i(s).currentBusiness.value) == null ? void 0 : v.name) ?? "",
611
612
  class: "h-full w-full !fm-typo-en-title-md-600 bg-fm-color-primary-oats text-fm-color-primary"
612
613
  }, null, 8, ["name"])),
613
- i("button", N, [
614
- i("input", {
614
+ o("button", H, [
615
+ o("input", {
615
616
  class: "absolute top-0 left-0 h-32 w-32 opacity-0 cursor-pointer",
616
617
  type: "file",
617
618
  accept: "image/*",
618
- onChange: B
619
+ onChange: z
619
620
  }, null, 32),
620
- l(c, {
621
+ u(c, {
621
622
  size: "md",
622
623
  name: "edit",
623
624
  color: "neutral-black",
@@ -625,40 +626,40 @@ const I = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), R = [
625
626
  })
626
627
  ])
627
628
  ]),
628
- i("div", O, [
629
- l(f, {
629
+ o("div", J, [
630
+ u(f, {
630
631
  class: "w-full",
631
- label: "Business name",
632
+ label: i(n)("brand.settings.management.businessName"),
632
633
  modelValue: a.value.name,
633
634
  "onUpdate:modelValue": [
634
- e[0] || (e[0] = (n) => a.value.name = n),
635
- e[1] || (e[1] = (n) => d.value = !1)
635
+ e[0] || (e[0] = (r) => a.value.name = r),
636
+ e[1] || (e[1] = (r) => p.value = !1)
636
637
  ]
637
- }, null, 8, ["modelValue"]),
638
- l(f, {
638
+ }, null, 8, ["label", "modelValue"]),
639
+ u(f, {
639
640
  class: "w-full",
640
- label: "URL",
641
- placeholder: (b = o(s).currentBusiness.value) == null ? void 0 : b._id,
641
+ label: i(n)("brand.settings.management.url"),
642
+ placeholder: (w = i(s).currentBusiness.value) == null ? void 0 : w._id,
642
643
  modelValue: a.value.url,
643
644
  "onUpdate:modelValue": [
644
- e[2] || (e[2] = (n) => a.value.url = n),
645
- e[3] || (e[3] = (n) => d.value = !1)
645
+ e[2] || (e[2] = (r) => a.value.url = r),
646
+ e[3] || (e[3] = (r) => p.value = !1)
646
647
  ],
647
648
  rules: [
648
- (n) => !n || o(I).test(n) || "Min 6 characters, alphanumeric only",
649
- (n) => !n || !o(R).includes(n) || "Business URL is reserved"
649
+ (r) => !r || i(E).test(r) || i(n)("brand.settings.management.validation.minCharacters"),
650
+ (r) => !r || !i(N).includes(r) || i(n)("brand.settings.management.validation.reservedUrl")
650
651
  ]
651
652
  }, {
652
- append: $(() => [
653
- i("span", G, C(k.value), 1),
654
- l(r, {
653
+ append: U(() => [
654
+ o("span", Q, _(x.value), 1),
655
+ u(l, {
655
656
  icon: "content_copy",
656
657
  variant: "plain",
657
- onClick: _
658
+ onClick: B
658
659
  })
659
660
  ]),
660
661
  _: 1
661
- }, 8, ["placeholder", "modelValue", "rules"])
662
+ }, 8, ["label", "placeholder", "modelValue", "rules"])
662
663
  ])
663
664
  ])
664
665
  ])
@@ -667,5 +668,5 @@ const I = new RegExp(/^[a-z0-9][a-z0-9\-]{4,}[a-z0-9]$/), R = [
667
668
  }
668
669
  });
669
670
  export {
670
- ee as default
671
+ ne as default
671
672
  };