@oneclick.dev/cms-core-modules 0.0.115 → 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
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),re=require("./EditLayout.vue_vue_type_script_setup_true_lang-gozJKXvM.js"),N=require("lucide-vue-next"),T=require("@oneclick.dev/cms-kit"),de=require("./index-ijdf0d9-.js"),se={class:"flex gap-3 items-start p-4 border rounded-lg"},ie={class:"flex-1 space-y-3"},ce={class:"grid grid-cols-2 gap-3"},me={class:"flex items-center space-x-2 my-4"},ue={class:"grid grid-cols-2 gap-2"},pe={key:0},Ve={key:1},fe={key:2},xe={key:3},Ne={key:4},ge={key:0},ve=e.defineComponent({__name:"Addon",props:{addOn:{type:Object,required:!0}},setup(i){const y=e.inject("form"),g=C=>{y.addOns=y.addOns.filter(a=>a.id!==C)};return(C,a)=>{const m=e.resolveComponent("Label"),x=e.resolveComponent("Input"),v=e.resolveComponent("Checkbox"),f=e.resolveComponent("SelectTrigger"),p=e.resolveComponent("SelectItem"),_=e.resolveComponent("SelectGroup"),I=e.resolveComponent("SelectContent"),b=e.resolveComponent("Select"),A=e.resolveComponent("Trash2"),B=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",ie,[e.createElementVNode("div",ce,[e.createElementVNode("div",null,[e.createVNode(m,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...a[7]||(a[7]=[e.createTextVNode("Add-on Name",-1)])]),_:1}),e.createVNode(x,{modelValue:i.addOn.name,"onUpdate:modelValue":a[0]||(a[0]=V=>i.addOn.name=V),placeholder:"e.g., Swimsuit Rental, Towel Service"},null,8,["modelValue"])]),e.createElementVNode("div",null,[e.createVNode(m,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...a[8]||(a[8]=[e.createTextVNode("Price",-1)])]),_:1}),e.createVNode(x,{modelValue:i.addOn.price,"onUpdate:modelValue":a[1]||(a[1]=V=>i.addOn.price=V),modelModifiers:{number:!0},type:"number",min:"0",step:"0.01",placeholder:"0.00",class:"no-spinner"},null,8,["modelValue"])])]),e.createElementVNode("div",null,[e.createVNode(m,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...a[9]||(a[9]=[e.createTextVNode("Description (Optional)",-1)])]),_:1}),e.createVNode(x,{modelValue:i.addOn.description,"onUpdate:modelValue":a[2]||(a[2]=V=>i.addOn.description=V),placeholder:"Brief description of this add-on"},null,8,["modelValue"])]),e.createElementVNode("div",me,[e.createVNode(v,{id:`required-${i.addOn.id}`,modelValue:i.addOn.required,"onUpdate:modelValue":a[3]||(a[3]=V=>i.addOn.required=V)},null,8,["id","modelValue"]),e.createVNode(m,{for:`required-${i.addOn.id}`,class:"text-xs font-normal cursor-pointer"},{default:e.withCtx(()=>[...a[10]||(a[10]=[e.createTextVNode(" Required (customer must select this add-on) ",-1)])]),_:1},8,["for"])]),e.createElementVNode("div",ue,[e.createElementVNode("div",null,[e.createVNode(m,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...a[11]||(a[11]=[e.createTextVNode("Quantity limit",-1)])]),_:1}),e.createVNode(b,{modelValue:i.addOn.scope,"onUpdate:modelValue":a[4]||(a[4]=V=>i.addOn.scope=V)},{default:e.withCtx(()=>[e.createVNode(f,{class:"w-full"},{default:e.withCtx(()=>[i.addOn.scope==="RESERVATION"?(e.openBlock(),e.createElementBlock("span",pe,"Once per reservation")):i.addOn.scope==="TICKET"?(e.openBlock(),e.createElementBlock("span",Ve,"Once per ticket / person")):i.addOn.scope==="UNLIMITED"?(e.openBlock(),e.createElementBlock("span",fe,"Unlimited")):i.addOn.scope==="CUSTOM_LIMIT"?(e.openBlock(),e.createElementBlock("span",xe,"Custom limit...")):(e.openBlock(),e.createElementBlock("span",Ne,"Select a limit…"))]),_:1}),e.createVNode(I,null,{default:e.withCtx(()=>[e.createVNode(_,{class:"max-w-96"},{default:e.withCtx(()=>[e.createVNode(p,{value:"RESERVATION"},{default:e.withCtx(()=>[...a[12]||(a[12]=[e.createElementVNode("div",{class:"flex flex-col"},[e.createElementVNode("p",{class:"text-sm font-bold mb-1"},"Once per reservation"),e.createElementVNode("p",{class:"text-xs"},"Max 1 per reservation line (charged per reservation).")],-1)])]),_:1}),e.createVNode(p,{value:"TICKET"},{default:e.withCtx(()=>[...a[13]||(a[13]=[e.createElementVNode("div",{class:"flex flex-col"},[e.createElementVNode("p",{class:"text-sm font-bold mb-1"},"Once per ticket / person"),e.createElementVNode("p",{class:"text-xs"},"Max 1 per ticket/person (charged per quantity).")],-1)])]),_:1}),e.createVNode(p,{value:"UNLIMITED"},{default:e.withCtx(()=>[...a[14]||(a[14]=[e.createElementVNode("div",{class:"flex flex-col"},[e.createElementVNode("p",{class:"text-sm font-bold mb-1"},"Unlimited"),e.createElementVNode("p",{class:"text-xs"},"No limit (can be added multiple times).")],-1)])]),_:1}),e.createVNode(p,{value:"CUSTOM_LIMIT"},{default:e.withCtx(()=>[...a[15]||(a[15]=[e.createElementVNode("div",{class:"flex flex-col"},[e.createElementVNode("p",{class:"text-sm font-bold mb-1"},"Custom limit..."),e.createElementVNode("p",{class:"text-xs"},"Set a fixed max amount (e.g. 2, 5, 10).")],-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]),i.addOn.scope==="CUSTOM_LIMIT"?(e.openBlock(),e.createElementBlock("div",ge,[e.createVNode(m,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...a[16]||(a[16]=[e.createTextVNode("Fixed limit",-1)])]),_:1}),e.createVNode(x,{modelValue:i.addOn.limit,"onUpdate:modelValue":a[5]||(a[5]=V=>i.addOn.limit=V),modelModifiers:{number:!0},type:"number",min:"1",step:"1",placeholder:"1",class:"no-spinner"},null,8,["modelValue"])])):e.createCommentVNode("",!0)])]),e.createVNode(B,{onClick:a[6]||(a[6]=V=>g(i.addOn.id)),variant:"ghost",size:"icon",class:"mt-6"},{default:e.withCtx(()=>[e.createVNode(A,{class:"w-4 h-4 text-destructive"})]),_:1})])}}}),ye={class:"grid gap-2"},Ce=["id"],ke=["onClick"],be={class:"flex items-center gap-2"},Ee={class:"flex items-center gap-1"},_e={class:"overflow-hidden"},we=e.defineComponent({__name:"AddonList",setup(i,{expose:y}){const{confirm:g}=T.useConfirmation(),C=e.inject("form"),a=e.ref([]),m=async x=>{if(!await g("Are you sure you want to remove this add-on?"))return;C.addOns=C.addOns.filter(p=>p.id!==x);const f=a.value.indexOf(x);f!==-1&&a.value.splice(f,1),de.toast("Success!",{description:"Add-on removed successfully."})};return y({openAddons:a}),(x,v)=>{const f=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",ye,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C).addOns,p=>(e.openBlock(),e.createElementBlock("div",{key:p.id,class:"border p-2 rounded",id:`addon-${p.id}`},[e.createElementVNode("div",{onClick:_=>a.value.includes(p.id)?a.value.splice(a.value.indexOf(p.id),1):a.value.push(p.id),class:"cursor-pointer font-bold text-muted-foreground flex items-center justify-between gap-2 select-none"},[e.createElementVNode("span",be,[e.createVNode(e.unref(N.DollarSign),{class:"size-4"}),e.createTextVNode(" "+e.toDisplayString(p.name||"Untitled Add-on"),1)]),e.createElementVNode("div",Ee,[e.createVNode(f,{variant:"ghost",size:"icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Pencil),{class:"size-4"})]),_:1}),e.createVNode(f,{variant:"ghost",size:"icon",onClick:e.withModifiers(_=>m(p.id),["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Trash2),{class:"size-4 text-red-500"})]),_:1},8,["onClick"])])],8,ke),e.createElementVNode("div",{class:e.normalizeClass(["grid",`${a.value.includes(p.id)?"grid-rows-[1fr]":"grid-rows-[0fr]"} transition-all duration-300 ease-in-out overflow-hidden`])},[e.createElementVNode("div",_e,[e.createVNode(ve,{addOn:p},null,8,["addOn"])])],2)],8,Ce))),128))])}}}),he={class:"flex items-center justify-between mb-4"},Te={class:"space-y-3"},Be={key:0,class:"text-center py-8 text-muted-foreground text-sm border rounded-lg"},Se=e.defineComponent({__name:"index",setup(i){const y=e.inject("form"),g=e.useTemplateRef("addonList"),C=async()=>{const a=Math.random().toString(36).substr(2,9);y.addOns.push({id:a,name:"",description:"",price:0,required:!1}),g.value?.openAddons.push(a),await e.nextTick(),document.getElementById(`addon-${a}`)?.scrollIntoView({behavior:"smooth",block:"start"})};return(a,m)=>{const x=e.resolveComponent("Label"),v=e.resolveComponent("Button");return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",he,[e.createElementVNode("div",null,[e.createVNode(x,{class:"text-base font-medium"},{default:e.withCtx(()=>[...m[0]||(m[0]=[e.createTextVNode(" Optional Add-ons & Upcharges ",-1)])]),_:1}),m[1]||(m[1]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-1"}," Offer optional extras that customers can add to their booking (e.g., swimsuit rental). ",-1))]),e.createVNode(v,{onClick:C,variant:"outline",size:"sm"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.PlusCircle),{class:"w-4 h-4 mr-2"}),m[2]||(m[2]=e.createTextVNode(" Add Add-on ",-1))]),_:1})]),e.createElementVNode("div",Te,[e.createVNode(we,{ref_key:"addonList",ref:g},null,512),e.unref(y).addOns.length===0?(e.openBlock(),e.createElementBlock("div",Be,' No add-ons configured. Click "Add Add-on" to create optional extras. ')):e.createCommentVNode("",!0)])])}}}),De={key:0},Oe={key:0,class:"max-w-2xl space-y-12"},Ie={class:"flex gap-4 items-end"},Ae={class:"w-32"},Pe={class:"flex items-center justify-between mb-4 gap-4"},Ue={class:"space-y-3"},Re={class:"flex-1 space-y-3"},$e={class:"flex gap-3"},ze={class:"flex-1"},Le={class:"flex-1"},Me={class:"flex items-end"},Fe={class:"flex items-center justify-between mb-4"},je={class:"space-y-3"},qe={class:"flex-1 space-y-3"},Ge={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},He={key:0,class:"grid grid-cols-1 sm:grid-cols-2 gap-2"},Ye={key:1,class:"space-y-2"},We={class:"grid grid-cols-1 sm:grid-cols-2 gap-2"},Ke={class:"text-xs text-muted-foreground"},Qe={key:2,class:"grid grid-cols-1 sm:grid-cols-2 gap-2"},Je={key:0,class:"sm:col-span-2 flex items-start gap-1.5 text-xs text-amber-600 dark:text-amber-400"},Xe={class:"grid grid-cols-2 gap-3"},Ze={key:0},et={class:"flex items-center gap-2"},tt={key:0},ot={key:1},nt={key:2},lt={class:"space-y-1"},at=["onClick"],rt={class:"size-5 rounded-full bg-muted flex items-center justify-center"},dt={key:0,class:"w-full h-full rounded-full bg-white scale-50"},st=["onClick"],it={class:"text-sm flex-1 truncate"},ct={key:0,class:"w-3 h-3 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},mt={key:0,class:"text-center py-8 text-muted-foreground text-sm border rounded-lg"},ut={key:0,class:"mt-6 p-4 border rounded-lg bg-muted/30"},pt={class:"space-y-4"},Vt={class:"flex items-center gap-3"},ft={class:"flex-1"},xt={class:"text-sm text-muted-foreground"},Nt={class:"text-xs text-muted-foreground"},gt={class:"flex flex-col items-start gap-2 pt-4 border-t"},vt={key:0,class:"flex items-start gap-1.5 text-xs text-amber-600 dark:text-amber-400"},yt={key:1},Ct=e.defineComponent({__name:"payment",setup(i){const y=[{value:"time_after",label:"Time After"},{value:"time_before",label:"Time Before"},{value:"time_between",label:"Time Between"},{value:"day_of_week",label:"Day of Week"},{value:"date_range",label:"Date Range"}],g=[{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"},{value:0,label:"Sunday"}],C=/^([01]\d|2[0-3]):[0-5]\d$/,a=/^\d{4}-\d{2}-\d{2}$/,m=o=>typeof o=="object"&&o!==null&&!Array.isArray(o),x=o=>typeof o=="string"&&y.some(t=>t.value===o),v=(o,t)=>{const l=typeof o=="string"?o:"";return C.test(l)?l:t},f=o=>{const t=typeof o=="string"?o:"";return a.test(t)?t:""},p=o=>{const[t="0",l="0"]=o.split(":"),s=(Number(t)+1)%24;return`${String(s).padStart(2,"0")}:${l.padStart(2,"0")}`},_=o=>typeof o=="string"?o.split(/\s+(?:to|-|–)\s+/):[],I=o=>{const t=String(o).trim().toLowerCase();if(typeof o=="string"&&t==="")return;const l=typeof o=="number"?o:Number(o),s=g.find(c=>c.label.toLowerCase()===t)?.value;return Number.isInteger(l)&&l>=0&&l<=6?l:s},b=o=>{const l=(Array.isArray(o)?o:[o]).flatMap(c=>typeof c=="string"?c.split(/\s*,\s*/):[c]).map(I).filter(c=>c!==void 0),s=Array.from(new Set(l));return s.length>0?g.map(c=>c.value).filter(c=>s.includes(c)):Array.isArray(o)?[]:[1]},A=(o,t)=>{const l=o==="time_before"?"09:00":"17:00";if(m(t)){const s=o==="time_before"?t.end??t.endTime:t.start??t.startTime;return v(s,l)}return v(t,l)},B=(o,t)=>{if(o==="time_between"){if(m(t)){const c=v(t.start??t.startTime,"09:00");return{start:c,end:v(t.end??t.endTime,p(c))}}const l=_(t),s=v(l[0]||t,"09:00");return{start:s,end:v(l[1],p(s))}}if(o==="day_of_week")return b(t);if(o==="date_range"){if(m(t)){const c=f(t.startDate??t.start);return{startDate:c,endDate:f(t.endDate??t.end)||c}}const l=_(t),s=f(l[0]);return{startDate:s,endDate:f(l[1])||s}}return A(o,t)},V=o=>{if(!m(o))return!1;const t=f(o.startDate??o.start),l=f(o.endDate??o.end);return!!(t&&l&&l<t)},P=o=>{const t=o?.condition,l=x(t)?t:"time_after";return{...o,id:String(o?.id||Math.random().toString(36).substr(2,9)),name:o?.name||"",condition:l,conditionValue:B(l,o?.conditionValue),modifier:o?.modifier==="percentage"?"percentage":"fixed",amount:Number(o?.amount)||0,resourceIds:Array.isArray(o?.resourceIds)?o.resourceIds:null}},G=(o,t)=>{x(t)&&(o.condition=t,o.conditionValue=B(t,o.conditionValue))},{params:$}=T.useModuleRoute(),{hasPermission:H}=T.useModulePermissions(),{config:U}=T.useModule(),z=T.useFirebaseIntegration(U.project),d=e.reactive({paymentType:"full",currency:"USD",partialPayment:{type:"percentage",amount:50},pricingOptions:[{id:"1",name:"Standard Service",price:0,duration:30,isDefault:!0}],pricingRules:[],addOns:[]}),S=e.ref(!1),L=e.ref(!0),D=e.ref([]),R=e.computed(()=>d.pricingRules.some(o=>o.condition==="date_range"&&V(o.conditionValue))),M=(o,t)=>b(o.conditionValue).includes(t),Y=o=>{const t=b(o);return t.length===0?"No days selected":t.length===g.length?"Every day":t.map(l=>g.find(s=>s.value===l)?.label).filter(Boolean).join(", ")},W=(o,t,l)=>{const s=b(o.conditionValue);if(l===!0){o.conditionValue=b([...s,t]);return}const u=s.filter(w=>w!==t);o.conditionValue=u.length>0?u:s},K=(o,t)=>{if(!o.resourceIds)o.resourceIds=[t];else{const l=o.resourceIds.indexOf(t);l===-1?o.resourceIds.push(t):o.resourceIds.splice(l,1)}},F=(o,t)=>{o.resourceIds=t?null:[]},Q=async()=>{if(!R.value){S.value=!0;try{const o=$.value.id;if(!o)throw new Error("Missing agenda ID");await z.update(U.agendaCollection,o,{paymentType:d.paymentType||"full",currency:d.currency||"USD",partialPayment:{type:d.partialPayment.type||"percentage",amount:Math.max(Number(d.partialPayment.amount)||0,0)},pricingOptions:d.pricingOptions??[],pricingRules:(d.pricingRules??[]).map(P),addOns:d.addOns??[]})}catch(o){console.error("Error saving changes:",o)}finally{S.value=!1}}},J=()=>{const o=Math.random().toString(36).substr(2,9);d.pricingOptions.push({id:o,name:"",price:0,duration:30,isDefault:!1})},X=o=>{d.pricingOptions=d.pricingOptions.filter(t=>t.id!==o)},Z=o=>{d.pricingOptions.forEach(t=>{t.isDefault=t.id===o})},ee=()=>{const o=Math.random().toString(36).substr(2,9);d.pricingRules.push(P({id:o,name:"",condition:"time_after",conditionValue:"17:00",modifier:"fixed",amount:10,resourceIds:null}))},te=o=>{d.pricingRules=d.pricingRules.filter(t=>t.id!==o)};return(async()=>{try{const o=await z.get(U.agendaCollection,$.value.id);o&&(d.paymentType=o.paymentType||"full",d.currency=o.currency||"USD",d.partialPayment={type:o.partialPayment?.type||"percentage",amount:Number(o.partialPayment?.amount)&&o.partialPayment.amount>0?parseFloat(o.partialPayment.amount):50},d.pricingOptions=o.pricingOptions||[{id:"1",name:"Standard Service",price:0,duration:30,isDefault:!0}],d.pricingRules=(o.pricingRules||[]).map(P),d.addOns=o.addOns||[],D.value=(o.resources||[]).filter(t=>t.isActive))}catch(o){console.error("Error loading agenda data:",o)}finally{L.value=!1}})(),e.provide("form",d),(o,t)=>{const l=e.resolveComponent("Label"),s=e.resolveComponent("SelectValue"),c=e.resolveComponent("SelectTrigger"),u=e.resolveComponent("SelectItem"),w=e.resolveComponent("SelectContent"),O=e.resolveComponent("Select"),E=e.resolveComponent("Button"),k=e.resolveComponent("Input"),oe=e.resolveComponent("Checkbox"),ne=e.resolveComponent("PopoverTrigger"),le=e.resolveComponent("PopoverContent"),ae=e.resolveComponent("Popover"),h=e.resolveComponent("RadioGroupItem"),j=e.resolveComponent("RadioGroup");return e.openBlock(),e.createBlock(re._sfc_main,null,{default:e.withCtx(()=>[e.unref(H)("manage-payment")?(e.openBlock(),e.createElementBlock("div",De,[t[53]||(t[53]=e.createElementVNode("h1",{class:"text-lg font-medium mb-8"},"Payment Settings",-1)),L.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Oe,[e.createElementVNode("div",null,[e.createElementVNode("div",Ie,[e.createElementVNode("div",Ae,[e.createVNode(l,{class:"text-base font-medium mb-2"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode(" Currency ",-1)])]),_:1}),e.createVNode(O,{modelValue:d.currency,"onUpdate:modelValue":t[0]||(t[0]=n=>d.currency=n)},{default:e.withCtx(()=>[e.createVNode(c,{id:"currency"},{default:e.withCtx(()=>[e.createVNode(s,{placeholder:"Currency"})]),_:1}),e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(u,{value:"USD"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode("USD ($)",-1)])]),_:1}),e.createVNode(u,{value:"EUR"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode("EUR (€)",-1)])]),_:1}),e.createVNode(u,{value:"GBP"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("GBP (£)",-1)])]),_:1}),e.createVNode(u,{value:"CAD"},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("CAD ($)",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue"])])])]),e.createElementVNode("div",null,[e.createElementVNode("div",Pe,[e.createElementVNode("div",null,[e.createVNode(l,{class:"text-base font-medium"},{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode(" Service Pricing Options ",-1)])]),_:1}),t[10]||(t[10]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-1"}," Offer multiple service variations with different prices (e.g., haircut styles, massage types). ",-1))]),e.createVNode(E,{onClick:J,variant:"outline",size:"sm"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.PlusCircle),{class:"w-4 h-4 mr-2"}),t[11]||(t[11]=e.createTextVNode(" Add Option ",-1))]),_:1})]),e.createElementVNode("div",Ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.pricingOptions,n=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:"flex gap-3 items-start p-4 border rounded-lg"},[e.createElementVNode("div",Re,[e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Service Name",-1)])]),_:1}),e.createVNode(k,{modelValue:n.name,"onUpdate:modelValue":r=>n.name=r,placeholder:"e.g., Men's Haircut, Women's Haircut"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",$e,[e.createElementVNode("div",ze,[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Price",-1)])]),_:1}),e.createVNode(k,{modelValue:n.price,"onUpdate:modelValue":r=>n.price=r,modelModifiers:{number:!0},type:"number",min:"0",step:"0.01",placeholder:"0.00",class:"no-spinner"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Le,[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode("Duration",-1)])]),_:1}),e.createVNode(O,{modelValue:n.duration,"onUpdate:modelValue":r=>n.duration=r,modelModifiers:{number:!0}},{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(s,{placeholder:"Duration"})]),_:1}),e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(u,{value:15},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode("15 min",-1)])]),_:1}),e.createVNode(u,{value:30},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode("30 min",-1)])]),_:1}),e.createVNode(u,{value:45},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("45 min",-1)])]),_:1}),e.createVNode(u,{value:60},{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode("1 hour",-1)])]),_:1}),e.createVNode(u,{value:90},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("1.5 hours",-1)])]),_:1}),e.createVNode(u,{value:120},{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("2 hours",-1)])]),_:1}),e.createVNode(u,{value:180},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("3 hours",-1)])]),_:1}),e.createVNode(u,{value:240},{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("4 hours",-1)])]),_:1}),e.createVNode(u,{value:300},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("5 hours",-1)])]),_:1}),e.createVNode(u,{value:360},{default:e.withCtx(()=>[...t[24]||(t[24]=[e.createTextVNode("6 hours",-1)])]),_:1}),e.createVNode(u,{value:480},{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("8 hours",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Me,[e.createVNode(E,{onClick:r=>Z(n.id),variant:n.isDefault?"default":"outline",size:"sm"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.isDefault?"Default":"Set Default"),1)]),_:2},1032,["onClick","variant"])])])]),d.pricingOptions.length>1?(e.openBlock(),e.createBlock(E,{key:0,onClick:r=>X(n.id),variant:"ghost",size:"icon",class:"mt-6"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Trash2),{class:"w-4 h-4 text-destructive"})]),_:1},8,["onClick"])):e.createCommentVNode("",!0)]))),128))])]),e.createElementVNode("div",null,[e.createElementVNode("div",Fe,[e.createElementVNode("div",null,[e.createVNode(l,{class:"text-base font-medium"},{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode(" Conditional Pricing Rules ",-1)])]),_:1}),t[27]||(t[27]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-1"}," Add extra fees based on time, day, or other conditions (e.g., +€10 after 5pm). ",-1))]),e.createVNode(E,{onClick:ee,variant:"outline",size:"sm"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.PlusCircle),{class:"w-4 h-4 mr-2"}),t[28]||(t[28]=e.createTextVNode(" Add Rule ",-1))]),_:1})]),e.createElementVNode("div",je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.pricingRules,n=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:"flex gap-3 items-start p-4 border rounded-lg"},[e.createElementVNode("div",qe,[e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...t[29]||(t[29]=[e.createTextVNode("Rule Name",-1)])]),_:1}),e.createVNode(k,{modelValue:n.name,"onUpdate:modelValue":r=>n.name=r,placeholder:"e.g., After Hours Fee, Weekend Surcharge"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Ge,[e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...t[30]||(t[30]=[e.createTextVNode("Condition",-1)])]),_:1}),e.createVNode(O,{"model-value":n.condition,"onUpdate:modelValue":r=>G(n,r)},{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(s,{placeholder:"Select condition"})]),_:1}),e.createVNode(w,null,{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(y,r=>e.createVNode(u,{key:r.value,value:r.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["model-value","onUpdate:modelValue"])]),e.createElementVNode("div",{class:e.normalizeClass({"sm:col-span-2":n.condition==="time_between"||n.condition==="date_range"||n.condition==="day_of_week"})},[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[n.condition==="time_between"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode("Hours")],64)):n.condition==="day_of_week"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("Days")],64)):n.condition==="date_range"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode("Date Range")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createTextVNode("Hour")],64))]),_:2},1024),n.condition==="time_between"?(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block text-muted-foreground"},{default:e.withCtx(()=>[...t[31]||(t[31]=[e.createTextVNode("Start hour",-1)])]),_:1}),e.createVNode(k,{modelValue:n.conditionValue.start,"onUpdate:modelValue":r=>n.conditionValue.start=r,type:"time"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block text-muted-foreground"},{default:e.withCtx(()=>[...t[32]||(t[32]=[e.createTextVNode("End hour",-1)])]),_:1}),e.createVNode(k,{modelValue:n.conditionValue.end,"onUpdate:modelValue":r=>n.conditionValue.end=r,type:"time"},null,8,["modelValue","onUpdate:modelValue"])])])):n.condition==="day_of_week"?(e.openBlock(),e.createElementBlock("div",Ye,[e.createElementVNode("div",We,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(g,r=>e.createElementVNode("div",{key:r.value,class:e.normalizeClass(["flex items-center gap-2 rounded-md border p-2 transition-colors",M(n,r.value)?"border-primary bg-primary/5":"border-border"])},[e.createVNode(oe,{id:`pricing-rule-${n.id}-day-${r.value}`,"model-value":M(n,r.value),"onUpdate:modelValue":q=>W(n,r.value,q)},null,8,["id","model-value","onUpdate:modelValue"]),e.createVNode(l,{for:`pricing-rule-${n.id}-day-${r.value}`,class:"text-sm font-normal cursor-pointer flex-1"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1032,["for"])],2)),64))]),e.createElementVNode("p",Ke,e.toDisplayString(Y(n.conditionValue)),1)])):n.condition==="date_range"?(e.openBlock(),e.createElementBlock("div",Qe,[e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block text-muted-foreground"},{default:e.withCtx(()=>[...t[33]||(t[33]=[e.createTextVNode("Start date",-1)])]),_:1}),e.createVNode(k,{modelValue:n.conditionValue.startDate,"onUpdate:modelValue":r=>n.conditionValue.startDate=r,type:"date"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block text-muted-foreground"},{default:e.withCtx(()=>[...t[34]||(t[34]=[e.createTextVNode("End date",-1)])]),_:1}),e.createVNode(k,{modelValue:n.conditionValue.endDate,"onUpdate:modelValue":r=>n.conditionValue.endDate=r,type:"date",min:n.conditionValue.startDate||void 0,class:e.normalizeClass({"border-amber-500 focus-visible:ring-amber-500":V(n.conditionValue)})},null,8,["modelValue","onUpdate:modelValue","min","class"])]),V(n.conditionValue)?(e.openBlock(),e.createElementBlock("p",Je,[e.createVNode(e.unref(N.AlertTriangle),{class:"size-3.5 shrink-0 mt-0.5"}),t[35]||(t[35]=e.createElementVNode("span",null,"End date must be on or after the start date.",-1))])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createBlock(k,{key:3,modelValue:n.conditionValue,"onUpdate:modelValue":r=>n.conditionValue=r,type:"time",placeholder:"e.g., 17:00"},null,8,["modelValue","onUpdate:modelValue"]))],2)]),e.createElementVNode("div",Xe,[e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...t[36]||(t[36]=[e.createTextVNode("Fee Type",-1)])]),_:1}),e.createVNode(O,{modelValue:n.modifier,"onUpdate:modelValue":r=>n.modifier=r},{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(s,{placeholder:"Select type"})]),_:1}),e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(u,{value:"fixed"},{default:e.withCtx(()=>[...t[37]||(t[37]=[e.createTextVNode("Fixed Amount",-1)])]),_:1}),e.createVNode(u,{value:"percentage"},{default:e.withCtx(()=>[...t[38]||(t[38]=[e.createTextVNode("Percentage",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",null,[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...t[39]||(t[39]=[e.createTextVNode("Amount",-1)])]),_:1}),e.createVNode(k,{modelValue:n.amount,"onUpdate:modelValue":r=>n.amount=r,modelModifiers:{number:!0},type:"number",min:"0",step:"0.01",class:"no-spinner",placeholder:n.modifier==="percentage"?"10 (%)":"10.00"},null,8,["modelValue","onUpdate:modelValue","placeholder"])])]),D.value.length>0?(e.openBlock(),e.createElementBlock("div",Ze,[e.createVNode(l,{class:"text-xs mb-1 block"},{default:e.withCtx(()=>[...t[40]||(t[40]=[e.createTextVNode("Apply To Resources",-1)])]),_:1}),e.createVNode(ae,null,{default:e.withCtx(()=>[e.createVNode(ne,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(E,{variant:"outline",class:"w-full justify-between font-normal"},{default:e.withCtx(()=>[e.createElementVNode("div",et,[e.createVNode(e.unref(N.Users),{class:"w-4 h-4 text-muted-foreground"}),!n.resourceIds||n.resourceIds.length===0?(e.openBlock(),e.createElementBlock("span",tt,"All Resources")):n.resourceIds.length===1?(e.openBlock(),e.createElementBlock("span",ot,e.toDisplayString(D.value.find(r=>r.id===n.resourceIds[0])?.name||"1 resource"),1)):(e.openBlock(),e.createElementBlock("span",nt,e.toDisplayString(n.resourceIds.length)+" resources",1))]),e.createVNode(e.unref(N.ChevronDown),{class:"w-4 h-4 opacity-50"})]),_:2},1024)]),_:2},1024),e.createVNode(le,{class:"w-64 p-2",align:"start"},{default:e.withCtx(()=>[e.createElementVNode("div",lt,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 p-2 rounded-md hover:bg-muted cursor-pointer transition-colors",{"bg-muted":!n.resourceIds||n.resourceIds.length===0}]),onClick:r=>F(n,!0)},[e.createElementVNode("div",rt,[e.createVNode(e.unref(N.Users),{class:"w-3 h-3 text-muted-foreground"})]),t[41]||(t[41]=e.createElementVNode("span",{class:"text-sm flex-1"},"All Resources",-1)),e.createElementVNode("div",{class:e.normalizeClass(["size-4 rounded-full border-2",!n.resourceIds||n.resourceIds.length===0?"border-primary bg-primary":"border-muted-foreground"])},[!n.resourceIds||n.resourceIds.length===0?(e.openBlock(),e.createElementBlock("div",dt)):e.createCommentVNode("",!0)],2)],10,at),t[43]||(t[43]=e.createElementVNode("div",{class:"border-t my-2"},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.id,class:"flex items-center gap-2 p-2 rounded-md hover:bg-muted cursor-pointer transition-colors",onClick:q=>{F(n,!1),K(n,r.id)}},[e.createElementVNode("div",{class:"size-5 rounded-full flex items-center justify-center text-white text-[10px] font-medium",style:e.normalizeStyle({backgroundColor:r.color||"#6b7280"})},e.toDisplayString(r.avatarLabel||r.name.charAt(0).toUpperCase()),5),e.createElementVNode("span",it,e.toDisplayString(r.name),1),e.createElementVNode("div",{class:e.normalizeClass(["size-4 rounded border-2 flex items-center justify-center",n.resourceIds?.includes(r.id)?"border-primary bg-primary":"border-muted-foreground"])},[n.resourceIds?.includes(r.id)?(e.openBlock(),e.createElementBlock("svg",ct,[...t[42]||(t[42]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"3",d:"M5 13l4 4L19 7"},null,-1)])])):e.createCommentVNode("",!0)],2)],8,st))),128))])]),_:2},1024)]),_:2},1024)])):e.createCommentVNode("",!0)]),e.createVNode(E,{onClick:r=>te(n.id),variant:"ghost",size:"icon",class:"mt-6"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Trash2),{class:"w-4 h-4 text-destructive"})]),_:1},8,["onClick"])]))),128)),d.pricingRules.length===0?(e.openBlock(),e.createElementBlock("div",mt,' No pricing rules configured. Click "Add Rule" to create conditional fees. ')):e.createCommentVNode("",!0)])]),e.createVNode(Se),e.createElementVNode("div",null,[e.createVNode(l,{class:"text-base font-medium"},{default:e.withCtx(()=>[...t[44]||(t[44]=[e.createTextVNode(" Payment Preferences ",-1)])]),_:1}),t[51]||(t[51]=e.createElementVNode("p",{class:"text-sm text-muted-foreground mb-6"}," Let customers pay full or in part when booking a slot, or pay later. ",-1)),e.createVNode(j,{modelValue:d.paymentType,"onUpdate:modelValue":t[1]||(t[1]=n=>d.paymentType=n),class:"flex flex-col gap-4"},{default:e.withCtx(()=>[e.createVNode(l,{for:"r1",class:"flex items-start space-x-2 cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(h,{id:"r1",value:"full"}),t[45]||(t[45]=e.createElementVNode("div",null,[e.createElementVNode("p",null,"Pay Full Amount when Booking"),e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-1"}," Your customers are required to complete the payment to confirm their booking. ")],-1))]),_:1}),e.createVNode(l,{for:"r2",class:"flex items-start space-x-2 cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(h,{id:"r2",value:"partial"}),t[46]||(t[46]=e.createElementVNode("div",null,[e.createElementVNode("p",null,"Pay Part Amount when Booking"),e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-1"}," Your customers are required to pay a deposit to confirm their booking. ")],-1))]),_:1}),e.createVNode(l,{for:"r3",class:"flex items-start space-x-2 cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(h,{id:"r3",value:"later"}),t[47]||(t[47]=e.createElementVNode("div",null,[e.createElementVNode("p",null,"Pay Later at Appointment"),e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-1"}," Your customers can book now and pay in person at the time of their appointment. ")],-1))]),_:1})]),_:1},8,["modelValue"]),d.paymentType==="partial"?(e.openBlock(),e.createElementBlock("div",ut,[e.createVNode(l,{class:"text-sm font-medium mb-4 block"},{default:e.withCtx(()=>[...t[48]||(t[48]=[e.createTextVNode(" Deposit Amount Configuration ",-1)])]),_:1}),e.createElementVNode("div",pt,[e.createVNode(j,{modelValue:d.partialPayment.type,"onUpdate:modelValue":t[2]||(t[2]=n=>d.partialPayment.type=n),class:"flex gap-4"},{default:e.withCtx(()=>[e.createVNode(l,{class:"flex items-center space-x-2 cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(h,{value:"percentage"}),t[49]||(t[49]=e.createElementVNode("span",null,"Percentage",-1))]),_:1}),e.createVNode(l,{class:"flex items-center space-x-2 cursor-pointer"},{default:e.withCtx(()=>[e.createVNode(h,{value:"fixed"}),t[50]||(t[50]=e.createElementVNode("span",null,"Fixed Amount",-1))]),_:1})]),_:1},8,["modelValue"]),e.createElementVNode("div",Vt,[e.createElementVNode("div",ft,[e.createVNode(k,{modelValue:d.partialPayment.amount,"onUpdate:modelValue":t[3]||(t[3]=n=>d.partialPayment.amount=n),modelModifiers:{number:!0},type:"number",min:"0",max:d.partialPayment.type==="percentage"?100:void 0,step:"0.01",placeholder:d.partialPayment.type==="percentage"?"50":"10.00",class:"no-spinner"},null,8,["modelValue","max","placeholder"])]),e.createElementVNode("span",xt,e.toDisplayString(d.partialPayment.type==="percentage"?"%":d.currency),1)]),e.createElementVNode("p",Nt,[d.partialPayment.type==="percentage"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" Customers will pay "+e.toDisplayString(d.partialPayment.amount)+"% of the total price upfront. ",1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" Customers will pay "+e.toDisplayString(d.currency)+" "+e.toDisplayString(d.partialPayment.amount)+" upfront. ",1)],64))])])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",gt,[R.value?(e.openBlock(),e.createElementBlock("p",vt,[e.createVNode(e.unref(N.AlertTriangle),{class:"size-3.5 shrink-0 mt-0.5"}),t[52]||(t[52]=e.createElementVNode("span",null,"Fix invalid date ranges before saving.",-1))])):e.createCommentVNode("",!0),e.createVNode(E,{onClick:Q,disabled:S.value||R.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.value?"Saving...":"Save Changes"),1)]),_:1},8,["disabled"])])]))])):(e.openBlock(),e.createElementBlock("div",yt,[...t[54]||(t[54]=[e.createElementVNode("h1",{class:"text-lg font-medium mb-2"},"Access Denied",-1),e.createElementVNode("p",{class:"text-sm text-muted-foreground"},"You do not have permission to view or edit payment settings.",-1)])]))]),_:1})}}});exports.default=Ct;