@oneclick.dev/cms-core-modules 0.0.114 → 0.0.116

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 (87) hide show
  1. package/dist/{ContentEditor-MctMvN7D.js → ContentEditor-CsbOFg3a.js} +52 -52
  2. package/dist/{ContentEditor-C5yNNLeV.mjs → ContentEditor-Df5uWpVC.mjs} +10337 -8677
  3. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-gozJKXvM.js +1 -0
  4. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-pDO9b4Pv.mjs +77 -0
  5. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-BHeMJ6nr.mjs +1476 -0
  6. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-C2zwt5UF.js +1 -0
  7. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-BYSeUW_V.js +925 -0
  8. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-DwAUYR8p.mjs +5021 -0
  9. package/dist/Overview-CBahJviK.js +1 -0
  10. package/dist/Overview-CVQ1pkuD.mjs +527 -0
  11. package/dist/TableView-Csv5Lycy.mjs +6234 -0
  12. package/dist/TableView-Cwal0BPW.js +4 -0
  13. package/dist/agenda-BSdlrfxv.mjs +1253 -0
  14. package/dist/agenda-Bev1mO7E.js +1 -0
  15. package/dist/availability-ClBGVgE9.js +1 -0
  16. package/dist/availability-D8JdA4rP.mjs +274 -0
  17. package/dist/booking-data-Px7XCIfU.mjs +1024 -0
  18. package/dist/booking-data-aMS1p_3g.js +1 -0
  19. package/dist/cms-core-modules.css +1 -1
  20. package/dist/exceptions-CqityDo9.mjs +651 -0
  21. package/dist/exceptions-DXqc0Nza.js +1 -0
  22. package/dist/index-CM4eaK5T.mjs +1245 -0
  23. package/dist/index-DliTZzwI.js +35 -0
  24. package/dist/index.cjs.js +1 -1
  25. package/dist/index.mjs +12 -11
  26. package/dist/orders-1swJVKw2.js +1 -0
  27. package/dist/orders-D41GbzIa.mjs +624 -0
  28. package/dist/payment-BJHgpaeT.js +1 -0
  29. package/dist/payment-D5j-68Ig.mjs +1278 -0
  30. package/dist/refunds-D9nTeD2d.mjs +436 -0
  31. package/dist/refunds-oVB2Opib.js +1 -0
  32. package/dist/resources-8WouFvJe.js +1 -0
  33. package/dist/resources-B-D5MUhV.mjs +975 -0
  34. package/dist/server-handlers.cjs.js +1 -1
  35. package/dist/server-handlers.mjs +626 -515
  36. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +146 -5
  37. package/dist/src/appointments/components/edit/EventDialog/CancelRefundReservationDialog.vue.d.ts +33 -0
  38. package/dist/src/appointments/components/edit/EventDialog/OrderDetailDialog.vue.d.ts +26 -8
  39. package/dist/src/appointments/components/edit/EventDialog/RefundDetailsDisplay.vue.d.ts +8 -0
  40. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +91 -5
  41. package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +20 -3
  42. package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +5 -0
  43. package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +20 -2
  44. package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +240 -0
  45. package/dist/src/appointments/composables/useAgendaMetadataSchema.d.ts +37 -0
  46. package/dist/src/appointments/pages/edit/orders.vue.d.ts +225 -0
  47. package/dist/src/appointments/pages/edit/refunds.vue.d.ts +2 -0
  48. package/dist/src/appointments/server.d.ts +2 -0
  49. package/dist/src/appointments/types.d.ts +6 -0
  50. package/dist/src/appointments/utils/printReservation.d.ts +65 -3
  51. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/Table.d.ts +36 -0
  52. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/Table.vue.d.ts +95 -0
  53. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableCell.d.ts +13 -0
  54. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableHeader.d.ts +6 -0
  55. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/TableRow.d.ts +6 -0
  56. package/dist/src/contentManager/components/content-editor/tiptap-extensions/table/index.d.ts +4 -0
  57. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TableMenu.vue.d.ts +13 -0
  58. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +14 -0
  59. package/package.json +2 -2
  60. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +0 -76
  61. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +0 -1
  62. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Baqy-rTT.js +0 -1
  63. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Dx4Bpa2m.mjs +0 -1263
  64. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +0 -1
  65. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +0 -330
  66. package/dist/Overview-98nkJUWN.mjs +0 -481
  67. package/dist/Overview-Dl8cMlsr.js +0 -1
  68. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-CuwREvXD.js +0 -349
  69. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +0 -3077
  70. package/dist/TableView-CVfkyj1k.js +0 -4
  71. package/dist/TableView-zDx0IegJ.mjs +0 -6096
  72. package/dist/agenda-BaJu3-1c.js +0 -1
  73. package/dist/agenda-BwVY_8oM.mjs +0 -1165
  74. package/dist/availability-CMrRa5y2.mjs +0 -269
  75. package/dist/availability-Cf2YfMwM.js +0 -1
  76. package/dist/booking-data-DgJd0BcM.mjs +0 -889
  77. package/dist/booking-data-Di5GmH_8.js +0 -1
  78. package/dist/exceptions-B6P9UiCj.js +0 -1
  79. package/dist/exceptions-De9-FvdP.mjs +0 -646
  80. package/dist/index-DL6orwdK.js +0 -35
  81. package/dist/index-hH3e-IYz.mjs +0 -1187
  82. package/dist/orders-C65SlpJy.mjs +0 -618
  83. package/dist/orders-XVzWAgG1.js +0 -1
  84. package/dist/payment-C3ohkehF.mjs +0 -1080
  85. package/dist/payment-Dfr-Ro-a.js +0 -1
  86. package/dist/resources-CxeFd57z.js +0 -1
  87. package/dist/resources-DwYxn2Vi.mjs +0 -811
