@oneclick.dev/cms-core-modules 0.0.53 → 0.0.55

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 (136) hide show
  1. package/dist/CalendarDate-CRT2Viyt.mjs +830 -0
  2. package/dist/CalendarDate-CWtpXgpD.js +1 -0
  3. package/dist/Components-D9yIIosM.mjs +623 -0
  4. package/dist/Components-DXbx0RLV.js +1 -0
  5. package/dist/ContentEditor-BBdzuTJJ.js +290 -0
  6. package/dist/ContentEditor-HwHspQO1.mjs +35302 -0
  7. package/dist/Create-BP8TX6rj.js +1 -0
  8. package/dist/Create-Bwf1RXdG.mjs +1248 -0
  9. package/dist/DateFormatter-BbcSwTs4.js +1 -0
  10. package/dist/DateFormatter-CbO0PVUK.mjs +99 -0
  11. package/dist/Detail-B-PnkcXD.mjs +3473 -0
  12. package/dist/Detail-BVlGSjOq.mjs +380 -0
  13. package/dist/Detail-C4E1T87K.mjs +26 -0
  14. package/dist/Detail-CNfTDUE5.js +1 -0
  15. package/dist/Detail-Cd5CBVN0.js +1 -0
  16. package/dist/Detail-CpfOQChd.mjs +585 -0
  17. package/dist/Detail-CwagT6gQ.mjs +650 -0
  18. package/dist/Detail-DUo6qKqO.js +1 -0
  19. package/dist/Detail-Dd_OkpcN.js +1 -0
  20. package/dist/Detail-mvSGbnFU.js +1 -0
  21. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-BWuKVkvV.js +1 -0
  22. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-D0-EcU0_.mjs +55 -0
  23. package/dist/Entries-DcpPvlYj.js +1 -0
  24. package/dist/Entries-QLMtTYLX.mjs +713 -0
  25. package/dist/Find-BPR0uU-Z.mjs +229 -0
  26. package/dist/Find-BidEQJxT.js +1 -0
  27. package/dist/GlobalStyling-BLQ_1W2y.mjs +1588 -0
  28. package/dist/GlobalStyling-CnSlXkZc.js +25 -0
  29. package/dist/Overview-BDlBCUI_.js +1 -0
  30. package/dist/Overview-BH3NwvNX.mjs +26 -0
  31. package/dist/Overview-BLsZMHNW.mjs +178 -0
  32. package/dist/Overview-BNMZ9MUK.js +1 -0
  33. package/dist/Overview-BbvfH1u-.js +1 -0
  34. package/dist/Overview-CDN88OSM.mjs +190 -0
  35. package/dist/Overview-CEPodGCn.mjs +311 -0
  36. package/dist/Overview-CvquDPhB.js +1 -0
  37. package/dist/Overview-D54pjmI6.mjs +633 -0
  38. package/dist/Overview-D67UjG6n.mjs +947 -0
  39. package/dist/Overview-KT2Mgfh5.js +1 -0
  40. package/dist/Overview-T-lsy3UZ.js +1 -0
  41. package/dist/RegularSlotEditor.vue_vue_type_script_setup_true_lang-0xZSq0rx.js +1 -0
  42. package/dist/RegularSlotEditor.vue_vue_type_script_setup_true_lang-Bj_PVLLV.mjs +392 -0
  43. package/dist/TableView-CpO53xcX.js +111 -0
  44. package/dist/TableView-D9J5rUls.mjs +72921 -0
  45. package/dist/TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js +1 -0
  46. package/dist/TemplateList.vue_vue_type_script_setup_true_lang-BiLAkhIA.mjs +40 -0
  47. package/dist/View-DlHBZbFu.js +1 -0
  48. package/dist/View-Dv5QMrSn.mjs +25 -0
  49. package/dist/_plugin-vue_export-helper-BHFhmbuH.js +1 -0
  50. package/dist/_plugin-vue_export-helper-CHgC5LLL.mjs +9 -0
  51. package/dist/agenda-B49oKGeh.mjs +706 -0
  52. package/dist/agenda-DipQ5IWP.js +1 -0
  53. package/dist/availability-C7q9tq6l.js +1 -0
  54. package/dist/availability-DeCkqiu8.mjs +613 -0
  55. package/dist/cms-core-modules.css +1 -1
  56. package/dist/countries-BTPvmrsb.mjs +4 -0
  57. package/dist/countries-CgZ081No.js +1 -0
  58. package/dist/exceptions-D3b18TiY.mjs +647 -0
  59. package/dist/exceptions-DJ9zWX3k.js +1 -0
  60. package/dist/floating-ui.dom-C82nbomj.js +1 -0
  61. package/dist/floating-ui.dom-ouSgPqty.mjs +1133 -0
  62. package/dist/google-CvtuJwgk.mjs +4 -0
  63. package/dist/google-D4N3gb01.js +1 -0
  64. package/dist/index--jjEzba7.mjs +24 -0
  65. package/dist/index-9HVlmvK3.js +1 -0
  66. package/dist/index-BEGU8Kme.mjs +12 -0
  67. package/dist/index-Bwi1mtkq.mjs +24 -0
  68. package/dist/index-BzuHN-r8.mjs +24 -0
  69. package/dist/index-CImCyE3L.mjs +24 -0
  70. package/dist/index-CKPshlZ8-BQiiP6r_.mjs +1264 -0
  71. package/dist/index-CKPshlZ8-CIz1tDwX.js +1 -0
  72. package/dist/index-CQiY-oTN.mjs +24 -0
  73. package/dist/index-CSxYBeVA.js +1 -0
  74. package/dist/index-CkiNvRzs.js +1 -0
  75. package/dist/index-Co4ON2Di.js +1 -0
  76. package/dist/index-CwqrAU-H.js +1 -0
  77. package/dist/index-Cz-baGax.js +1 -0
  78. package/dist/index-D2a6wEPh.js +1 -0
  79. package/dist/index-DFQGVHTs.js +1 -0
  80. package/dist/index-DI6mydpm.mjs +138 -0
  81. package/dist/index-DMoyoaks.mjs +22 -0
  82. package/dist/index-DT1wWnUk.mjs +24 -0
  83. package/dist/index-DUeFrD-B.js +1 -0
  84. package/dist/index-DsnoK4ia.mjs +579 -0
  85. package/dist/index-R2oUDsjx.js +1 -0
  86. package/dist/index-RLz1QPrf.mjs +203 -0
  87. package/dist/index-UtjLbLw-.js +1 -0
  88. package/dist/index-_mG-aU3Z.mjs +87 -0
  89. package/dist/index-_sQDF1pH.js +1 -0
  90. package/dist/index-ijdf0d9-.js +1 -0
  91. package/dist/index-klI238nT.mjs +24 -0
  92. package/dist/index.cjs.js +1 -330
  93. package/dist/index.mjs +287 -69051
  94. package/dist/interpolation-BNUjI7LH.js +1 -0
  95. package/dist/interpolation-BpGXqOz8.mjs +59 -0
  96. package/dist/payment-kTjsV0Jj.js +1 -0
  97. package/dist/payment-zpCM0LD-.mjs +981 -0
  98. package/dist/regular-C4_3YXqx.mjs +602 -0
  99. package/dist/regular-DFwPEbZO.js +1 -0
  100. package/dist/regular-slots-4ooEpICB.mjs +67 -0
  101. package/dist/regular-slots-BAVGbomI.js +1 -0
  102. package/dist/resources-MpQkSstv.mjs +563 -0
  103. package/dist/resources-iM28T3dD.js +1 -0
  104. package/dist/src/appointments/index.d.ts +4 -28
  105. package/dist/src/appointments/routes.d.ts +3 -9
  106. package/dist/src/content-manager/components/content-editor/ContentLayout.vue.d.ts +8 -0
  107. package/dist/src/content-manager/components/content-editor/NewSectionDialog.vue.d.ts +5 -1
  108. package/dist/src/content-manager/components/content-editor/tiptap-extensions/Card.d.ts +6 -0
  109. package/dist/src/content-manager/components/content-editor/tiptap-extensions/ScopedSelectAll.d.ts +7 -0
  110. package/dist/src/content-manager/components/content-editor/tiptap-menus/NewNodeView.vue.d.ts +16 -2
  111. package/dist/src/content-manager/components/content-editor/tiptap-menus/element-editor-views/CardMenu.vue.d.ts +13 -0
  112. package/dist/src/content-manager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +14 -0
  113. package/dist/src/content-manager/components/styling/ButtonStyleDialog.vue.d.ts +7 -7
  114. package/dist/src/content-manager/components/styling/CardStyleDialog.vue.d.ts +24 -0
  115. package/dist/src/content-manager/index.d.ts +5 -147
  116. package/dist/src/content-manager/pages/GlobalStyling.vue.d.ts +46 -8
  117. package/dist/src/content-manager/routes.d.ts +4 -128
  118. package/dist/src/custom/index.d.ts +2 -2
  119. package/dist/src/custom/routes.d.ts +1 -1
  120. package/dist/src/mail-templates/index.d.ts +2 -30
  121. package/dist/src/mail-templates/routes.d.ts +1 -11
  122. package/dist/src/product-collections/index.d.ts +2 -30
  123. package/dist/src/product-collections/routes.d.ts +1 -11
  124. package/dist/src/products/index.d.ts +2 -30
  125. package/dist/src/products/routes.d.ts +1 -11
  126. package/dist/src/promo-codes/index.d.ts +2 -30
  127. package/dist/src/promo-codes/routes.d.ts +1 -11
  128. package/dist/src/shipping-options/index.d.ts +2 -30
  129. package/dist/src/shipping-options/routes.d.ts +1 -11
  130. package/dist/src/table/index.d.ts +2 -70
  131. package/dist/src/table/routes.d.ts +1 -51
  132. package/dist/utils-BVKy9S2J.mjs +29 -0
  133. package/dist/utils-D6CaKJbp.js +2 -0
  134. package/dist/vee-validate-zod-BPQyEfpF.js +1 -0
  135. package/dist/vee-validate-zod-IXkfh-6Q.mjs +4402 -0
  136. package/package.json +4 -4
