@oneclick.dev/cms-core-modules 0.0.58 → 0.0.60

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 (147) hide show
  1. package/dist/{Components-D9yIIosM.mjs → Components-C83O-xlF.mjs} +1 -1
  2. package/dist/{ContentEditor-DCmt_y_R.js → ContentEditor-BAepN3Yd.js} +51 -34
  3. package/dist/{ContentEditor-CtGeIzC4.mjs → ContentEditor-BPjWW3d1.mjs} +12341 -10099
  4. package/dist/Create-Bh4g6QW4.js +1 -0
  5. package/dist/{Create-Bwf1RXdG.mjs → Create-Cf7pvh5G.mjs} +38 -39
  6. package/dist/DateFormatter-BPPBZp1j.js +1 -0
  7. package/dist/{CalendarDate-CRT2Viyt.mjs → DateFormatter-DsmlAuYV.mjs} +353 -256
  8. package/dist/{Detail-CpfOQChd.mjs → Detail-B4b_FLDa.mjs} +2 -2
  9. package/dist/{Detail-B-PnkcXD.mjs → Detail-BGD75ul4.mjs} +2 -2
  10. package/dist/{Detail-Dd_OkpcN.js → Detail-BayNaAg9.js} +1 -1
  11. package/dist/{Detail-C4E1T87K.mjs → Detail-Byk781b4.mjs} +3 -3
  12. package/dist/{Detail-Cd5CBVN0.js → Detail-CnK-qbhE.js} +1 -1
  13. package/dist/Detail-CtbWzq-R.js +1 -0
  14. package/dist/{Detail-CNfTDUE5.js → Detail-Cxd2VMOl.js} +1 -1
  15. package/dist/{Detail-BVlGSjOq.mjs → Detail-D10shmpK.mjs} +6 -7
  16. package/dist/{Detail-CwagT6gQ.mjs → Detail-U0mgLKt6.mjs} +2 -2
  17. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-CcysXzmW.mjs +75 -0
  18. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-Czu6Dcde.js +1 -0
  19. package/dist/{Entries-zyhycw1M.mjs → Entries-C6Di46My.mjs} +1 -1
  20. package/dist/{Find-BPR0uU-Z.mjs → Find-B4sAEx0B.mjs} +2 -2
  21. package/dist/{Find-BidEQJxT.js → Find-Ds6OvuH6.js} +1 -1
  22. package/dist/{GlobalStyling-BLQ_1W2y.mjs → GlobalStyling-C9VthHWK.mjs} +1 -1
  23. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-BJitmbPE.mjs +396 -0
  24. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-D50uTpZY.js +1 -0
  25. package/dist/Overview-B-8TLLjh.js +1 -0
  26. package/dist/{Overview-CDN88OSM.mjs → Overview-BCpJNiEB.mjs} +1 -1
  27. package/dist/Overview-B_99j5eA.js +1 -0
  28. package/dist/{Overview-BLsZMHNW.mjs → Overview-CIa1E-HH.mjs} +1 -1
  29. package/dist/{Overview-D1nJLBe1.mjs → Overview-CgViRnNc.mjs} +1 -1
  30. package/dist/Overview-DtWvKB3W.mjs +327 -0
  31. package/dist/Overview-HvlDEgqi.mjs +862 -0
  32. package/dist/{Overview-BH3NwvNX.mjs → Overview-Su8ZUbMs.mjs} +3 -3
  33. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CI8YgHdU.js +345 -0
  34. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-P-MWwcVh.mjs +2093 -0
  35. package/dist/{TableView-CS13LLxk.mjs → TableView-B8iLWWcP.mjs} +48394 -36321
  36. package/dist/TableView-BxK6R8v3.js +312 -0
  37. package/dist/{TemplateList.vue_vue_type_script_setup_true_lang-BiLAkhIA.mjs → TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs} +5 -5
  38. package/dist/{View-C7axVP9t.mjs → View-DDXN0tKD.mjs} +7 -7
  39. package/dist/View-DfzaVOzS.js +1 -0
  40. package/dist/agenda-D81m29_4.mjs +1135 -0
  41. package/dist/agenda-uzPPxgsW.js +1 -0
  42. package/dist/availability-B-tRp8hB.mjs +629 -0
  43. package/dist/availability-BiBbzEIM.js +1 -0
  44. package/dist/{exceptions-D3b18TiY.mjs → exceptions-BFchkR06.mjs} +70 -71
  45. package/dist/exceptions-C-DPRNQa.js +1 -0
  46. package/dist/index-4tjmIans.js +1 -0
  47. package/dist/index-AmUV8LZQ.mjs +176 -0
  48. package/dist/index-BDaVYdkD.mjs +7763 -0
  49. package/dist/{index-DT1wWnUk.mjs → index-BWDwEd8D.mjs} +1 -1
  50. package/dist/{index-CImCyE3L.mjs → index-BfBBm9uY.mjs} +1 -1
  51. package/dist/{index-DMoyoaks.mjs → index-Bkq58CeQ.mjs} +2 -2
  52. package/dist/{index-DI6mydpm.mjs → index-CABh6Qn6.mjs} +2 -2
  53. package/dist/{index-CQiY-oTN.mjs → index-CQkOH2_3.mjs} +1 -1
  54. package/dist/{index-Bwi1mtkq.mjs → index-CU-tbS5W.mjs} +1 -1
  55. package/dist/{index-BzuHN-r8.mjs → index-Cpnn_Pxd.mjs} +1 -1
  56. package/dist/index-CxETuRsG.js +1 -0
  57. package/dist/{index-DyCHxFp3.mjs → index-DRqJOqUR.mjs} +502 -449
  58. package/dist/index-DTago6vW-Bhr8E1Y6.js +88 -0
  59. package/dist/index-DTago6vW-CnomHQ_S.mjs +4123 -0
  60. package/dist/index-DfV8-6ON.js +245 -0
  61. package/dist/index-Dnn2SCSl.js +1 -0
  62. package/dist/{index-BEGU8Kme.mjs → index-Dpl9sU6a.mjs} +2 -2
  63. package/dist/index-Uf7TwBuW.mjs +110 -0
  64. package/dist/index-YMaY4uuk-BgpTtr73.js +1 -0
  65. package/dist/{index-CKPshlZ8-BQiiP6r_.mjs → index-YMaY4uuk-C_xV5K9Z.mjs} +399 -363
  66. package/dist/{index--jjEzba7.mjs → index-cOnxXTbF.mjs} +1 -1
  67. package/dist/index-hlylYYgy.mjs +24 -0
  68. package/dist/index.cjs.js +1 -1
  69. package/dist/index.mjs +98 -81
  70. package/dist/orders-Bh8w0ueq.mjs +346 -0
  71. package/dist/orders-Dt0zMz97.js +1 -0
  72. package/dist/payment-BQaAqQ5q.js +1 -0
  73. package/dist/payment-BbWByERf.mjs +1080 -0
  74. package/dist/regular-1LXNPviB.js +1 -0
  75. package/dist/regular-_05oq5Tx.mjs +1101 -0
  76. package/dist/regular-slots-Bs3WJB3U.js +1 -0
  77. package/dist/regular-slots-C2NYxLPn.mjs +222 -0
  78. package/dist/resources-DgPnEv76.mjs +811 -0
  79. package/dist/resources-eb0pivDL.js +1 -0
  80. package/dist/src/appointments/components/edit/EditLayout.vue.d.ts +2 -2
  81. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +92 -0
  82. package/dist/src/appointments/components/edit/EventDialog/CancelReservationDialog.vue.d.ts +8 -0
  83. package/dist/src/appointments/components/edit/EventDialog/EventDialog.vue.d.ts +10 -0
  84. package/dist/src/appointments/components/edit/{EventDialog.vue.d.ts → EventDialog/ResendConfirmationDialog.vue.d.ts} +1 -1
  85. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +51 -0
  86. package/dist/src/appointments/components/edit/EventDialog/TimelineChart.vue.d.ts +24 -0
  87. package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +4 -0
  88. package/dist/src/appointments/components/edit/EventTimeline.vue.d.ts +15 -7
  89. package/dist/src/appointments/components/edit/NewReservationDialog/NewReservationDialog.vue.d.ts +2 -0
  90. package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +68 -0
  91. package/dist/src/appointments/components/edit/dashboard/Timeline.vue.d.ts +15 -0
  92. package/dist/src/appointments/components/edit/dashboard/timeline/ResourceSelector.vue.d.ts +50 -0
  93. package/dist/src/appointments/config.d.ts +30 -0
  94. package/dist/src/appointments/index.d.ts +32 -5
  95. package/dist/src/appointments/pages/edit/agenda.vue.d.ts +1 -1
  96. package/dist/src/appointments/pages/edit/availability.vue.d.ts +1 -1
  97. package/dist/src/appointments/pages/edit/index.vue.d.ts +1 -1
  98. package/dist/src/appointments/pages/edit/orders.vue.d.ts +64 -0
  99. package/dist/src/appointments/pages/edit/payment.vue.d.ts +1 -1
  100. package/dist/src/appointments/pages/edit/regular-slots.vue.d.ts +1 -1
  101. package/dist/src/appointments/pages/edit/resources.vue.d.ts +1 -1
  102. package/dist/src/appointments/routes.d.ts +2 -5
  103. package/dist/src/appointments/types.d.ts +16 -0
  104. package/dist/src/appointments/utils/printReservation.d.ts +45 -0
  105. package/dist/src/content-manager/components/content-editor/ContentStructuredContentSections.vue.d.ts +4 -0
  106. package/dist/src/content-manager/components/content-editor/PageSettings.vue.d.ts +2 -0
  107. package/dist/src/content-manager/components/content-editor/SidebarSectionWrapper.vue.d.ts +11 -1
  108. package/dist/src/content-manager/types.d.ts +5 -0
  109. package/dist/{vee-validate-zod-BPQyEfpF.js → vee-validate-zod-ByykgYKJ.js} +1 -1
  110. package/dist/{vee-validate-zod-IXkfh-6Q.mjs → vee-validate-zod-CcOwoF6y.mjs} +4 -4
  111. package/package.json +4 -2
  112. package/dist/CalendarDate-CWtpXgpD.js +0 -1
  113. package/dist/Create-BP8TX6rj.js +0 -1
  114. package/dist/DateFormatter-BbcSwTs4.js +0 -1
  115. package/dist/DateFormatter-CbO0PVUK.mjs +0 -99
  116. package/dist/Detail-DUo6qKqO.js +0 -1
  117. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-BWuKVkvV.js +0 -1
  118. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-D0-EcU0_.mjs +0 -55
  119. package/dist/Overview-BNMZ9MUK.js +0 -1
  120. package/dist/Overview-CEPodGCn.mjs +0 -311
  121. package/dist/Overview-CvquDPhB.js +0 -1
  122. package/dist/Overview-D67UjG6n.mjs +0 -947
  123. package/dist/RegularSlotEditor.vue_vue_type_script_setup_true_lang-0xZSq0rx.js +0 -1
  124. package/dist/RegularSlotEditor.vue_vue_type_script_setup_true_lang-Bj_PVLLV.mjs +0 -392
  125. package/dist/TableView-Dv4YXBD1.js +0 -111
  126. package/dist/View-7qb_ohVo.js +0 -1
  127. package/dist/agenda-B49oKGeh.mjs +0 -706
  128. package/dist/agenda-DipQ5IWP.js +0 -1
  129. package/dist/availability-C7q9tq6l.js +0 -1
  130. package/dist/availability-DeCkqiu8.mjs +0 -613
  131. package/dist/exceptions-DJ9zWX3k.js +0 -1
  132. package/dist/index-CKPshlZ8-CIz1tDwX.js +0 -1
  133. package/dist/index-DUeFrD-B.js +0 -1
  134. package/dist/index-DsnoK4ia.mjs +0 -579
  135. package/dist/index-WL1P6d3j.js +0 -1
  136. package/dist/index-_mG-aU3Z.mjs +0 -87
  137. package/dist/index-_sQDF1pH.js +0 -1
  138. package/dist/index-klI238nT.mjs +0 -24
  139. package/dist/payment-kTjsV0Jj.js +0 -1
  140. package/dist/payment-zpCM0LD-.mjs +0 -981
  141. package/dist/regular-C4_3YXqx.mjs +0 -602
  142. package/dist/regular-DFwPEbZO.js +0 -1
  143. package/dist/regular-slots-4ooEpICB.mjs +0 -67
  144. package/dist/regular-slots-BAVGbomI.js +0 -1
  145. package/dist/resources-MpQkSstv.mjs +0 -563
  146. package/dist/resources-iM28T3dD.js +0 -1
  147. package/dist/src/appointments/components/edit/RegularSlotEditor.vue.d.ts +0 -16
@@ -1,579 +0,0 @@
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
- };