@oneclick.dev/cms-core-modules 0.0.110 → 0.0.111

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 (62) hide show
  1. package/dist/{Acquisition-Dt2rREU8.js → Acquisition-DgzDQH51.js} +1 -1
  2. package/dist/{Acquisition-DNCy8nQz.mjs → Acquisition-FV3QpaUX.mjs} +2 -2
  3. package/dist/{Audience-Bs7b0TNm.js → Audience-BSgNvcVb.js} +1 -1
  4. package/dist/{Audience-CUeMVYRy.mjs → Audience-ka0b7YPE.mjs} +2 -2
  5. package/dist/{ContentEditor-D9-1SJ5F.mjs → ContentEditor-pZPfo0qN.mjs} +4384 -4282
  6. package/dist/{ContentEditor-BprPiHMJ.js → ContentEditor-tYkh4vRV.js} +42 -42
  7. package/dist/{Create-89z41K73.js → Create--MOBOTA-.js} +1 -1
  8. package/dist/{Create-BCklc_T1.mjs → Create-BXNLRQag.mjs} +1 -1
  9. package/dist/DateFormatter-CSAbE3BC.js +1 -0
  10. package/dist/{DateFormatter-DUxlo8X8.mjs → DateFormatter-qbhRYxI_.mjs} +226 -222
  11. package/dist/{Detail-CNlljBfH.mjs → Detail-ChD5XurA.mjs} +1 -1
  12. package/dist/{Detail-C857g62L.js → Detail-RISEJJab.js} +1 -1
  13. package/dist/{Find-DIISO5GO.mjs → Find-zN_dKz4p.mjs} +1 -1
  14. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Baqy-rTT.js +1 -0
  15. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dx4Bpa2m.mjs +1263 -0
  16. package/dist/{Overview-Di84CsR5.mjs → Overview-98nkJUWN.mjs} +162 -157
  17. package/dist/{Overview-C-Jb_BxY.mjs → Overview-BR_y8x3W.mjs} +1 -1
  18. package/dist/{Overview-DC9io1bk.js → Overview-CX-n6W7d.js} +1 -1
  19. package/dist/Overview-Dl8cMlsr.js +1 -0
  20. package/dist/{Overview-BKAti8nc.mjs → Overview-MpgkLB6m.mjs} +36 -36
  21. package/dist/{SeoHealth-az1YuNF2.js → SeoHealth-C5npw7mE.js} +1 -1
  22. package/dist/{SeoHealth-MC3lSCOY.mjs → SeoHealth-bVQj_Xgm.mjs} +29 -29
  23. package/dist/{TableView-DXHhJ-jm.mjs → TableView-Bf1fdJrD.mjs} +1838 -1822
  24. package/dist/TableView-DNcXyIMu.js +4 -0
  25. package/dist/{agenda-IOqtALWf.js → agenda-BaJu3-1c.js} +1 -1
  26. package/dist/{agenda-DcatSSYQ.mjs → agenda-BwVY_8oM.mjs} +3 -3
  27. package/dist/cms-core-modules.css +1 -1
  28. package/dist/{exceptions-CI0B4xVj.js → exceptions-B6P9UiCj.js} +1 -1
  29. package/dist/{exceptions-YCQkHa6a.mjs → exceptions-De9-FvdP.mjs} +67 -67
  30. package/dist/{index-CpzDEMeC.mjs → index-B8GvmAwh.mjs} +438 -478
  31. package/dist/{index-wjkEPsNx.mjs → index-BIF2RB7k.mjs} +1212 -1316
  32. package/dist/index-ByRsp77L.js +70 -0
  33. package/dist/{index-BhWvXMOp.mjs → index-CFzn2Lus.mjs} +5 -9
  34. package/dist/{index-BFLV54kw.mjs → index-CkVwMqpn.mjs} +1114 -1100
  35. package/dist/index-DL6orwdK.js +35 -0
  36. package/dist/index-DUlYrnXH.js +58 -0
  37. package/dist/index-DZV720u-.mjs +439 -0
  38. package/dist/index-D_nfGegA.js +184 -0
  39. package/dist/index-DtSvAFLL.js +54 -0
  40. package/dist/{index-D30apIn-.mjs → index-L54VBzwJ.mjs} +2 -3
  41. package/dist/{index-BzWmWCo5.mjs → index-hH3e-IYz.mjs} +267 -267
  42. package/dist/index.cjs.js +1 -1
  43. package/dist/index.mjs +15 -15
  44. package/dist/math-BJ-oX_IM.mjs +80 -0
  45. package/dist/math-emotyaF6.js +1 -0
  46. package/dist/{resources-CYOb5Bl6.mjs → resources-DwYxn2Vi.mjs} +1 -1
  47. package/dist/src/contentManager/components/content-editor/tiptap-extensions/ScopedSelectAll.d.ts +1 -2
  48. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/useFocus.d.ts +1 -0
  49. package/package.json +2 -2
  50. package/dist/DateFormatter-CYAD4GBN.js +0 -1
  51. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Ceoje52V.js +0 -1
  52. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dh9jzvE0.mjs +0 -1255
  53. package/dist/Overview-UoZHUMUz.js +0 -1
  54. package/dist/TableView-DQW0A1oG.js +0 -4
  55. package/dist/array-CbATeQbk.js +0 -1
  56. package/dist/array-DT5pE8Gm.mjs +0 -108
  57. package/dist/index-A2kp8Isi.js +0 -75
  58. package/dist/index-B5aBwdxY.js +0 -54
  59. package/dist/index-BiT55eU0.js +0 -58
  60. package/dist/index-G7cIlnGN.js +0 -158
  61. package/dist/index-V78huaSJ.mjs +0 -442
  62. package/dist/index-vHmvbEwa.js +0 -35