@@ -1,269 +0,0 @@
1
- import { defineComponent as U, reactive as $, ref as k, resolveComponent as a, openBlock as m, createBlock as y, withCtx as i, createElementVNode as s, createElementBlock as S, createVNode as t, createTextVNode as l, toDisplayString as N, createCommentVNode as w } from "vue";
2
- import { _ as D } from "./EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs";
3
- import { useModuleRoute as j, useModule as W, useFirebaseIntegration as q } from "@oneclick.dev/cms-kit";
4
- const z = {
5
- key: 0,
6
- class: "max-w-2xl"
7
- }, F = {
8
- key: 0,
9
- class: "text-sm text-orange-500 mt-2"
10
- }, H = { class: "space-y-3" }, O = { class: "flex items-center justify-between rounded-lg border p-4 bg-card" }, J = { class: "space-y-2" }, K = { class: "flex justify-start mt-8" }, h = /* @__PURE__ */ U({
11
- __name: "availability",
12
- setup(Q) {
13
- const { params: g } = j(), { config: v } = W(), x = q(v.project), n = $({
14
- minimumAdvanceNotice: {
15
- value: 0,
16
- unit: "minutes"
17
- },
18
- serviceVisibility: 60,
19
- maxTicketsPerReservation: "",
20
- needsApproval: !1
21
- }), d = k(!1), V = k(!0), _ = async () => {
22
- d.value = !0;
23
- try {
24
- const o = g.value.id;
25
- if (!o) throw new Error("Missing agenda ID");
26
- await x.update(v.agendaCollection, o, {
27
- minimumAdvanceNotice: {
28
- value: Number(n.minimumAdvanceNotice?.value) || 0,
29
- unit: n.minimumAdvanceNotice?.unit ?? "minutes"
30
- },
31
- serviceVisibility: Math.max(Number(n.serviceVisibility) || 1, 1),
32
- maxTicketsPerReservation: Math.max(Number(n.maxTicketsPerReservation) || 0, 0),
33
- needsApproval: n.needsApproval || !1
34
- });
35
- } catch (o) {
36
- console.error("Error saving changes:", o);
37
- } finally {
38
- d.value = !1;
39
- }
40
- }, M = async () => {
41
- try {
42
- const o = await x.get(v.agendaCollection, g.value.id);
43
- o && (n.minimumAdvanceNotice = o.minimumAdvanceNotice || { value: 0, unit: "minutes" }, n.serviceVisibility = o.serviceVisibility || 60, n.maxTicketsPerReservation = Number(o.maxTicketsPerReservation) && o.maxTicketsPerReservation > 0 ? parseInt(o.maxTicketsPerReservation) : "", n.needsApproval = o.needsApproval || !1);
44
- } catch (o) {
45
- console.error("Error loading agenda data:", o);
46
- } finally {
47
- V.value = !1;
48
- }
49
- }, T = () => {
50
- let o = Math.abs(n.minimumAdvanceNotice.value), e = n.minimumAdvanceNotice.unit;
51
- return o === 1 ? (e.endsWith("s") && (e = e.slice(0, -1)), `Lead time is negative. Bookings remain open for 1 ${e} after the slot has started.`) : `Lead time is negative. Bookings remain open for ${o} ${e} after the slot has started.`;
52
- };
53
- return M(), (o, e) => {
54
- const u = a("Label"), c = a("InputGroupInput"), C = a("Search"), p = a("InputGroupAddon"), I = a("SelectValue"), B = a("SelectTrigger"), f = a("SelectItem"), R = a("SelectGroup"), P = a("SelectContent"), G = a("Select"), b = a("InputGroup"), A = a("Badge"), L = a("Switch"), E = a("Button");
55
- return m(), y(D, null, {
56
- default: i(() => [
57
- e[26] || (e[26] = s("h1", { class: "text-lg font-medium mb-8" }, "Availability Settings", -1)),
58
- V.value ? w("", !0) : (m(), S("div", z, [
59
- s("div", null, [
60
- t(u, {
61
- for: "lead-time",
62
- class: "text-base font-medium mb-2"
63
- }, {
64
- default: i(() => [...e[6] || (e[6] = [
65
- l(" Minimum Advance Notice - Lead Time (Optional) ", -1)
66
- ])]),
67
- _: 1
68
- }),
69
- t(b, { class: "max-w-md" }, {
70
- default: i(() => [
71
- t(c, {
72
- placeholder: "0",
73
- id: "lead-time",
74
- modelValue: n.minimumAdvanceNotice.value,
75
- "onUpdate:modelValue": e[0] || (e[0] = (r) => n.minimumAdvanceNotice.value = r),
76
- modelModifiers: { value: !0 },
77
- type: "number",
78
- class: "no-spinner"
79
- }, null, 8, ["modelValue"]),
80
- t(p, null, {
81
- default: i(() => [
82
- t(C)
83
- ]),
84
- _: 1
85
- }),
86
- t(p, { align: "inline-end" }, {
87
- default: i(() => [
88
- t(G, {
89
- modelValue: n.minimumAdvanceNotice.unit,
90
- "onUpdate:modelValue": e[1] || (e[1] = (r) => n.minimumAdvanceNotice.unit = r)
91
- }, {
92
- default: i(() => [
93
- t(B, { class: "w-[180px] border-0 bg-transparent -mr-1.5" }, {
94
- default: i(() => [
95
- t(I)
96
- ]),
97
- _: 1
98
- }),
99
- t(P, null, {
100
- default: i(() => [
101
- t(R, null, {
102
- default: i(() => [
103
- t(f, { value: "minutes" }, {
104
- default: i(() => [...e[7] || (e[7] = [
105
- l(" Minutes ", -1)
106
- ])]),
107
- _: 1
108
- }),
109
- t(f, { value: "hours" }, {
110
- default: i(() => [...e[8] || (e[8] = [
111
- l(" Hours ", -1)
112
- ])]),
113
- _: 1
114
- }),
115
- t(f, { value: "days" }, {
116
- default: i(() => [...e[9] || (e[9] = [
117
- l(" Days ", -1)
118
- ])]),
119
- _: 1
120
- })
121
- ]),
122
- _: 1
123
- })
124
- ]),
125
- _: 1
126
- })
127
- ]),
128
- _: 1
129
- }, 8, ["modelValue"])
130
- ]),
131
- _: 1
132
- })
133
- ]),
134
- _: 1
135
- }),
136
- e[10] || (e[10] = s("p", { class: "text-sm text-muted-foreground mt-2" }, " Set how far in advance a customer must book your slot. ", -1)),
137
- n.minimumAdvanceNotice.value < 0 ? (m(), S("p", F, N(T()), 1)) : w("", !0)
138
- ]),
139
- e[23] || (e[23] = s("hr", { class: "my-8" }, null, -1)),
140
- s("div", null, [
141
- t(u, {
142
- for: "service-visibility",
143
- class: "text-base font-medium mb-2"
144
- }, {
145
- default: i(() => [...e[11] || (e[11] = [
146
- l(" Service Visibility ", -1)
147
- ])]),
148
- _: 1
149
- }),
150
- t(b, { class: "max-w-md" }, {
151
- default: i(() => [
152
- t(c, {
153
- id: "service-visibility",
154
- modelValue: n.serviceVisibility,
155
- "onUpdate:modelValue": e[2] || (e[2] = (r) => n.serviceVisibility = r),
156
- modelModifiers: { number: !0 },
157
- placeholder: "1",
158
- type: "number",
159
- class: "no-spinner",
160
- min: "1",
161
- onBlur: e[3] || (e[3] = (r) => n.serviceVisibility = Math.max(n.serviceVisibility, 1))
162
- }, null, 8, ["modelValue"]),
163
- t(p, { align: "inline-end" }, {
164
- default: i(() => [...e[12] || (e[12] = [
165
- l(" days ", -1)
166
- ])]),
167
- _: 1
168
- })
169
- ]),
170
- _: 1
171
- }),
172
- e[13] || (e[13] = s("p", { class: "text-sm text-muted-foreground mt-2" }, " Set how many days in advance the service is visible to customers. ", -1))
173
- ]),
174
- e[24] || (e[24] = s("hr", { class: "my-8" }, null, -1)),
175
- s("div", null, [
176
- t(u, {
177
- for: "max-capacity",
178
- class: "text-base font-medium mb-2"
179
- }, {
180
- default: i(() => [...e[14] || (e[14] = [
181
- l(" Maximum Tickets Per Booking ", -1)
182
- ])]),
183
- _: 1
184
- }),
185
- t(b, { class: "max-w-md" }, {
186
- default: i(() => [
187
- t(c, {
188
- placeholder: "∞",
189
- type: "number",
190
- id: "max-capacity",
191
- class: "no-spinner",
192
- min: "1",
193
- modelValue: n.maxTicketsPerReservation,
194
- "onUpdate:modelValue": e[4] || (e[4] = (r) => n.maxTicketsPerReservation = r),
195
- modelModifiers: { number: !0 }
196
- }, null, 8, ["modelValue"]),
197
- t(p, { align: "inline-end" }, {
198
- default: i(() => [...e[15] || (e[15] = [
199
- l(" spots ", -1)
200
- ])]),
201
- _: 1
202
- })
203
- ]),
204
- _: 1
205
- }),
206
- e[16] || (e[16] = s("p", { class: "text-sm text-muted-foreground mt-2" }, " Limit how many spots a customer can book in a single reservation. ", -1))
207
- ]),
208
- e[25] || (e[25] = s("hr", { class: "my-8" }, null, -1)),
209
- s("div", H, [
210
- s("div", null, [
211
- t(u, { class: "text-base font-medium" }, {
212
- default: i(() => [...e[17] || (e[17] = [
213
- l("Booking Approval", -1)
214
- ])]),
215
- _: 1
216
- }),
217
- e[18] || (e[18] = s("p", { class: "text-sm text-muted-foreground" }, " Choose whether you want to confirm booking requests manually or accept them automatically. ", -1))
218
- ]),
219
- s("div", O, [
220
- s("div", J, [
221
- t(u, { class: "text-sm font-semibold" }, {
222
- default: i(() => [...e[19] || (e[19] = [
223
- l("Enable Manual Approval", -1)
224
- ])]),
225
- _: 1
226
- }),
227
- e[22] || (e[22] = s("p", { class: "text-xs text-muted-foreground max-w-[300px]" }, " When enabled, you must approve bookings within your dashboard before they are finalized. ", -1)),
228
- n.needsApproval ? (m(), y(A, { key: 0 }, {
229
- default: i(() => [...e[20] || (e[20] = [
230
- l("Status: Manual Review", -1)
231
- ])]),
232
- _: 1
233
- })) : (m(), y(A, {
234
- key: 1,
235
- variant: "secondary"
236
- }, {
237
- default: i(() => [...e[21] || (e[21] = [
238
- l("Status: Auto-Confirm", -1)
239
- ])]),
240
- _: 1
241
- }))
242
- ]),
243
- t(L, {
244
- modelValue: n.needsApproval,
245
- "onUpdate:modelValue": e[5] || (e[5] = (r) => n.needsApproval = r)
246
- }, null, 8, ["modelValue"])
247
- ])
248
- ]),
249
- s("div", K, [
250
- t(E, {
251
- onClick: _,
252
- disabled: d.value
253
- }, {
254
- default: i(() => [
255
- l(N(d.value ? "Saving..." : "Save Changes"), 1)
256
- ]),
257
- _: 1
258
- }, 8, ["disabled"])
259
- ])
260
- ]))
261
- ]),
262
- _: 1
263
- });
264
- };
265
- }
266
- });
267
- export {
268
- h as default
269
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),_=require("./EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js"),c=require("@oneclick.dev/cms-kit"),E={key:0,class:"max-w-2xl"},B={key:0,class:"text-sm text-orange-500 mt-2"},M={class:"space-y-3"},h={class:"flex items-center justify-between rounded-lg border p-4 bg-card"},I={class:"space-y-2"},P={class:"flex justify-start mt-8"},R=e.defineComponent({__name:"availability",setup(L){const{params:p}=c.useModuleRoute(),{config:r}=c.useModule(),v=c.useFirebaseIntegration(r.project),o=e.reactive({minimumAdvanceNotice:{value:0,unit:"minutes"},serviceVisibility:60,maxTicketsPerReservation:"",needsApproval:!1}),l=e.ref(!1),V=e.ref(!0),N=async()=>{l.value=!0;try{const n=p.value.id;if(!n)throw new Error("Missing agenda ID");await v.update(r.agendaCollection,n,{minimumAdvanceNotice:{value:Number(o.minimumAdvanceNotice?.value)||0,unit:o.minimumAdvanceNotice?.unit??"minutes"},serviceVisibility:Math.max(Number(o.serviceVisibility)||1,1),maxTicketsPerReservation:Math.max(Number(o.maxTicketsPerReservation)||0,0),needsApproval:o.needsApproval||!1})}catch(n){console.error("Error saving changes:",n)}finally{l.value=!1}},f=async()=>{try{const n=await v.get(r.agendaCollection,p.value.id);n&&(o.minimumAdvanceNotice=n.minimumAdvanceNotice||{value:0,unit:"minutes"},o.serviceVisibility=n.serviceVisibility||60,o.maxTicketsPerReservation=Number(n.maxTicketsPerReservation)&&n.maxTicketsPerReservation>0?parseInt(n.maxTicketsPerReservation):"",o.needsApproval=n.needsApproval||!1)}catch(n){console.error("Error loading agenda data:",n)}finally{V.value=!1}},y=()=>{let n=Math.abs(o.minimumAdvanceNotice.value),t=o.minimumAdvanceNotice.unit;return n===1?(t.endsWith("s")&&(t=t.slice(0,-1)),`Lead time is negative. Bookings remain open for 1 ${t} after the slot has started.`):`Lead time is negative. Bookings remain open for ${n} ${t} after the slot has started.`};return f(),(n,t)=>{const i=e.resolveComponent("Label"),d=e.resolveComponent("InputGroupInput"),b=e.resolveComponent("Search"),s=e.resolveComponent("InputGroupAddon"),g=e.resolveComponent("SelectValue"),C=e.resolveComponent("SelectTrigger"),m=e.resolveComponent("SelectItem"),w=e.resolveComponent("SelectGroup"),k=e.resolveComponent("SelectContent"),S=e.resolveComponent("Select"),u=e.resolveComponent("InputGroup"),x=e.resolveComponent("Badge"),A=e.resolveComponent("Switch"),T=e.resolveComponent("Button");return e.openBlock(),e.createBlock(_._sfc_main,null,{default:e.withCtx(()=>[t[26]||(t[26]=e.createElementVNode("h1",{class:"text-lg font-medium mb-8"},"Availability Settings",-1)),V.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",E,[e.createElementVNode("div",null,[e.createVNode(i,{for:"lead-time",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Minimum Advance Notice - Lead Time (Optional) ",-1)])]),_:1}),e.createVNode(u,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(d,{placeholder:"0",id:"lead-time",modelValue:o.minimumAdvanceNotice.value,"onUpdate:modelValue":t[0]||(t[0]=a=>o.minimumAdvanceNotice.value=a),modelModifiers:{value:!0},type:"number",class:"no-spinner"},null,8,["modelValue"]),e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(b)]),_:1}),e.createVNode(s,{align:"inline-end"},{default:e.withCtx(()=>[e.createVNode(S,{modelValue:o.minimumAdvanceNotice.unit,"onUpdate:modelValue":t[1]||(t[1]=a=>o.minimumAdvanceNotice.unit=a)},{default:e.withCtx(()=>[e.createVNode(C,{class:"w-[180px] border-0 bg-transparent -mr-1.5"},{default:e.withCtx(()=>[e.createVNode(g)]),_:1}),e.createVNode(k,null,{default:e.withCtx(()=>[e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(m,{value:"minutes"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Minutes ",-1)])]),_:1}),e.createVNode(m,{value:"hours"},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode(" Hours ",-1)])]),_:1}),e.createVNode(m,{value:"days"},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode(" Days ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t[10]||(t[10]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Set how far in advance a customer must book your slot. ",-1)),o.minimumAdvanceNotice.value<0?(e.openBlock(),e.createElementBlock("p",B,e.toDisplayString(y()),1)):e.createCommentVNode("",!0)]),t[23]||(t[23]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",null,[e.createVNode(i,{for:"service-visibility",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode(" Service Visibility ",-1)])]),_:1}),e.createVNode(u,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(d,{id:"service-visibility",modelValue:o.serviceVisibility,"onUpdate:modelValue":t[2]||(t[2]=a=>o.serviceVisibility=a),modelModifiers:{number:!0},placeholder:"1",type:"number",class:"no-spinner",min:"1",onBlur:t[3]||(t[3]=a=>o.serviceVisibility=Math.max(o.serviceVisibility,1))},null,8,["modelValue"]),e.createVNode(s,{align:"inline-end"},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode(" days ",-1)])]),_:1})]),_:1}),t[13]||(t[13]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Set how many days in advance the service is visible to customers. ",-1))]),t[24]||(t[24]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",null,[e.createVNode(i,{for:"max-capacity",class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode(" Maximum Tickets Per Booking ",-1)])]),_:1}),e.createVNode(u,{class:"max-w-md"},{default:e.withCtx(()=>[e.createVNode(d,{placeholder:"∞",type:"number",id:"max-capacity",class:"no-spinner",min:"1",modelValue:o.maxTicketsPerReservation,"onUpdate:modelValue":t[4]||(t[4]=a=>o.maxTicketsPerReservation=a),modelModifiers:{number:!0}},null,8,["modelValue"]),e.createVNode(s,{align:"inline-end"},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode(" spots ",-1)])]),_:1})]),_:1}),t[16]||(t[16]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-2"}," Limit how many spots a customer can book in a single reservation. ",-1))]),t[25]||(t[25]=e.createElementVNode("hr",{class:"my-8"},null,-1)),e.createElementVNode("div",M,[e.createElementVNode("div",null,[e.createVNode(i,{class:"text-base font-medium"},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("Booking Approval",-1)])]),_:1}),t[18]||(t[18]=e.createElementVNode("p",{class:"text-sm text-muted-foreground"}," Choose whether you want to confirm booking requests manually or accept them automatically. ",-1))]),e.createElementVNode("div",h,[e.createElementVNode("div",I,[e.createVNode(i,{class:"text-sm font-semibold"},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("Enable Manual Approval",-1)])]),_:1}),t[22]||(t[22]=e.createElementVNode("p",{class:"text-xs text-muted-foreground max-w-[300px]"}," When enabled, you must approve bookings within your dashboard before they are finalized. ",-1)),o.needsApproval?(e.openBlock(),e.createBlock(x,{key:0},{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("Status: Manual Review",-1)])]),_:1})):(e.openBlock(),e.createBlock(x,{key:1,variant:"secondary"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("Status: Auto-Confirm",-1)])]),_:1}))]),e.createVNode(A,{modelValue:o.needsApproval,"onUpdate:modelValue":t[5]||(t[5]=a=>o.needsApproval=a)},null,8,["modelValue"])])]),e.createElementVNode("div",P,[e.createVNode(T,{onClick:N,disabled:l.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.value?"Saving...":"Save Changes"),1)]),_:1},8,["disabled"])])]))]),_:1})}}});exports.default=R;