@@ -0,0 +1,579 @@
1
+ import { defineComponent as F, ref as O, computed as w, resolveComponent as h, createBlock as $, openBlock as r, withCtx as l, createElementBlock as f, createCommentVNode as j, createVNode as s, createElementVNode as e, toDisplayString as d, unref as o, createTextVNode as m, Fragment as N, renderList as A, normalizeClass as S, normalizeStyle as R } from "vue";
2
+ import { _ as H } from "./EditLayout.vue_vue_type_script_setup_true_lang-D0-EcU0_.mjs";
3
+ import { useModuleRoute as I, useModule as q, useFirebaseIntegration as G } from "@oneclick.dev/cms-kit";
4
+ import { Calendar as X, Users as L, ArrowRight as k, Clock as J, CalendarX as K, Layers as V, Package as Q, CreditCard as Y, DollarSign as Z, CheckCircle2 as ee, Timer as te, Eye as se, Settings as oe } from "lucide-vue-next";
5
+ const le = {
6
+ key: 0,
7
+ class: "flex items-center justify-center py-20"
8
+ }, ie = {
9
+ key: 1,
10
+ class: "space-y-8"
11
+ }, ae = { class: "flex items-start justify-between" }, ne = { class: "text-2xl font-semibold tracking-tight" }, de = { class: "grid grid-cols-2 md:grid-cols-4 gap-4" }, re = { class: "flex items-center justify-between" }, ue = { class: "p-2 rounded-lg bg-violet-100 dark:bg-violet-500/20" }, ce = { class: "mt-3" }, me = { class: "text-2xl font-bold" }, pe = { class: "flex items-center justify-between" }, fe = { class: "p-2 rounded-lg bg-blue-100 dark:bg-blue-500/20" }, ve = { class: "mt-3" }, ge = { class: "text-2xl font-bold" }, xe = { class: "flex items-center justify-between" }, _e = { class: "p-2 rounded-lg bg-amber-100 dark:bg-amber-500/20" }, ye = { class: "mt-3" }, be = { class: "text-2xl font-bold" }, he = { class: "flex items-center justify-between" }, ke = { class: "p-2 rounded-lg bg-emerald-100 dark:bg-emerald-500/20" }, Ce = { class: "mt-3" }, we = { class: "text-2xl font-bold" }, ze = { class: "grid md:grid-cols-3 gap-6" }, $e = { class: "md:col-span-2 space-y-6" }, Se = { class: "flex items-center justify-between" }, je = { class: "flex gap-2" }, Ne = { class: "text-xs font-medium text-muted-foreground mb-1" }, Ae = { class: "flex items-center justify-between" }, De = { class: "space-y-2" }, Te = { class: "flex-1 min-w-0" }, Pe = { class: "font-medium truncate" }, Ee = { class: "text-xs text-muted-foreground" }, Oe = {
12
+ key: 0,
13
+ class: "text-center pt-2"
14
+ }, Re = { class: "mx-auto w-12 h-12 rounded-full bg-muted flex items-center justify-center mb-4" }, Le = { class: "flex items-center justify-between" }, Ve = {
15
+ key: 0,
16
+ class: "space-y-3"
17
+ }, Be = { class: "flex items-center justify-between" }, Ue = { class: "text-xl font-bold text-primary" }, Me = { class: "flex items-center gap-4 text-sm text-muted-foreground pt-2 border-t" }, We = { class: "flex items-center gap-1.5" }, Fe = { class: "flex items-center gap-1.5" }, He = {
18
+ key: 1,
19
+ class: "text-center py-4"
20
+ }, Ie = { class: "space-y-6" }, qe = { class: "mb-4" }, Ge = { class: "flex items-center justify-between text-sm mb-2" }, Xe = { class: "font-medium" }, Je = { class: "h-2 bg-muted rounded-full overflow-hidden" }, Ke = { class: "space-y-2" }, Qe = {
21
+ key: 1,
22
+ class: "size-2 rounded-full bg-muted-foreground/40"
23
+ }, Ye = {
24
+ key: 0,
25
+ class: "text-xs opacity-60"
26
+ }, Ze = { class: "flex items-center gap-3 p-3 rounded-lg bg-muted/30" }, et = { class: "flex-1" }, tt = { class: "text-xs text-muted-foreground" }, st = { class: "flex items-center gap-3 p-3 rounded-lg bg-muted/30" }, ot = { class: "flex-1" }, lt = { class: "text-xs text-muted-foreground" }, it = { class: "flex items-center gap-3 p-3 rounded-lg bg-muted/30" }, at = { class: "flex-1" }, nt = { class: "text-xs text-muted-foreground" }, pt = /* @__PURE__ */ F({
27
+ __name: "index",
28
+ setup(dt) {
29
+ const { params: c, resolvePath: v } = I(), { config: D } = q(), B = G(D.project), T = O(!0), a = O(null), U = async () => {
30
+ try {
31
+ const n = await B.get(D.agendaCollection, c.value.id);
32
+ a.value = n;
33
+ } catch (n) {
34
+ console.error("Error loading agenda data:", n);
35
+ } finally {
36
+ T.value = !1;
37
+ }
38
+ }, y = w(() => {
39
+ if (!a.value) return null;
40
+ const n = a.value.resources || [], t = n.filter((p) => p.isActive), u = a.value.exceptions || [], _ = a.value.timeslots || {};
41
+ let x = 0;
42
+ Object.values(_).forEach((p) => {
43
+ x += (p || []).length;
44
+ });
45
+ const g = (/* @__PURE__ */ new Date()).toISOString().split("T")[0], b = u.filter((p) => p.endDate >= g);
46
+ return {
47
+ resources: {
48
+ total: n.length,
49
+ active: t.length,
50
+ inactive: n.length - t.length
51
+ },
52
+ weeklySlots: x,
53
+ exceptions: {
54
+ total: u.length,
55
+ active: b.length
56
+ },
57
+ capacity: a.value.capacity || "∞",
58
+ hasPayment: (a.value.pricingOptions || []).some((p) => p.price > 0)
59
+ };
60
+ }), M = w(() => {
61
+ if (!a.value?.timeslots) return [];
62
+ const n = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], t = [];
63
+ for (let u = 1; u <= 6; u++)
64
+ t.push({
65
+ name: n[u],
66
+ slots: (a.value.timeslots[u] || []).length,
67
+ active: (a.value.timeslots[u] || []).length > 0
68
+ });
69
+ return t.push({
70
+ name: n[0],
71
+ slots: (a.value.timeslots[0] || []).length,
72
+ active: (a.value.timeslots[0] || []).length > 0
73
+ }), t;
74
+ }), P = w(() => a.value?.resources ? a.value.resources.filter((n) => n.isActive).slice(0, 5) : []), W = (n) => {
75
+ const t = a.value?.currency || "USD";
76
+ return `${{ USD: "$", EUR: "€", GBP: "£", CAD: "$" }[t] || t} ${n.toFixed(2)}`;
77
+ }, z = w(() => {
78
+ if (!a.value) return [];
79
+ const n = a.value.timeslots || {}, t = Object.values(n).some((u) => u && u.length > 0);
80
+ return [
81
+ {
82
+ label: "Service name configured",
83
+ done: !!a.value.serviceName,
84
+ link: null
85
+ },
86
+ {
87
+ label: "Time slots configured",
88
+ done: t,
89
+ link: `/edit/${c.value.id}/regular-slots`
90
+ },
91
+ {
92
+ label: "Resources added",
93
+ done: (a.value.resources || []).length > 0,
94
+ link: `/edit/${c.value.id}/resources`,
95
+ optional: !0
96
+ },
97
+ {
98
+ label: "Payment configured",
99
+ done: (a.value.pricingOptions || []).some((u) => u.price > 0),
100
+ link: `/edit/${c.value.id}/payment`,
101
+ optional: !0
102
+ }
103
+ ];
104
+ }), E = w(() => z.value.filter((n) => n.done).length);
105
+ return w(() => z.value.filter((n) => !n.optional).length), U(), (n, t) => {
106
+ const u = h("Spinner"), _ = h("Button"), x = h("NuxtLink"), g = h("Card"), b = h("CardTitle"), p = h("CardHeader"), C = h("CardContent");
107
+ return r(), $(H, null, {
108
+ default: l(() => [
109
+ T.value ? (r(), f("div", le, [
110
+ s(u, { class: "size-8" })
111
+ ])) : a.value ? (r(), f("div", ie, [
112
+ e("div", ae, [
113
+ e("div", null, [
114
+ e("h1", ne, d(a.value.serviceName || "Untitled Service"), 1),
115
+ t[4] || (t[4] = e("p", { class: "text-muted-foreground mt-1" }, "Overview of your appointment service configuration", -1))
116
+ ]),
117
+ s(x, {
118
+ to: o(v)(`/edit/${o(c).id}/agenda`)
119
+ }, {
120
+ default: l(() => [
121
+ s(_, null, {
122
+ default: l(() => [
123
+ s(o(X), { class: "size-4 mr-2" }),
124
+ t[5] || (t[5] = m(" View Calendar ", -1))
125
+ ]),
126
+ _: 1
127
+ })
128
+ ]),
129
+ _: 1
130
+ }, 8, ["to"])
131
+ ]),
132
+ e("div", de, [
133
+ s(g, {
134
+ class: "p-4 hover:shadow-md transition-shadow cursor-pointer group",
135
+ onClick: t[0] || (t[0] = (i) => n.$router.push(o(v)(`/edit/${o(c).id}/resources`)))
136
+ }, {
137
+ default: l(() => [
138
+ e("div", re, [
139
+ e("div", ue, [
140
+ s(o(L), { class: "size-5 text-violet-600 dark:text-violet-400" })
141
+ ]),
142
+ s(o(k), { class: "size-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
143
+ ]),
144
+ e("div", ce, [
145
+ e("p", me, d(y.value?.resources.active || 0), 1),
146
+ t[6] || (t[6] = e("p", { class: "text-sm text-muted-foreground" }, "Active Resources", -1))
147
+ ])
148
+ ]),
149
+ _: 1
150
+ }),
151
+ s(g, {
152
+ class: "p-4 hover:shadow-md transition-shadow cursor-pointer group",
153
+ onClick: t[1] || (t[1] = (i) => n.$router.push(o(v)(`/edit/${o(c).id}/regular-slots`)))
154
+ }, {
155
+ default: l(() => [
156
+ e("div", pe, [
157
+ e("div", fe, [
158
+ s(o(J), { class: "size-5 text-blue-600 dark:text-blue-400" })
159
+ ]),
160
+ s(o(k), { class: "size-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
161
+ ]),
162
+ e("div", ve, [
163
+ e("p", ge, d(y.value?.weeklySlots || 0), 1),
164
+ t[7] || (t[7] = e("p", { class: "text-sm text-muted-foreground" }, "Weekly Time Slots", -1))
165
+ ])
166
+ ]),
167
+ _: 1
168
+ }),
169
+ s(g, {
170
+ class: "p-4 hover:shadow-md transition-shadow cursor-pointer group",
171
+ onClick: t[2] || (t[2] = (i) => n.$router.push(o(v)(`/edit/${o(c).id}/exceptions`)))
172
+ }, {
173
+ default: l(() => [
174
+ e("div", xe, [
175
+ e("div", _e, [
176
+ s(o(K), { class: "size-5 text-amber-600 dark:text-amber-400" })
177
+ ]),
178
+ s(o(k), { class: "size-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
179
+ ]),
180
+ e("div", ye, [
181
+ e("p", be, d(y.value?.exceptions.active || 0), 1),
182
+ t[8] || (t[8] = e("p", { class: "text-sm text-muted-foreground" }, "Active Exceptions", -1))
183
+ ])
184
+ ]),
185
+ _: 1
186
+ }),
187
+ s(g, {
188
+ class: "p-4 hover:shadow-md transition-shadow cursor-pointer group",
189
+ onClick: t[3] || (t[3] = (i) => n.$router.push(o(v)(`/edit/${o(c).id}/availability`)))
190
+ }, {
191
+ default: l(() => [
192
+ e("div", he, [
193
+ e("div", ke, [
194
+ s(o(V), { class: "size-5 text-emerald-600 dark:text-emerald-400" })
195
+ ]),
196
+ s(o(k), { class: "size-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
197
+ ]),
198
+ e("div", Ce, [
199
+ e("p", we, d(y.value?.capacity), 1),
200
+ t[9] || (t[9] = e("p", { class: "text-sm text-muted-foreground" }, "Default Capacity", -1))
201
+ ])
202
+ ]),
203
+ _: 1
204
+ })
205
+ ]),
206
+ e("div", ze, [
207
+ e("div", $e, [
208
+ s(g, null, {
209
+ default: l(() => [
210
+ s(p, { class: "pb-3" }, {
211
+ default: l(() => [
212
+ e("div", Se, [
213
+ s(b, { class: "text-base font-medium" }, {
214
+ default: l(() => [...t[10] || (t[10] = [
215
+ m("Weekly Schedule", -1)
216
+ ])]),
217
+ _: 1
218
+ }),
219
+ s(x, {
220
+ to: o(v)(`/edit/${o(c).id}/regular-slots`)
221
+ }, {
222
+ default: l(() => [
223
+ s(_, {
224
+ variant: "ghost",
225
+ size: "sm",
226
+ class: "text-xs"
227
+ }, {
228
+ default: l(() => [
229
+ t[11] || (t[11] = m(" Configure ", -1)),
230
+ s(o(k), { class: "size-3 ml-1" })
231
+ ]),
232
+ _: 1
233
+ })
234
+ ]),
235
+ _: 1
236
+ }, 8, ["to"])
237
+ ])
238
+ ]),
239
+ _: 1
240
+ }),
241
+ s(C, null, {
242
+ default: l(() => [
243
+ e("div", je, [
244
+ (r(!0), f(N, null, A(M.value, (i) => (r(), f("div", {
245
+ key: i.name,
246
+ class: "flex-1 text-center"
247
+ }, [
248
+ e("div", {
249
+ class: S(["py-3 px-2 rounded-lg border-2 transition-all", i.active ? "bg-primary/5 border-primary/20 dark:bg-primary/10" : "bg-muted/30 border-transparent"])
250
+ }, [
251
+ e("p", Ne, d(i.name), 1),
252
+ e("p", {
253
+ class: S(["text-lg font-bold", i.active ? "text-primary" : "text-muted-foreground/50"])
254
+ }, d(i.slots), 3),
255
+ t[12] || (t[12] = e("p", { class: "text-[10px] text-muted-foreground" }, "slots", -1))
256
+ ], 2)
257
+ ]))), 128))
258
+ ])
259
+ ]),
260
+ _: 1
261
+ })
262
+ ]),
263
+ _: 1
264
+ }),
265
+ P.value.length > 0 ? (r(), $(g, { key: 0 }, {
266
+ default: l(() => [
267
+ s(p, { class: "pb-3" }, {
268
+ default: l(() => [
269
+ e("div", Ae, [
270
+ s(b, { class: "text-base font-medium" }, {
271
+ default: l(() => [...t[13] || (t[13] = [
272
+ m("Resources", -1)
273
+ ])]),
274
+ _: 1
275
+ }),
276
+ s(x, {
277
+ to: o(v)(`/edit/${o(c).id}/resources`)
278
+ }, {
279
+ default: l(() => [
280
+ s(_, {
281
+ variant: "ghost",
282
+ size: "sm",
283
+ class: "text-xs"
284
+ }, {
285
+ default: l(() => [
286
+ t[14] || (t[14] = m(" Manage ", -1)),
287
+ s(o(k), { class: "size-3 ml-1" })
288
+ ]),
289
+ _: 1
290
+ })
291
+ ]),
292
+ _: 1
293
+ }, 8, ["to"])
294
+ ])
295
+ ]),
296
+ _: 1
297
+ }),
298
+ s(C, null, {
299
+ default: l(() => [
300
+ e("div", De, [
301
+ (r(!0), f(N, null, A(P.value, (i) => (r(), f("div", {
302
+ key: i.id,
303
+ class: "flex items-center gap-3 p-3 rounded-lg bg-muted/30 hover:bg-muted/50 transition-colors"
304
+ }, [
305
+ e("div", {
306
+ class: "size-10 rounded-full flex items-center justify-center text-white font-bold",
307
+ style: R({ backgroundColor: i.color || "#6b7280" })
308
+ }, d(i.avatarLabel || i.name.charAt(0).toUpperCase()), 5),
309
+ e("div", Te, [
310
+ e("p", Pe, d(i.name), 1),
311
+ e("p", Ee, d(i.publicLabel || i.description || `Capacity: ${i.capacity || "∞"}`), 1)
312
+ ])
313
+ ]))), 128)),
314
+ y.value && y.value.resources.total > 5 ? (r(), f("div", Oe, [
315
+ s(x, {
316
+ to: o(v)(`/edit/${o(c).id}/resources`)
317
+ }, {
318
+ default: l(() => [
319
+ s(_, {
320
+ variant: "link",
321
+ size: "sm",
322
+ class: "text-xs"
323
+ }, {
324
+ default: l(() => [
325
+ m(" View all " + d(y.value.resources.total) + " resources ", 1)
326
+ ]),
327
+ _: 1
328
+ })
329
+ ]),
330
+ _: 1
331
+ }, 8, ["to"])
332
+ ])) : j("", !0)
333
+ ])
334
+ ]),
335
+ _: 1
336
+ })
337
+ ]),
338
+ _: 1
339
+ })) : (r(), $(g, {
340
+ key: 1,
341
+ class: "border-dashed"
342
+ }, {
343
+ default: l(() => [
344
+ s(C, { class: "py-8 text-center" }, {
345
+ default: l(() => [
346
+ e("div", Re, [
347
+ s(o(L), { class: "size-6 text-muted-foreground" })
348
+ ]),
349
+ t[16] || (t[16] = e("h3", { class: "font-medium mb-1" }, "No resources configured", -1)),
350
+ t[17] || (t[17] = e("p", { class: "text-sm text-muted-foreground mb-4" }, " Add resources like rooms, equipment, or staff to manage availability ", -1)),
351
+ s(x, {
352
+ to: o(v)(`/edit/${o(c).id}/resources`)
353
+ }, {
354
+ default: l(() => [
355
+ s(_, {
356
+ variant: "outline",
357
+ size: "sm"
358
+ }, {
359
+ default: l(() => [...t[15] || (t[15] = [
360
+ m(" Add Resources ", -1)
361
+ ])]),
362
+ _: 1
363
+ })
364
+ ]),
365
+ _: 1
366
+ }, 8, ["to"])
367
+ ]),
368
+ _: 1
369
+ })
370
+ ]),
371
+ _: 1
372
+ })),
373
+ s(g, null, {
374
+ default: l(() => [
375
+ s(p, { class: "pb-3" }, {
376
+ default: l(() => [
377
+ e("div", Le, [
378
+ s(b, { class: "text-base font-medium" }, {
379
+ default: l(() => [...t[18] || (t[18] = [
380
+ m("Pricing", -1)
381
+ ])]),
382
+ _: 1
383
+ }),
384
+ s(x, {
385
+ to: o(v)(`/edit/${o(c).id}/payment`)
386
+ }, {
387
+ default: l(() => [
388
+ s(_, {
389
+ variant: "ghost",
390
+ size: "sm",
391
+ class: "text-xs"
392
+ }, {
393
+ default: l(() => [
394
+ t[19] || (t[19] = m(" Configure ", -1)),
395
+ s(o(k), { class: "size-3 ml-1" })
396
+ ]),
397
+ _: 1
398
+ })
399
+ ]),
400
+ _: 1
401
+ }, 8, ["to"])
402
+ ])
403
+ ]),
404
+ _: 1
405
+ }),
406
+ s(C, null, {
407
+ default: l(() => [
408
+ (a.value.pricingOptions || []).some((i) => i.price > 0) ? (r(), f("div", Ve, [
409
+ e("div", Be, [
410
+ t[20] || (t[20] = e("span", { class: "text-sm text-muted-foreground" }, "Starting from", -1)),
411
+ e("span", Ue, d(W(Math.min(...(a.value.pricingOptions || []).map((i) => i.price).filter((i) => i > 0)))), 1)
412
+ ]),
413
+ e("div", Me, [
414
+ e("div", We, [
415
+ s(o(Q), { class: "size-3.5" }),
416
+ e("span", null, d((a.value.pricingOptions || []).length) + " options", 1)
417
+ ]),
418
+ e("div", Fe, [
419
+ s(o(Y), { class: "size-3.5" }),
420
+ e("span", null, d(a.value.paymentType === "full" ? "Pay upfront" : a.value.paymentType === "partial" ? "Deposit" : "Pay later"), 1)
421
+ ])
422
+ ])
423
+ ])) : (r(), f("div", He, [
424
+ s(o(Z), { class: "size-8 text-muted-foreground/50 mx-auto mb-2" }),
425
+ t[21] || (t[21] = e("p", { class: "text-sm text-muted-foreground" }, "No pricing configured", -1))
426
+ ]))
427
+ ]),
428
+ _: 1
429
+ })
430
+ ]),
431
+ _: 1
432
+ })
433
+ ]),
434
+ e("div", Ie, [
435
+ s(g, null, {
436
+ default: l(() => [
437
+ s(p, { class: "pb-3" }, {
438
+ default: l(() => [
439
+ s(b, { class: "text-base font-medium" }, {
440
+ default: l(() => [...t[22] || (t[22] = [
441
+ m("Setup Progress", -1)
442
+ ])]),
443
+ _: 1
444
+ })
445
+ ]),
446
+ _: 1
447
+ }),
448
+ s(C, null, {
449
+ default: l(() => [
450
+ e("div", qe, [
451
+ e("div", Ge, [
452
+ t[23] || (t[23] = e("span", { class: "text-muted-foreground" }, "Completion", -1)),
453
+ e("span", Xe, d(E.value) + "/" + d(z.value.length), 1)
454
+ ]),
455
+ e("div", Je, [
456
+ e("div", {
457
+ class: "h-full bg-primary transition-all duration-500",
458
+ style: R({ width: `${E.value / z.value.length * 100}%` })
459
+ }, null, 4)
460
+ ])
461
+ ]),
462
+ e("div", Ke, [
463
+ (r(!0), f(N, null, A(z.value, (i) => (r(), f("div", {
464
+ key: i.label,
465
+ class: S(["flex items-center gap-3 p-2 rounded-lg", i.done ? "bg-emerald-50 dark:bg-emerald-500/10" : "bg-muted/30"])
466
+ }, [
467
+ e("div", {
468
+ class: S(["size-5 rounded-full flex items-center justify-center shrink-0", i.done ? "bg-emerald-500 text-white" : "bg-muted-foreground/20"])
469
+ }, [
470
+ i.done ? (r(), $(o(ee), {
471
+ key: 0,
472
+ class: "size-3"
473
+ })) : (r(), f("div", Qe))
474
+ ], 2),
475
+ e("span", {
476
+ class: S(["text-sm flex-1", i.done ? "text-emerald-700 dark:text-emerald-400" : "text-muted-foreground"])
477
+ }, [
478
+ m(d(i.label) + " ", 1),
479
+ i.optional ? (r(), f("span", Ye, "(optional)")) : j("", !0)
480
+ ], 2),
481
+ i.link && !i.done ? (r(), $(x, {
482
+ key: 0,
483
+ to: o(v)(i.link)
484
+ }, {
485
+ default: l(() => [
486
+ s(_, {
487
+ variant: "ghost",
488
+ size: "sm",
489
+ class: "h-6 px-2 text-xs"
490
+ }, {
491
+ default: l(() => [...t[24] || (t[24] = [
492
+ m(" Setup ", -1)
493
+ ])]),
494
+ _: 1
495
+ })
496
+ ]),
497
+ _: 1
498
+ }, 8, ["to"])) : j("", !0)
499
+ ], 2))), 128))
500
+ ])
501
+ ]),
502
+ _: 1
503
+ })
504
+ ]),
505
+ _: 1
506
+ }),
507
+ s(g, null, {
508
+ default: l(() => [
509
+ s(p, { class: "pb-3" }, {
510
+ default: l(() => [
511
+ s(b, { class: "text-base font-medium" }, {
512
+ default: l(() => [...t[25] || (t[25] = [
513
+ m("Availability Settings", -1)
514
+ ])]),
515
+ _: 1
516
+ })
517
+ ]),
518
+ _: 1
519
+ }),
520
+ s(C, { class: "space-y-3" }, {
521
+ default: l(() => [
522
+ e("div", Ze, [
523
+ s(o(te), { class: "size-4 text-muted-foreground" }),
524
+ e("div", et, [
525
+ t[26] || (t[26] = e("p", { class: "text-sm font-medium" }, "Lead Time", -1)),
526
+ e("p", tt, d(a.value.minimumAdvanceNotice?.value || 0) + " " + d(a.value.minimumAdvanceNotice?.unit || "minutes"), 1)
527
+ ])
528
+ ]),
529
+ e("div", st, [
530
+ s(o(se), { class: "size-4 text-muted-foreground" }),
531
+ e("div", ot, [
532
+ t[27] || (t[27] = e("p", { class: "text-sm font-medium" }, "Visibility", -1)),
533
+ e("p", lt, d(a.value.serviceVisibility || 60) + " days ahead ", 1)
534
+ ])
535
+ ]),
536
+ e("div", it, [
537
+ s(o(V), { class: "size-4 text-muted-foreground" }),
538
+ e("div", at, [
539
+ t[28] || (t[28] = e("p", { class: "text-sm font-medium" }, "Default Capacity", -1)),
540
+ e("p", nt, d(a.value.capacity || "∞") + " per slot ", 1)
541
+ ])
542
+ ]),
543
+ s(x, {
544
+ to: o(v)(`/edit/${o(c).id}/availability`),
545
+ class: "block"
546
+ }, {
547
+ default: l(() => [
548
+ s(_, {
549
+ variant: "outline",
550
+ size: "sm",
551
+ class: "w-full"
552
+ }, {
553
+ default: l(() => [
554
+ s(o(oe), { class: "size-4 mr-2" }),
555
+ t[29] || (t[29] = m(" Edit Settings ", -1))
556
+ ]),
557
+ _: 1
558
+ })
559
+ ]),
560
+ _: 1
561
+ }, 8, ["to"])
562
+ ]),
563
+ _: 1
564
+ })
565
+ ]),
566
+ _: 1
567
+ })
568
+ ])
569
+ ])
570
+ ])) : j("", !0)
571
+ ]),
572
+ _: 1
573
+ });
574
+ };
575
+ }
576
+ });
577
+ export {
578
+ pt as default
579
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),n=require("@oneclick.dev/cms-kit"),c={class:"flex flex-col flex-1"},r=e.defineComponent({__name:"index",props:{config:{type:Object,required:!0},routes:{type:Array,required:!0}},setup(o){const{pageComponent:t}=n.useModuleRoute();return(u,i)=>(e.openBlock(),e.createElementBlock("div",c,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(t)),{config:o.config},null,8,["config"]))]))}});exports.default=r;