@@ -1,7 +1,7 @@
1
- import { defineComponent as _e, ref as z, computed as P, resolveComponent as d, openBlock as u, createElementBlock as g, Fragment as G, createElementVNode as o, createVNode as n, createBlock as b, withCtx as s, unref as l, createTextVNode as p, createCommentVNode as C, toDisplayString as f, renderList as xe, normalizeClass as L, normalizeStyle as F, withModifiers as N } from "vue";
2
- import { useModule as ye, useFirebaseIntegration as be, useModuleRoute as Ce, useConfirmation as ke, useModulePermissions as we, useModuleBreadcrumbs as he } from "@oneclick.dev/cms-kit";
3
- import { CalendarX as Ae, PlusIcon as H, Search as J, MoreHorizontalIcon as Y, ImportIcon as Ee, Upload as q, CheckCircle2 as Me, Clock as $e, DollarSign as ze, Users as De, CalendarDays as Q, Copy as Ie, ChevronsLeftRightEllipsis as Ne, Trash2Icon as Se } from "lucide-vue-next";
4
- const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
1
+ import { defineComponent as _e, ref as z, computed as L, resolveComponent as u, openBlock as d, createElementBlock as f, Fragment as F, createElementVNode as o, createVNode as n, createBlock as k, withCtx as s, unref as i, createTextVNode as m, createCommentVNode as x, toDisplayString as g, renderList as ye, normalizeClass as H, normalizeStyle as J, withModifiers as N } from "vue";
2
+ import { useModule as xe, useFirebaseIntegration as be, useModuleRoute as Ce, useConfirmation as ke, useModulePermissions as we, useModuleBreadcrumbs as he } from "@oneclick.dev/cms-kit";
3
+ import { CalendarX as Ae, PlusIcon as Y, Search as q, MoreHorizontalIcon as Q, ImportIcon as Ee, Upload as X, CheckCircle2 as Me, Clock as $e, DollarSign as ze, Users as De, CalendarDays as K, Copy as Ie, ChevronsLeftRightEllipsis as Ne, Trash2Icon as Se } from "lucide-vue-next";
4
+ const je = { class: "container @container mx-auto py-8" }, Te = {
5
5
  key: 0,
6
6
  class: "flex justify-center py-24"
7
7
  }, Ve = { class: "flex gap-2" }, Be = { key: 2 }, Ue = { class: "flex flex-col gap-4 mb-6 @md:flex-row @md:items-end @md:justify-between" }, Oe = { class: "flex flex-wrap items-center gap-2" }, Re = { class: "relative" }, Pe = {
@@ -13,40 +13,43 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
13
13
  }, Je = { class: "font-medium" }, Ye = {
14
14
  key: 2,
15
15
  class: "grid gap-4 @md:grid-cols-2 @3xl:grid-cols-3"
16
- }, qe = ["onClick"], Qe = { class: "flex flex-col flex-1 p-5" }, Xe = { class: "flex items-start gap-3" }, Ke = ["disabled", "onClick"], We = { class: "text-base font-semibold leading-tight line-clamp-1" }, Ze = { class: "flex items-center gap-2 mt-1" }, et = { class: "text-xs text-muted-foreground cursor-pointer" }, tt = {
16
+ }, qe = ["onClick"], Qe = ["onClick"], Xe = { class: "flex items-start gap-3" }, Ke = ["onClick"], We = { class: "text-base font-semibold leading-tight line-clamp-1" }, Ze = { class: "flex items-center gap-2 mt-1" }, et = {
17
+ key: 0,
18
+ class: "text-xs text-muted-foreground cursor-pointer"
19
+ }, tt = {
17
20
  key: 0,
18
21
  class: "shrink-0"
19
- }, nt = { class: "grid grid-cols-3 gap-2 mt-5" }, ot = { class: "flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2" }, st = { class: "flex items-center gap-1 text-muted-foreground" }, lt = { class: "text-sm font-semibold" }, rt = { class: "flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2" }, it = { class: "flex items-center gap-1 text-muted-foreground" }, at = { class: "text-sm font-semibold" }, dt = { class: "flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2" }, ut = { class: "flex items-center gap-1 text-muted-foreground" }, ct = { class: "text-sm font-semibold" }, pt = {
22
+ }, nt = { class: "grid grid-cols-3 gap-2 mt-5" }, ot = { class: "flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2" }, st = { class: "flex items-center gap-1 text-muted-foreground" }, lt = { class: "text-sm font-semibold" }, it = { class: "flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2" }, rt = { class: "flex items-center gap-1 text-muted-foreground" }, at = { class: "text-sm font-semibold" }, dt = { class: "flex flex-col items-start gap-1 rounded-lg bg-muted/40 px-3 py-2" }, ut = { class: "flex items-center gap-1 text-muted-foreground" }, ct = { class: "text-sm font-semibold" }, pt = {
20
23
  key: 0,
21
24
  class: "flex items-center justify-between gap-2 px-5 py-3 border-t bg-muted/20"
22
25
  }, _t = /* @__PURE__ */ _e({
23
26
  __name: "Overview",
24
27
  setup(mt) {
25
- const { config: k } = ye(), M = be(k.project), { navigateTo: w } = Ce(), { confirm: X } = ke(), { hasPermission: v } = we();
28
+ const { config: w } = xe(), M = be(w.project), { navigateTo: h } = Ce(), { confirm: W } = ke(), { hasPermission: v } = we();
26
29
  he(() => []);
27
- const _ = z(null), D = z(""), m = z(!1), i = z([]), j = z("importAgendasInput"), y = P(() => {
30
+ const _ = z(null), D = z(""), c = z(!1), r = z([]), j = z("importAgendasInput"), b = L(() => {
28
31
  if (!_.value) return [];
29
32
  const t = D.value.trim().toLowerCase();
30
33
  return t ? _.value.filter(
31
34
  (e) => (e.serviceName || "").toLowerCase().includes(t)
32
35
  ) : _.value;
33
- }), T = P(
34
- () => y.value.length > 0 && y.value.every((t) => i.value.includes(t.id))
35
- ), K = () => {
36
+ }), T = L(
37
+ () => b.value.length > 0 && b.value.every((t) => r.value.includes(t.id))
38
+ ), Z = () => {
36
39
  if (T.value) {
37
- const t = y.value.map((e) => e.id);
38
- i.value = i.value.filter((e) => !t.includes(e));
40
+ const t = b.value.map((e) => e.id);
41
+ r.value = r.value.filter((e) => !t.includes(e));
39
42
  } else {
40
- const t = y.value.map((a) => a.id), e = /* @__PURE__ */ new Set([...i.value, ...t]);
41
- i.value = Array.from(e);
43
+ const t = b.value.map((a) => a.id), e = /* @__PURE__ */ new Set([...r.value, ...t]);
44
+ r.value = Array.from(e);
42
45
  }
43
- }, W = (t) => {
44
- i.value.includes(t) ? i.value = i.value.filter((e) => e !== t) : i.value.push(t);
45
- }, Z = (t) => {
46
+ }, V = (t) => {
47
+ r.value.includes(t) ? r.value = r.value.filter((e) => e !== t) : r.value.push(t);
48
+ }, ee = (t) => {
46
49
  if (!t) return "??";
47
50
  const e = t.trim().split(/\s+/);
48
51
  return e.length === 1 ? e[0].slice(0, 2).toUpperCase() : (e[0][0] + e[e.length - 1][0]).toUpperCase();
49
- }, V = [
52
+ }, B = [
50
53
  { fg: "#7c3aed", bg: "rgba(124, 58, 237, 0.12)" },
51
54
  // violet
52
55
  { fg: "#0891b2", bg: "rgba(8, 145, 178, 0.12)" },
@@ -64,21 +67,21 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
64
67
  ], S = (t) => {
65
68
  const e = (t.id || t.serviceName || "").toString();
66
69
  let a = 0;
67
- for (let c = 0; c < e.length; c++) a = a * 31 + e.charCodeAt(c) >>> 0;
68
- return V[a % V.length];
69
- }, ee = (t) => {
70
+ for (let p = 0; p < e.length; p++) a = a * 31 + e.charCodeAt(p) >>> 0;
71
+ return B[a % B.length];
72
+ }, te = (t) => {
70
73
  const e = t?.pricingOptions?.[0];
71
74
  return e?.duration ? `${e.duration} min` : null;
72
- }, te = (t) => {
75
+ }, ne = (t) => {
73
76
  const e = t?.pricingOptions?.[0];
74
77
  return e?.price === void 0 || e?.price === null || e?.price === "" ? null : `${t.currency === "EUR" ? "€" : "$"}${e.price}`;
75
- }, ne = (t) => Array.isArray(t?.resources) ? t.resources.filter((e) => e?.isActive !== !1).length : 0, oe = (t) => t.type === "regular" ? "Regular" : t.type ? t.type.charAt(0).toUpperCase() + t.type.slice(1) : "Agenda", se = (t) => {
76
- m.value = !0, i.value = [t];
78
+ }, oe = (t) => Array.isArray(t?.resources) ? t.resources.filter((e) => e?.isActive !== !1).length : 0, se = (t) => t.type === "regular" ? "Regular" : t.type ? t.type.charAt(0).toUpperCase() + t.type.slice(1) : "Agenda", le = (t) => {
79
+ c.value = !0, r.value = [t];
77
80
  }, I = async () => {
78
- _.value = await M.find(k.agendaCollection);
79
- }, le = async (t) => {
81
+ _.value = await M.find(w.agendaCollection);
82
+ }, ie = async (t) => {
80
83
  if (!v("create-agendas")) return;
81
- const e = await M.get(k.agendaCollection, t);
84
+ const e = await M.get(w.agendaCollection, t);
82
85
  if (!e) {
83
86
  alert("Agenda not found");
84
87
  return;
@@ -86,66 +89,66 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
86
89
  const a = prompt("Enter name for duplicated agenda", e.serviceName + " (Copy)");
87
90
  if (!a)
88
91
  return;
89
- const c = { ...e, serviceName: a };
90
- delete c.id, await M.add(k.agendaCollection, c), await I();
92
+ const p = { ...e, serviceName: a };
93
+ delete p.id, await M.add(w.agendaCollection, p), await I();
91
94
  }, re = async (t) => {
92
- !v("delete-agendas") || !await X("Are you sure you want to delete this agenda? This action cannot be undone.") || (await M.remove(k.agendaCollection, t), await I());
93
- }, ie = async () => {
95
+ !v("delete-agendas") || !await W("Are you sure you want to delete this agenda? This action cannot be undone.") || (await M.remove(w.agendaCollection, t), await I());
96
+ }, ae = async () => {
94
97
  if (!_.value) return;
95
- let t = _.value.filter((c) => i.value.includes(c.id));
96
- t = t.map((c) => {
97
- const { id: h, ...A } = c;
98
- return A;
98
+ let t = _.value.filter((p) => r.value.includes(p.id));
99
+ t = t.map((p) => {
100
+ const { id: A, ...E } = p;
101
+ return E;
99
102
  });
100
103
  const e = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(t, null, 2)), a = document.createElement("a");
101
- a.setAttribute("href", e), a.setAttribute("download", "agendas_export.json"), document.body.appendChild(a), a.click(), a.remove(), m.value = !1, i.value = [];
102
- }, ae = async (t) => {
104
+ a.setAttribute("href", e), a.setAttribute("download", "agendas_export.json"), document.body.appendChild(a), a.click(), a.remove(), c.value = !1, r.value = [];
105
+ }, de = async (t) => {
103
106
  const e = t.target;
104
107
  if (!e.files || e.files.length === 0)
105
108
  return;
106
- const c = await e.files[0].text();
107
- let h;
109
+ const p = await e.files[0].text();
110
+ let A;
108
111
  try {
109
- h = JSON.parse(c);
112
+ A = JSON.parse(p);
110
113
  } catch {
111
114
  alert("Invalid JSON file");
112
115
  return;
113
116
  }
114
- if (!Array.isArray(h)) {
117
+ if (!Array.isArray(A)) {
115
118
  alert("Invalid agendas format");
116
119
  return;
117
120
  }
118
- for (const A of h)
119
- await M.add(k.agendaCollection, A);
121
+ for (const E of A)
122
+ await M.add(w.agendaCollection, E);
120
123
  e.value = "", await I();
121
- }, de = (t) => {
122
- m.value || (v("edit-agendas") ? w(`/edit/${t}`) : w(`/edit/${t}/agenda`));
124
+ }, U = (t) => {
125
+ c.value || (v("edit-agendas") ? h(`/edit/${t}`) : h(`/edit/${t}/agenda`));
123
126
  };
124
127
  return I(), (t, e) => {
125
- const a = d("Spinner"), c = d("EmptyMedia"), h = d("EmptyTitle"), A = d("EmptyDescription"), ue = d("EmptyHeader"), x = d("Button"), ce = d("EmptyContent"), pe = d("Empty"), me = d("Input"), B = d("DropdownMenuTrigger"), $ = d("DropdownMenuItem"), U = d("DropdownMenuGroup"), O = d("DropdownMenuContent"), R = d("DropdownMenu"), fe = d("ButtonGroup"), ge = d("Checkbox"), ve = d("Badge");
126
- return u(), g(G, null, [
128
+ const a = u("Spinner"), p = u("EmptyMedia"), A = u("EmptyTitle"), E = u("EmptyDescription"), ue = u("EmptyHeader"), y = u("Button"), ce = u("EmptyContent"), pe = u("Empty"), me = u("Input"), O = u("DropdownMenuTrigger"), $ = u("DropdownMenuItem"), R = u("DropdownMenuGroup"), P = u("DropdownMenuContent"), G = u("DropdownMenu"), fe = u("ButtonGroup"), ge = u("Checkbox"), ve = u("Badge");
129
+ return d(), f(F, null, [
127
130
  o("div", je, [
128
- _.value === null ? (u(), g("div", Te, [
131
+ _.value === null ? (d(), f("div", Te, [
129
132
  n(a, { class: "mx-auto" })
130
- ])) : _.value.length === 0 ? (u(), b(pe, { key: 1 }, {
133
+ ])) : _.value.length === 0 ? (d(), k(pe, { key: 1 }, {
131
134
  default: s(() => [
132
135
  n(ue, null, {
133
136
  default: s(() => [
134
- n(c, { variant: "icon" }, {
137
+ n(p, { variant: "icon" }, {
135
138
  default: s(() => [
136
- n(l(Ae), { class: "size-4-6" })
139
+ n(i(Ae), { class: "size-4-6" })
137
140
  ]),
138
141
  _: 1
139
142
  }),
140
- n(h, null, {
143
+ n(A, null, {
141
144
  default: s(() => [...e[6] || (e[6] = [
142
- p("No Agendas Yet", -1)
145
+ m("No Agendas Yet", -1)
143
146
  ])]),
144
147
  _: 1
145
148
  }),
146
- n(A, null, {
149
+ n(E, null, {
147
150
  default: s(() => [...e[7] || (e[7] = [
148
- p(" You haven't created any agenda yet. Get started by creating your first agenda. ", -1)
151
+ m(" You haven't created any agenda yet. Get started by creating your first agenda. ", -1)
149
152
  ])]),
150
153
  _: 1
151
154
  })
@@ -155,12 +158,12 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
155
158
  n(ce, null, {
156
159
  default: s(() => [
157
160
  o("div", Ve, [
158
- n(x, {
159
- onClick: e[0] || (e[0] = (r) => l(w)("/create"))
161
+ n(y, {
162
+ onClick: e[0] || (e[0] = (l) => i(h)("/create"))
160
163
  }, {
161
164
  default: s(() => [
162
- n(l(H)),
163
- e[8] || (e[8] = p(" Create Agenda ", -1))
165
+ n(i(Y)),
166
+ e[8] || (e[8] = m(" Create Agenda ", -1))
164
167
  ]),
165
168
  _: 1
166
169
  })
@@ -170,7 +173,7 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
170
173
  })
171
174
  ]),
172
175
  _: 1
173
- })) : (u(), g("div", Be, [
176
+ })) : (d(), f("div", Be, [
174
177
  o("div", Ue, [
175
178
  e[11] || (e[11] = o("div", null, [
176
179
  o("h2", { class: "text-3xl font-bold tracking-tight" }, "Agendas"),
@@ -178,54 +181,54 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
178
181
  ], -1)),
179
182
  o("div", Oe, [
180
183
  o("div", Re, [
181
- n(l(J), { class: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none" }),
184
+ n(i(q), { class: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none" }),
182
185
  n(me, {
183
186
  modelValue: D.value,
184
- "onUpdate:modelValue": e[1] || (e[1] = (r) => D.value = r),
187
+ "onUpdate:modelValue": e[1] || (e[1] = (l) => D.value = l),
185
188
  placeholder: "Search agendas...",
186
189
  class: "pl-9 w-full @md:w-64"
187
190
  }, null, 8, ["modelValue"])
188
191
  ]),
189
- !m.value && l(v)("create-agendas") ? (u(), b(fe, { key: 0 }, {
192
+ !c.value && i(v)("create-agendas") ? (d(), k(fe, { key: 0 }, {
190
193
  default: s(() => [
191
- n(x, {
192
- onClick: e[2] || (e[2] = (r) => l(w)("/create"))
194
+ n(y, {
195
+ onClick: e[2] || (e[2] = (l) => i(h)("/create"))
193
196
  }, {
194
197
  default: s(() => [
195
- n(l(H)),
196
- e[9] || (e[9] = p(" New Agenda ", -1))
198
+ n(i(Y)),
199
+ e[9] || (e[9] = m(" New Agenda ", -1))
197
200
  ]),
198
201
  _: 1
199
202
  }),
200
- n(R, null, {
203
+ n(G, null, {
201
204
  default: s(() => [
202
- n(B, { "as-child": "" }, {
205
+ n(O, { "as-child": "" }, {
203
206
  default: s(() => [
204
- n(x, {
207
+ n(y, {
205
208
  size: "icon",
206
209
  "aria-label": "More Options"
207
210
  }, {
208
211
  default: s(() => [
209
- n(l(Y))
212
+ n(i(Q))
210
213
  ]),
211
214
  _: 1
212
215
  })
213
216
  ]),
214
217
  _: 1
215
218
  }),
216
- n(O, {
219
+ n(P, {
217
220
  align: "end",
218
221
  class: "w-52"
219
222
  }, {
220
223
  default: s(() => [
221
- n(U, null, {
224
+ n(R, null, {
222
225
  default: s(() => [
223
226
  n($, {
224
- onClick: e[3] || (e[3] = (r) => j.value.click())
227
+ onClick: e[3] || (e[3] = (l) => j.value.click())
225
228
  }, {
226
229
  default: s(() => [
227
- n(l(Ee)),
228
- e[10] || (e[10] = p(" Import Agendas... ", -1))
230
+ n(i(Ee)),
231
+ e[10] || (e[10] = m(" Import Agendas... ", -1))
229
232
  ]),
230
233
  _: 1
231
234
  })
@@ -240,153 +243,155 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
240
243
  })
241
244
  ]),
242
245
  _: 1
243
- })) : C("", !0)
246
+ })) : x("", !0)
244
247
  ])
245
248
  ]),
246
- m.value ? (u(), g("div", Pe, [
249
+ c.value ? (d(), f("div", Pe, [
247
250
  o("div", Ge, [
248
251
  n(ge, {
249
252
  modelValue: T.value,
250
- "onUpdate:modelValue": K
253
+ "onUpdate:modelValue": Z
251
254
  }, null, 8, ["modelValue"]),
252
- o("span", Le, f(i.value.length) + " of " + f(y.value.length) + " selected ", 1)
255
+ o("span", Le, g(r.value.length) + " of " + g(b.value.length) + " selected ", 1)
253
256
  ]),
254
257
  o("div", Fe, [
255
- n(x, {
258
+ n(y, {
256
259
  variant: "ghost",
257
- onClick: e[4] || (e[4] = (r) => {
258
- m.value = !1, i.value = [];
260
+ onClick: e[4] || (e[4] = (l) => {
261
+ c.value = !1, r.value = [];
259
262
  })
260
263
  }, {
261
264
  default: s(() => [...e[12] || (e[12] = [
262
- p(" Cancel ", -1)
265
+ m(" Cancel ", -1)
263
266
  ])]),
264
267
  _: 1
265
268
  }),
266
- n(x, {
267
- onClick: ie,
268
- disabled: i.value.length === 0
269
+ n(y, {
270
+ onClick: ae,
271
+ disabled: r.value.length === 0
269
272
  }, {
270
273
  default: s(() => [
271
- n(l(q)),
272
- p(" Export " + f(i.value.length || ""), 1)
274
+ n(i(X)),
275
+ m(" Export " + g(r.value.length || ""), 1)
273
276
  ]),
274
277
  _: 1
275
278
  }, 8, ["disabled"])
276
279
  ])
277
- ])) : C("", !0),
278
- y.value.length === 0 ? (u(), g("div", He, [
279
- n(l(J), { class: "size-8 text-muted-foreground mb-3" }),
280
- o("p", Je, 'No agendas match "' + f(D.value) + '"', 1),
280
+ ])) : x("", !0),
281
+ b.value.length === 0 ? (d(), f("div", He, [
282
+ n(i(q), { class: "size-8 text-muted-foreground mb-3" }),
283
+ o("p", Je, 'No agendas match "' + g(D.value) + '"', 1),
281
284
  e[13] || (e[13] = o("p", { class: "text-sm text-muted-foreground mt-1" }, "Try a different search term.", -1))
282
- ])) : (u(), g("div", Ye, [
283
- (u(!0), g(G, null, xe(y.value, (r) => (u(), g("div", {
284
- key: r.id,
285
- class: L(["group relative flex flex-col overflow-hidden rounded-xl border bg-card shadow-sm transition-all duration-200", {
286
- "cursor-pointer": m.value,
287
- "ring-2 ring-primary border-primary/40": m.value && i.value.includes(r.id)
285
+ ])) : (d(), f("div", Ye, [
286
+ (d(!0), f(F, null, ye(b.value, (l) => (d(), f("div", {
287
+ key: l.id,
288
+ class: H(["group relative flex flex-col overflow-hidden rounded-xl border bg-card shadow-sm transition-all duration-200", {
289
+ "cursor-pointer": c.value,
290
+ "ring-2 ring-primary border-primary/40": c.value && r.value.includes(l.id)
288
291
  }]),
289
- onClick: (E) => m.value ? W(r.id) : null
292
+ onClick: (C) => c.value ? V(l.id) : null
290
293
  }, [
291
294
  o("div", {
292
295
  class: "h-1 w-full",
293
- style: F({ backgroundColor: S(r).fg })
296
+ style: J({ backgroundColor: S(l).fg })
294
297
  }, null, 4),
295
- o("div", Qe, [
298
+ o("div", {
299
+ class: "flex flex-col flex-1 p-5",
300
+ onClick: (C) => !c.value && U(l.id)
301
+ }, [
296
302
  o("div", Xe, [
297
303
  o("div", {
298
304
  class: "shrink-0 size-12 rounded-lg flex items-center justify-center font-semibold text-sm",
299
- style: F({
300
- backgroundColor: S(r).bg,
301
- color: S(r).fg
305
+ style: J({
306
+ backgroundColor: S(l).bg,
307
+ color: S(l).fg
302
308
  })
303
- }, f(Z(r.serviceName)), 5),
309
+ }, g(ee(l.serviceName)), 5),
304
310
  o("button", {
305
311
  type: "button",
306
312
  class: "flex-1 min-w-0 text-left focus:outline-none",
307
- disabled: m.value,
308
- onClick: N((E) => !m.value && de(r.id), ["stop"])
313
+ onClick: N((C) => c.value ? V(l.id) : U(l.id), ["stop"])
309
314
  }, [
310
- o("h3", We, f(r.serviceName || "Untitled Agenda"), 1),
315
+ o("h3", We, g(l.serviceName || "Untitled Agenda"), 1),
311
316
  o("div", Ze, [
312
317
  n(ve, {
313
318
  variant: "secondary",
314
319
  class: "text-[10px] font-medium px-1.5 py-0 h-4"
315
320
  }, {
316
321
  default: s(() => [
317
- p(f(oe(r)), 1)
322
+ m(g(se(l)), 1)
318
323
  ]),
319
324
  _: 2
320
325
  }, 1024),
321
- o("span", et, " Click to " + f(l(v)("edit-agendas") ? "edit" : "view"), 1)
326
+ c.value ? x("", !0) : (d(), f("span", et, " Click to " + g(i(v)("edit-agendas") ? "edit" : "view"), 1))
322
327
  ])
323
328
  ], 8, Ke),
324
- m.value ? (u(), g("div", tt, [
329
+ c.value ? (d(), f("div", tt, [
325
330
  o("div", {
326
- class: L(["flex items-center justify-center size-6 rounded-full border-2 transition", i.value.includes(r.id) ? "border-primary bg-primary text-primary-foreground" : "border-muted-foreground/30"])
331
+ class: H(["flex items-center justify-center size-6 rounded-full border-2 transition", r.value.includes(l.id) ? "border-primary bg-primary text-primary-foreground" : "border-muted-foreground/30"])
327
332
  }, [
328
- i.value.includes(r.id) ? (u(), b(l(Me), {
333
+ r.value.includes(l.id) ? (d(), k(i(Me), {
329
334
  key: 0,
330
335
  class: "size-4"
331
- })) : C("", !0)
336
+ })) : x("", !0)
332
337
  ], 2)
333
- ])) : C("", !0)
338
+ ])) : x("", !0)
334
339
  ]),
335
340
  o("div", nt, [
336
341
  o("div", ot, [
337
342
  o("div", st, [
338
- n(l($e), { class: "size-3.5" }),
343
+ n(i($e), { class: "size-3.5" }),
339
344
  e[14] || (e[14] = o("span", { class: "text-[10px] uppercase tracking-wide font-medium" }, "Duration", -1))
340
345
  ]),
341
- o("span", lt, f(ee(r) || "—"), 1)
346
+ o("span", lt, g(te(l) || "—"), 1)
342
347
  ]),
343
- o("div", rt, [
344
- o("div", it, [
345
- n(l(ze), { class: "size-3.5" }),
348
+ o("div", it, [
349
+ o("div", rt, [
350
+ n(i(ze), { class: "size-3.5" }),
346
351
  e[15] || (e[15] = o("span", { class: "text-[10px] uppercase tracking-wide font-medium" }, "Price", -1))
347
352
  ]),
348
- o("span", at, f(te(r) || "—"), 1)
353
+ o("span", at, g(ne(l) || "—"), 1)
349
354
  ]),
350
355
  o("div", dt, [
351
356
  o("div", ut, [
352
- n(l(De), { class: "size-3.5" }),
357
+ n(i(De), { class: "size-3.5" }),
353
358
  e[16] || (e[16] = o("span", { class: "text-[10px] uppercase tracking-wide font-medium" }, "Resources", -1))
354
359
  ]),
355
- o("span", ct, f(ne(r)), 1)
360
+ o("span", ct, g(oe(l)), 1)
356
361
  ])
357
362
  ])
358
- ]),
359
- m.value ? C("", !0) : (u(), g("div", pt, [
360
- l(v)("edit-agendas") ? (u(), b(x, {
363
+ ], 8, Qe),
364
+ c.value ? x("", !0) : (d(), f("div", pt, [
365
+ i(v)("edit-agendas") ? (d(), k(y, {
361
366
  key: 0,
362
367
  variant: "ghost",
363
368
  size: "sm",
364
369
  class: "gap-1.5",
365
- onClick: N((E) => l(w)(`/edit/${r.id}`), ["stop"])
370
+ onClick: N((C) => i(h)(`/edit/${l.id}`), ["stop"])
366
371
  }, {
367
372
  default: s(() => [
368
- n(l(Q), { class: "size-4" }),
369
- e[17] || (e[17] = p(" Edit Agenda ", -1))
373
+ n(i(K), { class: "size-4" }),
374
+ e[17] || (e[17] = m(" Edit Agenda ", -1))
370
375
  ]),
371
376
  _: 1
372
- }, 8, ["onClick"])) : (u(), b(x, {
377
+ }, 8, ["onClick"])) : (d(), k(y, {
373
378
  key: 1,
374
379
  variant: "ghost",
375
380
  size: "sm",
376
381
  class: "gap-1.5",
377
- onClick: N((E) => l(w)(`/edit/${r.id}/agenda`), ["stop"])
382
+ onClick: N((C) => i(h)(`/edit/${l.id}/agenda`), ["stop"])
378
383
  }, {
379
384
  default: s(() => [
380
- n(l(Q), { class: "size-4" }),
381
- e[18] || (e[18] = p(" View Agenda ", -1))
385
+ n(i(K), { class: "size-4" }),
386
+ e[18] || (e[18] = m(" View Agenda ", -1))
382
387
  ]),
383
388
  _: 1
384
389
  }, 8, ["onClick"])),
385
- n(R, null, {
390
+ n(G, null, {
386
391
  default: s(() => [
387
- n(B, { "as-child": "" }, {
392
+ n(O, { "as-child": "" }, {
388
393
  default: s(() => [
389
- n(x, {
394
+ n(y, {
390
395
  variant: "ghost",
391
396
  size: "icon",
392
397
  "aria-label": "More Options",
@@ -394,57 +399,57 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
394
399
  }, ["stop"]))
395
400
  }, {
396
401
  default: s(() => [
397
- n(l(Y))
402
+ n(i(Q))
398
403
  ]),
399
404
  _: 1
400
405
  })
401
406
  ]),
402
407
  _: 1
403
408
  }),
404
- n(O, {
409
+ n(P, {
405
410
  align: "end",
406
411
  class: "w-52"
407
412
  }, {
408
413
  default: s(() => [
409
- n(U, null, {
414
+ n(R, null, {
410
415
  default: s(() => [
411
- l(v)("create-agendas") ? (u(), b($, {
416
+ i(v)("create-agendas") ? (d(), k($, {
412
417
  key: 0,
413
- onClick: (E) => le(r.id)
418
+ onClick: (C) => ie(l.id)
414
419
  }, {
415
420
  default: s(() => [
416
- n(l(Ie)),
417
- e[19] || (e[19] = p(" Duplicate Agenda ", -1))
421
+ n(i(Ie)),
422
+ e[19] || (e[19] = m(" Duplicate Agenda ", -1))
418
423
  ]),
419
424
  _: 1
420
- }, 8, ["onClick"])) : C("", !0),
425
+ }, 8, ["onClick"])) : x("", !0),
421
426
  n($, null, {
422
427
  default: s(() => [
423
- n(l(Ne)),
424
- e[20] || (e[20] = p(" API Set-up ", -1))
428
+ n(i(Ne)),
429
+ e[20] || (e[20] = m(" API Set-up ", -1))
425
430
  ]),
426
431
  _: 1
427
432
  }),
428
433
  n($, {
429
- onClick: (E) => se(r.id)
434
+ onClick: (C) => le(l.id)
430
435
  }, {
431
436
  default: s(() => [
432
- n(l(q)),
433
- e[21] || (e[21] = p(" Export Agenda ", -1))
437
+ n(i(X)),
438
+ e[21] || (e[21] = m(" Export Agenda ", -1))
434
439
  ]),
435
440
  _: 1
436
441
  }, 8, ["onClick"]),
437
- l(v)("delete-agendas") ? (u(), b($, {
442
+ i(v)("delete-agendas") ? (d(), k($, {
438
443
  key: 1,
439
444
  variant: "destructive",
440
- onClick: (E) => re(r.id)
445
+ onClick: (C) => re(l.id)
441
446
  }, {
442
447
  default: s(() => [
443
- n(l(Se)),
444
- e[22] || (e[22] = p(" Remove Agenda ", -1))
448
+ n(i(Se)),
449
+ e[22] || (e[22] = m(" Remove Agenda ", -1))
445
450
  ]),
446
451
  _: 1
447
- }, 8, ["onClick"])) : C("", !0)
452
+ }, 8, ["onClick"])) : x("", !0)
448
453
  ]),
449
454
  _: 2
450
455
  }, 1024)
@@ -465,7 +470,7 @@ const je = { class: "container @container mx-auto py-8 px-4" }, Te = {
465
470
  ref: j,
466
471
  class: "hidden",
467
472
  accept: ".json,application/json",
468
- onChange: ae
473
+ onChange: de
469
474
  }, null, 544)
470
475
  ], 64);
471
476
  };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as Q, inject as K, openBlock as r, createElementBlock as g, createElementVNode as i, Fragment as I, renderList as q, withModifiers as ue, normalizeClass as ee, unref as o, createCommentVNode as T, toDisplayString as P, createTextVNode as m, resolveComponent as s, createBlock as $, withCtx as l, createVNode as t, computed as X, renderSlot as _e, ref as j, useTemplateRef as be, withAsyncContext as xe, watch as Ce, onMounted as ye, onUnmounted as we, provide as O, withKeys as ke } from "vue";
2
2
  import { Filter as he, ChevronsUpDown as Pe, Check as se, RotateCcw as $e, ExternalLink as Se, Search as Me, Plus as Ve, LayoutGrid as Te, List as Ae } from "lucide-vue-next";
3
3
  import { useModuleRoute as J, useModulePermissions as Y, useFirebaseIntegration as te, useConfirmation as ze, useModuleBreadcrumbs as Ie } from "@oneclick.dev/cms-kit";
4
- import { u as Le } from "./index-BhWvXMOp.mjs";
4
+ import { u as Le } from "./index-CFzn2Lus.mjs";
5
5
  import { c as ae } from "./utils-CanmrIWO.mjs";
6
6
  import { t as D } from "./index-RLz1QPrf.mjs";
7
7
  const Ee = { class: "grid @md:grid-cols-2 @2xl:grid-cols-3 @3xl:grid-cols-4 @4xl:grid-cols-5 @5xl:grid-cols-6 gap-6" }, De = ["onClick", "onContextmenu"], Fe = ["src"], Be = { class: "font-semibold" }, Ue = { class: "text-sm text-muted-foreground flex items-center gap-2" }, Re = { class: "flex items-center gap-2" }, je = { key: 0 }, Ke = /* @__PURE__ */ Q({