@oneclick.dev/cms-core-modules 0.0.105 → 0.0.107

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 (574) hide show
  1. package/dist/Acquisition-DypEyPSO.js +1 -0
  2. package/dist/Acquisition-TCNX-th6.mjs +308 -0
  3. package/dist/AgendaOpeningHoursCard-BIhm0vpV.js +1 -0
  4. package/dist/AgendaOpeningHoursCard-BKUdJxRI.mjs +133 -0
  5. package/dist/AppointmentDetailsCard-C5rQ5jsW.js +1 -0
  6. package/dist/AppointmentDetailsCard-NRHeNP2L.mjs +111 -0
  7. package/dist/AppointmentEditor-BcF8CiD-.mjs +150 -0
  8. package/dist/AppointmentEditor-BlhFtoCm.js +1 -0
  9. package/dist/AppointmentListTable-B-ReBVtV.js +1 -0
  10. package/dist/AppointmentListTable-DHmy-iid.mjs +129 -0
  11. package/dist/Audience-Cq1Gu-Vo.mjs +394 -0
  12. package/dist/Audience-h5PfXPz4.js +1 -0
  13. package/dist/Components-BehelN4r.js +1 -0
  14. package/dist/Components-CR6zukUU.mjs +468 -0
  15. package/dist/Content-C5Iye3t0.mjs +257 -0
  16. package/dist/Content-eOfBx52Y.js +1 -0
  17. package/dist/ContentEditor-BgL4qEeg.mjs +26835 -0
  18. package/dist/ContentEditor-Tlu3w0Hu.js +462 -0
  19. package/dist/CountryBreakdownCard-CWVyB8be.mjs +151 -0
  20. package/dist/CountryBreakdownCard-Db-pMiNe.js +1 -0
  21. package/dist/Create-B1it8S4m.js +1 -0
  22. package/dist/Create-DbYi0FAI.mjs +907 -0
  23. package/dist/DateFormatter-DLrDYkby.mjs +630 -0
  24. package/dist/DateFormatter-Dni0Oq8r.js +1 -0
  25. package/dist/Detail-D-eahJGO.mjs +21 -0
  26. package/dist/Detail-D0kdPPIm.mjs +2757 -0
  27. package/dist/Detail-DAafePYi.mjs +485 -0
  28. package/dist/Detail-DYpv4fYg.js +1 -0
  29. package/dist/Detail-Dc_ui4LM.js +1 -0
  30. package/dist/Detail-DccUekl_.js +1 -0
  31. package/dist/Detail-Dhz0V0Vf.js +1 -0
  32. package/dist/Detail-DjnGY0F8.mjs +282 -0
  33. package/dist/Detail-DplAitHg.mjs +447 -0
  34. package/dist/Detail-SugyeSxb.js +1 -0
  35. package/dist/DeviceBreakdownCard-CzxZT6To.js +1 -0
  36. package/dist/DeviceBreakdownCard-eEwPjzKl.mjs +115 -0
  37. package/dist/EditLayout-Bnz9q_jd.js +1 -0
  38. package/dist/EditLayout-J_DGXb8v.mjs +99 -0
  39. package/dist/Entries-CgpWg6fE.js +1 -0
  40. package/dist/Entries-CkGTXcAq.mjs +575 -0
  41. package/dist/Find-Bz0TNJzk.mjs +164 -0
  42. package/dist/Find-D-ItTXaZ.js +1 -0
  43. package/dist/GlobalStyling-CSQPF7o_.mjs +1162 -0
  44. package/dist/GlobalStyling-DabldMZh.js +15 -0
  45. package/dist/NewReservationDialog-BhIiY2B9.js +1 -0
  46. package/dist/NewReservationDialog-CN49aGcM.mjs +1002 -0
  47. package/dist/OrderDetailDialog-BJ01DZFe.js +1 -0
  48. package/dist/OrderDetailDialog-CoVQ_rzs.mjs +215 -0
  49. package/dist/Overview-9FMgn5hT.mjs +492 -0
  50. package/dist/Overview-BOOwMQ-c.mjs +636 -0
  51. package/dist/Overview-Biz3h60w.js +1 -0
  52. package/dist/Overview-C2K2ofdS.js +1 -0
  53. package/dist/Overview-CFHOXP9N.mjs +123 -0
  54. package/dist/Overview-CTJe7J5_.js +1 -0
  55. package/dist/Overview-Cvj2i9eW.js +1 -0
  56. package/dist/Overview-D2I1F8Dm.mjs +21 -0
  57. package/dist/Overview-DFOc9emt.mjs +345 -0
  58. package/dist/Overview-Dmhfb94Y.js +1 -0
  59. package/dist/Overview-PPzv7weG.mjs +450 -0
  60. package/dist/Overview-qFKcXHVF.js +1 -0
  61. package/dist/Overview-xkmYYTae.mjs +133 -0
  62. package/dist/Overview-yPsLvR2c.js +1 -0
  63. package/dist/PeakHoursCard-CtgEP-ez.mjs +157 -0
  64. package/dist/PeakHoursCard-DPeoMyhu.js +1 -0
  65. package/dist/ProductDetailsCard-B0WhmzO-.mjs +98 -0
  66. package/dist/ProductDetailsCard-C1ROuH6l.js +1 -0
  67. package/dist/RealtimeCard-DQno-Okz.js +1 -0
  68. package/dist/RealtimeCard-dR-g1iDo.mjs +92 -0
  69. package/dist/ReservationDetailDialog-Cdo6h0RD.mjs +2163 -0
  70. package/dist/ReservationDetailDialog-DZTFD2xI.js +349 -0
  71. package/dist/SearchTermsCard-BXJSXz_k.js +1 -0
  72. package/dist/SearchTermsCard-DsaxLKwP.mjs +146 -0
  73. package/dist/SendPush-Bssi-OZD.mjs +150 -0
  74. package/dist/SendPush-BuaYboRH.js +1 -0
  75. package/dist/SeoHealth-CP-kL0us.js +1 -0
  76. package/dist/SeoHealth-Cxp_Gb3Y.mjs +459 -0
  77. package/dist/TableView-7iwBkQ_k.mjs +4757 -0
  78. package/dist/TableView-BB_oIYYZ.js +4 -0
  79. package/dist/TemplateList-CNcM_Kgq.mjs +56 -0
  80. package/dist/TemplateList-VuPcBUJO.js +1 -0
  81. package/dist/TopPagesCard-CvDECn3_.mjs +117 -0
  82. package/dist/TopPagesCard-DNdATXJE.js +1 -0
  83. package/dist/TrafficSourcesCard-BLpBr7u0.mjs +151 -0
  84. package/dist/TrafficSourcesCard-_3gRUCw3.js +1 -0
  85. package/dist/View-DSnUHI7h.mjs +30 -0
  86. package/dist/View-Dbcfpdqh.js +1 -0
  87. package/dist/VisitorStatsCard-CFEnXSjF.mjs +185 -0
  88. package/dist/VisitorStatsCard-C_jhQxDW.js +1 -0
  89. package/dist/_plugin-vue_export-helper-5u7tqpWC.js +1 -0
  90. package/dist/_plugin-vue_export-helper-BJQSo0im.mjs +8 -0
  91. package/dist/agenda-CzMRcQTA.mjs +989 -0
  92. package/dist/agenda-D4zWRYSQ.js +1 -0
  93. package/dist/appointments-9syR5TZE.js +1 -0
  94. package/dist/appointments-BBmOJMhM.mjs +23 -0
  95. package/dist/array-BH1uH7XT.js +1 -0
  96. package/dist/array-DnDL9cFz.mjs +98 -0
  97. package/dist/availability-CAXB7Yd6.js +1 -0
  98. package/dist/availability-Dp7eF-ZK.mjs +215 -0
  99. package/dist/booking-data-Bysf6e5x.mjs +724 -0
  100. package/dist/booking-data-C6SGjC2X.js +1 -0
  101. package/dist/chunk-DQi1bQcV.js +1 -0
  102. package/dist/cms-core-modules.css +2 -1
  103. package/dist/contentManager-D7JxXCwE.js +1 -0
  104. package/dist/contentManager-tfy0x1LD.mjs +22 -0
  105. package/dist/context-AQKfnJ4t.mjs +3809 -0
  106. package/dist/context-ubyMq9Xe.js +54 -0
  107. package/dist/core-Dhgr4ctC.mjs +202 -0
  108. package/dist/core-_HKfBlaZ.js +1 -0
  109. package/dist/countries-MXLT3mVe.mjs +4 -0
  110. package/dist/countries-OCd5qPxG.js +1 -0
  111. package/dist/create-BfNc2C7N.js +1 -0
  112. package/dist/create-C7JlIlIh.mjs +95 -0
  113. package/dist/custom-BwN9-6Mb.js +1 -0
  114. package/dist/custom-INNwaWla.mjs +13 -0
  115. package/dist/dist-BCVg7FKM.js +1 -0
  116. package/dist/dist-DIhK9VWh.mjs +3045 -0
  117. package/dist/edit-BiI2VG60.js +35 -0
  118. package/dist/edit-DD3iFBEh.mjs +1097 -0
  119. package/dist/exceptions-DICMaDcH.mjs +462 -0
  120. package/dist/exceptions-DpWqMNuG.js +1 -0
  121. package/dist/google-Bcc4XZnV.mjs +4 -0
  122. package/dist/google-DTSRmJ51.js +1 -0
  123. package/dist/googleAnalytics-BSaqRR_L.js +1 -0
  124. package/dist/googleAnalytics-Cg-iWblZ.mjs +47 -0
  125. package/dist/index.cjs.js +1 -1
  126. package/dist/index.mjs +1095 -806
  127. package/dist/interpolation-B8OzkMyi.mjs +131 -0
  128. package/dist/interpolation-DpAqtGOW.js +1 -0
  129. package/dist/lib-4wSi00Vr.js +1 -0
  130. package/dist/lib-BZgXUui5.mjs +198 -0
  131. package/dist/line-DJdnFNI7.js +75 -0
  132. package/dist/line-tYLnEDGV.mjs +1500 -0
  133. package/dist/mailTemplates-BNk8fhVS.mjs +23 -0
  134. package/dist/mailTemplates-DswHzyQe.js +1 -0
  135. package/dist/orders-CIc0JlKX.mjs +512 -0
  136. package/dist/orders-DwPSi_pD.js +1 -0
  137. package/dist/payment-BsNWFaDm.js +1 -0
  138. package/dist/payment-Ced5_dpa.mjs +718 -0
  139. package/dist/productCollections-Cuvw_8zC.js +1 -0
  140. package/dist/productCollections-D0AxRlzr.mjs +23 -0
  141. package/dist/products-DUD-ZMkR.mjs +22 -0
  142. package/dist/products-DvX9B-Ul.js +1 -0
  143. package/dist/promoCodes-BCWqN6w4.mjs +23 -0
  144. package/dist/promoCodes-CEZ4LYot.js +1 -0
  145. package/dist/push-notifications-BGp4XWo9.js +1 -0
  146. package/dist/push-notifications-C7W7KuzR.mjs +23 -0
  147. package/dist/regular-BCFrS6lK.mjs +908 -0
  148. package/dist/regular-DBqPgT8C.js +1 -0
  149. package/dist/resources-DwsMmWgm.mjs +669 -0
  150. package/dist/resources-Dz81GkHe.js +1 -0
  151. package/dist/server-handlers.cjs.js +1 -1
  152. package/dist/server-handlers.mjs +1049 -996
  153. package/dist/shippingOptions-C3NEJff1.mjs +23 -0
  154. package/dist/shippingOptions-Cy040ZW1.js +1 -0
  155. package/dist/single-container-BJmmqq65.mjs +468 -0
  156. package/dist/single-container-Xoo0Xzxv.js +58 -0
  157. package/dist/src/appointments/composables/useHorizontalScroll.d.ts +20 -0
  158. package/dist/src/appointments/index.d.ts +9 -12
  159. package/dist/src/appointments/metadata.d.ts +1 -1
  160. package/dist/src/appointments/routes.d.ts +3 -6
  161. package/dist/src/contentManager/components/content-editor/tiptap-extensions/LockBlocks.d.ts +15 -0
  162. package/dist/src/contentManager/components/content-editor/tiptap-extensions/TrailingNodeInContainers.d.ts +4 -1
  163. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +12 -132
  164. package/dist/src/contentManager/index.d.ts +5 -14
  165. package/dist/src/contentManager/metadata.d.ts +1 -1
  166. package/dist/src/contentManager/routes.d.ts +3 -12
  167. package/dist/src/custom/index.d.ts +2 -2
  168. package/dist/src/custom/routes.d.ts +1 -1
  169. package/dist/src/googleAnalytics/index.d.ts +10 -10
  170. package/dist/src/googleAnalytics/routes.d.ts +1 -1
  171. package/dist/src/lib/interpolation.d.ts +6 -0
  172. package/dist/src/mailTemplates/index.d.ts +3 -3
  173. package/dist/src/mailTemplates/metadata.d.ts +1 -1
  174. package/dist/src/mailTemplates/routes.d.ts +1 -1
  175. package/dist/src/productCollections/index.d.ts +3 -3
  176. package/dist/src/productCollections/metadata.d.ts +1 -1
  177. package/dist/src/productCollections/routes.d.ts +1 -1
  178. package/dist/src/products/index.d.ts +4 -4
  179. package/dist/src/products/metadata.d.ts +1 -1
  180. package/dist/src/products/routes.d.ts +1 -1
  181. package/dist/src/promoCodes/index.d.ts +3 -3
  182. package/dist/src/promoCodes/metadata.d.ts +1 -1
  183. package/dist/src/promoCodes/routes.d.ts +1 -1
  184. package/dist/src/push-notifications/index.d.ts +3 -3
  185. package/dist/src/push-notifications/metadata.d.ts +1 -1
  186. package/dist/src/push-notifications/routes.d.ts +1 -1
  187. package/dist/src/shippingOptions/index.d.ts +3 -3
  188. package/dist/src/shippingOptions/metadata.d.ts +1 -1
  189. package/dist/src/shippingOptions/routes.d.ts +1 -1
  190. package/dist/src/table/flow-builder-extensions/row-item.d.ts +3 -17
  191. package/dist/src/table/index.d.ts +2 -2
  192. package/dist/src/table/routes.d.ts +1 -1
  193. package/dist/src/types/index.d.ts +6 -0
  194. package/dist/src/vue-shim.d.ts +7 -0
  195. package/dist/table-DWw0fs3S.js +1 -0
  196. package/dist/table-LXt5DQOL.mjs +23 -0
  197. package/dist/utils-CVIHqQsU.js +3 -0
  198. package/dist/utils-h3owcMtS.mjs +37 -0
  199. package/dist/vee-validate-zod-BmXMJo8W.js +1 -0
  200. package/dist/vee-validate-zod-D9dZzbWZ.mjs +4985 -0
  201. package/dist/xy-container-CuQSwrtB.mjs +3180 -0
  202. package/dist/xy-container-_6YpscZh.js +158 -0
  203. package/package.json +55 -55
  204. package/dist/Acquisition-Br1Pfny3.js +0 -1
  205. package/dist/Acquisition-CPlZzUBo.mjs +0 -400
  206. package/dist/AgendaOpeningHoursCard-B7ROIPWw.js +0 -1
  207. package/dist/AgendaOpeningHoursCard-Cp4wxUeK.mjs +0 -172
  208. package/dist/AppointmentDetailsCard-33WpATpV.mjs +0 -161
  209. package/dist/AppointmentDetailsCard-DpLM5IrB.js +0 -1
  210. package/dist/AppointmentEditor-BeOtYV6u.mjs +0 -196
  211. package/dist/AppointmentEditor-CaTfbkIf.js +0 -1
  212. package/dist/AppointmentListTable-DZJNmTMb.mjs +0 -177
  213. package/dist/AppointmentListTable-Dieu9US_.js +0 -1
  214. package/dist/Audience-BfkrmBuQ.js +0 -1
  215. package/dist/Audience-DTblSAiL.mjs +0 -489
  216. package/dist/Components-C83O-xlF.mjs +0 -623
  217. package/dist/Components-DXbx0RLV.js +0 -1
  218. package/dist/Content-BHr_rPVY.js +0 -1
  219. package/dist/Content-CYOZKvWK.mjs +0 -358
  220. package/dist/ContentEditor-B1nfKG_5.mjs +0 -30676
  221. package/dist/ContentEditor-DdFU8piH.js +0 -462
  222. package/dist/CountryBreakdownCard-D7BK3nRD.js +0 -1
  223. package/dist/CountryBreakdownCard-DVxNz2DJ.mjs +0 -196
  224. package/dist/Create-BRBh0xjM.mjs +0 -1247
  225. package/dist/Create-qPeQxkdl.js +0 -1
  226. package/dist/DateFormatter-Bw-87W31.mjs +0 -734
  227. package/dist/DateFormatter-CYAD4GBN.js +0 -1
  228. package/dist/Detail-Byk781b4.mjs +0 -26
  229. package/dist/Detail-C1Blq61w.mjs +0 -585
  230. package/dist/Detail-C857g62L.js +0 -1
  231. package/dist/Detail-C8wQiDcv.js +0 -1
  232. package/dist/Detail-CPqug27l.js +0 -1
  233. package/dist/Detail-CjuhjPby.js +0 -1
  234. package/dist/Detail-CtItxMX4.mjs +0 -649
  235. package/dist/Detail-CujdFApD.mjs +0 -379
  236. package/dist/Detail-Dnpnmy4-.mjs +0 -3477
  237. package/dist/Detail-mvSGbnFU.js +0 -1
  238. package/dist/DeviceBreakdownCard-DRhQ9ufG.js +0 -1
  239. package/dist/DeviceBreakdownCard-W1frLe0L.mjs +0 -159
  240. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +0 -76
  241. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +0 -1
  242. package/dist/Entries-BaS6H6ak.js +0 -1
  243. package/dist/Entries-C8UJkrVC.mjs +0 -728
  244. package/dist/Find-B24ZEhYM.mjs +0 -229
  245. package/dist/Find-D4Qa45qC.js +0 -1
  246. package/dist/GlobalStyling-C9VthHWK.mjs +0 -1588
  247. package/dist/GlobalStyling-CnSlXkZc.js +0 -25
  248. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-9Q7TMm4u.mjs +0 -401
  249. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-DiNzGl-q.js +0 -1
  250. package/dist/Overview-3HWhsqaz.mjs +0 -860
  251. package/dist/Overview-BCpJNiEB.mjs +0 -190
  252. package/dist/Overview-BDlBCUI_.js +0 -1
  253. package/dist/Overview-BYMrsZjM.mjs +0 -332
  254. package/dist/Overview-BbvfH1u-.js +0 -1
  255. package/dist/Overview-BrCwozey.js +0 -1
  256. package/dist/Overview-CIa1E-HH.mjs +0 -178
  257. package/dist/Overview-CpHhuiaV.js +0 -1
  258. package/dist/Overview-DAxCu9XC.js +0 -1
  259. package/dist/Overview-D_T3K6aq.mjs +0 -632
  260. package/dist/Overview-Su8ZUbMs.mjs +0 -26
  261. package/dist/Overview-T-lsy3UZ.js +0 -1
  262. package/dist/Overview-kaMhsIUq.mjs +0 -567
  263. package/dist/Overview-t0pG5xjA.js +0 -1
  264. package/dist/PeakHoursCard-9-EZFZLR.mjs +0 -182
  265. package/dist/PeakHoursCard-BR5zmta4.js +0 -1
  266. package/dist/ProductDetailsCard-6nHikw4V.mjs +0 -121
  267. package/dist/ProductDetailsCard-Bn7qrgmc.js +0 -1
  268. package/dist/RealtimeCard--APfRNc8.js +0 -1
  269. package/dist/RealtimeCard-fvQlJcM7.mjs +0 -126
  270. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-Cz_22Oce.mjs +0 -2927
  271. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-DPPNc-Z5.js +0 -349
  272. package/dist/SearchTermsCard-BsB-63aH.js +0 -1
  273. package/dist/SearchTermsCard-BzVrHKqQ.mjs +0 -201
  274. package/dist/SendPush-COns44j7.js +0 -1
  275. package/dist/SendPush-CPIOjVX4.mjs +0 -184
  276. package/dist/SeoHealth-09sEOu3G.js +0 -1
  277. package/dist/SeoHealth-BzcWd_w7.mjs +0 -615
  278. package/dist/TableView-CPAw3h8g.js +0 -4
  279. package/dist/TableView-DXmEF6pY.mjs +0 -6143
  280. package/dist/TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js +0 -1
  281. package/dist/TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs +0 -40
  282. package/dist/TopPagesCard-BDeA997A.js +0 -1
  283. package/dist/TopPagesCard-CTozhOr_.mjs +0 -159
  284. package/dist/TrafficSourcesCard-BxtCKsqx.mjs +0 -197
  285. package/dist/TrafficSourcesCard-C3ziDTUL.js +0 -1
  286. package/dist/View-CsudjxCE.mjs +0 -30
  287. package/dist/View-Dw_wA6kK.js +0 -1
  288. package/dist/VisitorStatsCard-BmByE_Hi.js +0 -1
  289. package/dist/VisitorStatsCard-CXizEbVK.mjs +0 -174
  290. package/dist/_plugin-vue_export-helper-BHFhmbuH.js +0 -1
  291. package/dist/_plugin-vue_export-helper-CHgC5LLL.mjs +0 -9
  292. package/dist/agenda-BNG05SAq.js +0 -1
  293. package/dist/agenda-D1RxMxBS.mjs +0 -1152
  294. package/dist/array-CbATeQbk.js +0 -1
  295. package/dist/array-CvmZXzxF.mjs +0 -108
  296. package/dist/availability-CMrRa5y2.mjs +0 -269
  297. package/dist/availability-Cf2YfMwM.js +0 -1
  298. package/dist/booking-data-DgJd0BcM.mjs +0 -889
  299. package/dist/booking-data-Di5GmH_8.js +0 -1
  300. package/dist/countries-BTPvmrsb.mjs +0 -4
  301. package/dist/countries-CgZ081No.js +0 -1
  302. package/dist/exceptions-CI0B4xVj.js +0 -1
  303. package/dist/exceptions-vo8SA5SE.mjs +0 -646
  304. package/dist/google-CvtuJwgk.mjs +0 -4
  305. package/dist/google-D4N3gb01.js +0 -1
  306. package/dist/index-4tjmIans.js +0 -1
  307. package/dist/index-9HVlmvK3.js +0 -1
  308. package/dist/index-BWDwEd8D.mjs +0 -24
  309. package/dist/index-BfBBm9uY.mjs +0 -24
  310. package/dist/index-Bkq58CeQ.mjs +0 -22
  311. package/dist/index-BtujSJeg.js +0 -35
  312. package/dist/index-BuzLn4Km.js +0 -54
  313. package/dist/index-C4YUVWzJ.js +0 -75
  314. package/dist/index-CJQQBRLY.js +0 -1
  315. package/dist/index-CMk3uhUt.mjs +0 -3837
  316. package/dist/index-CQkOH2_3.mjs +0 -24
  317. package/dist/index-CSxYBeVA.js +0 -1
  318. package/dist/index-CU-tbS5W.mjs +0 -24
  319. package/dist/index-CZn2nDLv.mjs +0 -34
  320. package/dist/index-CkiNvRzs.js +0 -1
  321. package/dist/index-Co4ON2Di.js +0 -1
  322. package/dist/index-Cpnn_Pxd.mjs +0 -24
  323. package/dist/index-CrgzoTyR.mjs +0 -110
  324. package/dist/index-CsVeM3PA.mjs +0 -24
  325. package/dist/index-CwqrAU-H.js +0 -1
  326. package/dist/index-CxETuRsG.js +0 -1
  327. package/dist/index-Cz-baGax.js +0 -1
  328. package/dist/index-D3L8WAJI.js +0 -58
  329. package/dist/index-DFQGVHTs.js +0 -1
  330. package/dist/index-DPd3waTN.js +0 -1
  331. package/dist/index-DQYBP8Js.js +0 -158
  332. package/dist/index-DRqJOqUR.mjs +0 -3484
  333. package/dist/index-DjDCYQ_6.mjs +0 -441
  334. package/dist/index-DjWuIBxh.js +0 -1
  335. package/dist/index-Dnn2SCSl.js +0 -1
  336. package/dist/index-Dpl9sU6a.mjs +0 -12
  337. package/dist/index-DrXxXB2F.mjs +0 -138
  338. package/dist/index-MYWjg0zi.mjs +0 -176
  339. package/dist/index-R2oUDsjx.js +0 -1
  340. package/dist/index-RLz1QPrf.mjs +0 -203
  341. package/dist/index-UtjLbLw-.js +0 -1
  342. package/dist/index-_2lRVt_k.mjs +0 -2942
  343. package/dist/index-cOnxXTbF.mjs +0 -24
  344. package/dist/index-dOdMm1pV.mjs +0 -1105
  345. package/dist/index-hlylYYgy.mjs +0 -24
  346. package/dist/index-ijdf0d9-.js +0 -1
  347. package/dist/index-p5Uqu8c2.mjs +0 -1438
  348. package/dist/interpolation-DEDSLETn.mjs +0 -128
  349. package/dist/interpolation-DERg6Lwt.js +0 -1
  350. package/dist/orders-CzzcFQha.mjs +0 -559
  351. package/dist/orders-ETtbA4aQ.js +0 -1
  352. package/dist/payment-C3ohkehF.mjs +0 -1080
  353. package/dist/payment-Dfr-Ro-a.js +0 -1
  354. package/dist/regular-1LXNPviB.js +0 -1
  355. package/dist/regular-_05oq5Tx.mjs +0 -1101
  356. package/dist/resources-CxeFd57z.js +0 -1
  357. package/dist/resources-WI_4SO6T.mjs +0 -811
  358. package/dist/src/appointments/chat-components/AgendaOpeningHoursCard.vue.d.ts +0 -15
  359. package/dist/src/appointments/chat-components/AppointmentDetailsCard.vue.d.ts +0 -14
  360. package/dist/src/appointments/chat-components/AppointmentEditor.vue.d.ts +0 -14
  361. package/dist/src/appointments/chat-components/AppointmentListTable.vue.d.ts +0 -14
  362. package/dist/src/appointments/components/create/StepNavigation.vue.d.ts +0 -32
  363. package/dist/src/appointments/components/create/regular/Step1.vue.d.ts +0 -2
  364. package/dist/src/appointments/components/create/regular/Step2.vue.d.ts +0 -2
  365. package/dist/src/appointments/components/create/regular/Step3.vue.d.ts +0 -2
  366. package/dist/src/appointments/components/create/regular/Step4.vue.d.ts +0 -2
  367. package/dist/src/appointments/components/edit/CustomerInformationFieldEditorDialog.vue.d.ts +0 -24
  368. package/dist/src/appointments/components/edit/EditLayout.vue.d.ts +0 -17
  369. package/dist/src/appointments/components/edit/Event24hSidebar.vue.d.ts +0 -2
  370. package/dist/src/appointments/components/edit/EventDialog/ApproveReservationDialog.vue.d.ts +0 -8
  371. package/dist/src/appointments/components/edit/EventDialog/BookingsList.vue.d.ts +0 -127
  372. package/dist/src/appointments/components/edit/EventDialog/CancelReservationDialog.vue.d.ts +0 -8
  373. package/dist/src/appointments/components/edit/EventDialog/EventDialog.vue.d.ts +0 -11
  374. package/dist/src/appointments/components/edit/EventDialog/RejectReservationDialog.vue.d.ts +0 -8
  375. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +0 -82
  376. package/dist/src/appointments/components/edit/EventDialog/TimelineChart.vue.d.ts +0 -24
  377. package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +0 -4
  378. package/dist/src/appointments/components/edit/EventTimeIndicator.vue.d.ts +0 -12
  379. package/dist/src/appointments/components/edit/EventTimeline.vue.d.ts +0 -48
  380. package/dist/src/appointments/components/edit/EventView.vue.d.ts +0 -9
  381. package/dist/src/appointments/components/edit/ExceptionDialog.vue.d.ts +0 -29
  382. package/dist/src/appointments/components/edit/MetadataSchemaEditorDialog.vue.d.ts +0 -12
  383. package/dist/src/appointments/components/edit/NewReservationDialog/NewReservationDialog.vue.d.ts +0 -2
  384. package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +0 -21
  385. package/dist/src/appointments/components/edit/PaymentAddons/Addon.vue.d.ts +0 -22
  386. package/dist/src/appointments/components/edit/PaymentAddons/AddonList.vue.d.ts +0 -5
  387. package/dist/src/appointments/components/edit/PaymentAddons/index.vue.d.ts +0 -15
  388. package/dist/src/appointments/components/edit/ResourceEditorDialog.vue.d.ts +0 -13
  389. package/dist/src/appointments/components/edit/dashboard/BookingsList.vue.d.ts +0 -110
  390. package/dist/src/appointments/components/edit/dashboard/Timeline.vue.d.ts +0 -34
  391. package/dist/src/appointments/components/edit/dashboard/timeline/ResourceSelector.vue.d.ts +0 -50
  392. package/dist/src/appointments/index.vue.d.ts +0 -22
  393. package/dist/src/appointments/pages/Overview.vue.d.ts +0 -4
  394. package/dist/src/appointments/pages/create/index.vue.d.ts +0 -2
  395. package/dist/src/appointments/pages/create/regular.vue.d.ts +0 -6
  396. package/dist/src/appointments/pages/edit/agenda.vue.d.ts +0 -4
  397. package/dist/src/appointments/pages/edit/availability.vue.d.ts +0 -2
  398. package/dist/src/appointments/pages/edit/booking-data.vue.d.ts +0 -65
  399. package/dist/src/appointments/pages/edit/index.vue.d.ts +0 -2
  400. package/dist/src/appointments/pages/edit/orders.vue.d.ts +0 -98
  401. package/dist/src/appointments/pages/edit/payment.vue.d.ts +0 -2
  402. package/dist/src/appointments/pages/edit/resources.vue.d.ts +0 -28
  403. package/dist/src/contentManager/components/components/ComponentDialog.vue.d.ts +0 -12
  404. package/dist/src/contentManager/components/components/ComponentGridItem.vue.d.ts +0 -16
  405. package/dist/src/contentManager/components/content-editor/ApiDocs.vue.d.ts +0 -2
  406. package/dist/src/contentManager/components/content-editor/ContentLayout.vue.d.ts +0 -49
  407. package/dist/src/contentManager/components/content-editor/ContentSettings.vue.d.ts +0 -24
  408. package/dist/src/contentManager/components/content-editor/ContentStructuredContentSections.vue.d.ts +0 -4
  409. package/dist/src/contentManager/components/content-editor/Header.vue.d.ts +0 -64
  410. package/dist/src/contentManager/components/content-editor/LivePreviewWrapper.vue.d.ts +0 -53
  411. package/dist/src/contentManager/components/content-editor/Locales.vue.d.ts +0 -44
  412. package/dist/src/contentManager/components/content-editor/NewSectionDialog.vue.d.ts +0 -21
  413. package/dist/src/contentManager/components/content-editor/PageSettings.vue.d.ts +0 -2
  414. package/dist/src/contentManager/components/content-editor/SEO.vue.d.ts +0 -14
  415. package/dist/src/contentManager/components/content-editor/SidebarSectionWrapper.vue.d.ts +0 -39
  416. package/dist/src/contentManager/components/content-editor/Status.vue.d.ts +0 -2
  417. package/dist/src/contentManager/components/content-editor/Versions.vue.d.ts +0 -63
  418. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Button.vue.d.ts +0 -94
  419. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Card.vue.d.ts +0 -92
  420. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Column.vue.d.ts +0 -92
  421. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Container.vue.d.ts +0 -92
  422. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Divider.vue.d.ts +0 -92
  423. package/dist/src/contentManager/components/content-editor/tiptap-extensions/EmptySpace.vue.d.ts +0 -94
  424. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Heading.vue.d.ts +0 -92
  425. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Image.vue.d.ts +0 -92
  426. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Map.vue.d.ts +0 -92
  427. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Paragraph.vue.d.ts +0 -92
  428. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Row.vue.d.ts +0 -115
  429. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.vue.d.ts +0 -115
  430. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Video.vue.d.ts +0 -92
  431. package/dist/src/contentManager/components/content-editor/tiptap-extensions/extension-details/DetailsNodeView.vue.d.ts +0 -92
  432. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/NodeLabel.vue.d.ts +0 -108
  433. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/ResizeHandlers.vue.d.ts +0 -20
  434. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/TopMarginDragger.vue.d.ts +0 -104
  435. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuClassBuilder.vue.d.ts +0 -19
  436. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuLinkBuilder.vue.d.ts +0 -19
  437. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuToggleButton.vue.d.ts +0 -29
  438. package/dist/src/contentManager/components/content-editor/tiptap-menus/DefaultBubbleMenu.vue.d.ts +0 -13
  439. package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +0 -19
  440. package/dist/src/contentManager/components/content-editor/tiptap-menus/EmojiMenu.vue.d.ts +0 -8
  441. package/dist/src/contentManager/components/content-editor/tiptap-menus/NewNodeView.vue.d.ts +0 -47
  442. package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenu.vue.d.ts +0 -6
  443. package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenuButton.vue.d.ts +0 -17
  444. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ButtonMenu.vue.d.ts +0 -13
  445. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/CardMenu.vue.d.ts +0 -13
  446. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ColumnMenu.vue.d.ts +0 -13
  447. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/DividerMenu.vue.d.ts +0 -13
  448. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/EmptySpaceMenu.vue.d.ts +0 -13
  449. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/HeadingMenu.vue.d.ts +0 -13
  450. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ImageMenu.vue.d.ts +0 -13
  451. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/MapMenu.vue.d.ts +0 -13
  452. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/RowMenu.vue.d.ts +0 -13
  453. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/StackMenu.vue.d.ts +0 -13
  454. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TextMenu.vue.d.ts +0 -13
  455. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/VideoMenu.vue.d.ts +0 -13
  456. package/dist/src/contentManager/components/overview/CollectionDialog.vue.d.ts +0 -30
  457. package/dist/src/contentManager/components/overview/CollectionsGridView.vue.d.ts +0 -18
  458. package/dist/src/contentManager/components/overview/ContentEntryContextMenu.vue.d.ts +0 -27
  459. package/dist/src/contentManager/components/overview/FilterPopover.vue.d.ts +0 -2
  460. package/dist/src/contentManager/components/overview/ListView.vue.d.ts +0 -12
  461. package/dist/src/contentManager/components/styling/ButtonStyleDialog.vue.d.ts +0 -24
  462. package/dist/src/contentManager/components/styling/CardStyleDialog.vue.d.ts +0 -24
  463. package/dist/src/contentManager/components/styling/SectionStyleDialog.vue.d.ts +0 -24
  464. package/dist/src/contentManager/index.vue.d.ts +0 -22
  465. package/dist/src/contentManager/pages/Components.vue.d.ts +0 -27
  466. package/dist/src/contentManager/pages/ContentEditor.vue.d.ts +0 -14
  467. package/dist/src/contentManager/pages/Entries.vue.d.ts +0 -16
  468. package/dist/src/contentManager/pages/GlobalStyling.vue.d.ts +0 -117
  469. package/dist/src/contentManager/pages/Overview.vue.d.ts +0 -57
  470. package/dist/src/custom/index.vue.d.ts +0 -2
  471. package/dist/src/custom/pages/View.vue.d.ts +0 -2
  472. package/dist/src/googleAnalytics/chat-components/CountryBreakdownCard.vue.d.ts +0 -14
  473. package/dist/src/googleAnalytics/chat-components/DeviceBreakdownCard.vue.d.ts +0 -14
  474. package/dist/src/googleAnalytics/chat-components/PeakHoursCard.vue.d.ts +0 -14
  475. package/dist/src/googleAnalytics/chat-components/RealtimeCard.vue.d.ts +0 -14
  476. package/dist/src/googleAnalytics/chat-components/SearchTermsCard.vue.d.ts +0 -14
  477. package/dist/src/googleAnalytics/chat-components/TopPagesCard.vue.d.ts +0 -14
  478. package/dist/src/googleAnalytics/chat-components/TrafficSourcesCard.vue.d.ts +0 -14
  479. package/dist/src/googleAnalytics/chat-components/VisitorStatsCard.vue.d.ts +0 -14
  480. package/dist/src/googleAnalytics/components/seo-health/SeoClicksChart.vue.d.ts +0 -5
  481. package/dist/src/googleAnalytics/components/seo-health/SeoImpressionsChart.vue.d.ts +0 -5
  482. package/dist/src/googleAnalytics/components/seo-health/SeoKeywordsTab.vue.d.ts +0 -5
  483. package/dist/src/googleAnalytics/components/seo-health/SeoKpiCards.vue.d.ts +0 -10
  484. package/dist/src/googleAnalytics/components/seo-health/SeoMappingTab.vue.d.ts +0 -5
  485. package/dist/src/googleAnalytics/components/seo-health/SeoPagesTab.vue.d.ts +0 -5
  486. package/dist/src/googleAnalytics/components/seo-health/SeoRankingDistribution.vue.d.ts +0 -5
  487. package/dist/src/googleAnalytics/index.vue.d.ts +0 -2
  488. package/dist/src/googleAnalytics/pages/Acquisition.vue.d.ts +0 -2
  489. package/dist/src/googleAnalytics/pages/Audience.vue.d.ts +0 -2
  490. package/dist/src/googleAnalytics/pages/Content.vue.d.ts +0 -2
  491. package/dist/src/googleAnalytics/pages/Overview.vue.d.ts +0 -2
  492. package/dist/src/googleAnalytics/pages/SeoHealth.vue.d.ts +0 -2
  493. package/dist/src/mailTemplates/components/TemplateList.vue.d.ts +0 -2
  494. package/dist/src/mailTemplates/index.vue.d.ts +0 -22
  495. package/dist/src/mailTemplates/pages/Detail.vue.d.ts +0 -14
  496. package/dist/src/mailTemplates/pages/Overview.vue.d.ts +0 -14
  497. package/dist/src/productCollections/components/detail/Main.vue.d.ts +0 -2
  498. package/dist/src/productCollections/components/detail/SEO.vue.d.ts +0 -2
  499. package/dist/src/productCollections/components/detail/Status.vue.d.ts +0 -2
  500. package/dist/src/productCollections/components/overview/ListView.vue.d.ts +0 -12
  501. package/dist/src/productCollections/index.vue.d.ts +0 -22
  502. package/dist/src/productCollections/pages/Detail.vue.d.ts +0 -14
  503. package/dist/src/productCollections/pages/Overview.vue.d.ts +0 -16
  504. package/dist/src/products/chat-components/ProductDetailsCard.vue.d.ts +0 -14
  505. package/dist/src/products/components/detail/Collections.vue.d.ts +0 -14
  506. package/dist/src/products/components/detail/Inventory.vue.d.ts +0 -2
  507. package/dist/src/products/components/detail/Main.vue.d.ts +0 -2
  508. package/dist/src/products/components/detail/NewSection.vue.d.ts +0 -2
  509. package/dist/src/products/components/detail/Price.vue.d.ts +0 -2
  510. package/dist/src/products/components/detail/SEO.vue.d.ts +0 -2
  511. package/dist/src/products/components/detail/Shipping.vue.d.ts +0 -2
  512. package/dist/src/products/components/detail/Status.vue.d.ts +0 -2
  513. package/dist/src/products/components/detail/price/UnitPriceDialog.vue.d.ts +0 -17
  514. package/dist/src/products/components/detail/variants/Option.vue.d.ts +0 -33
  515. package/dist/src/products/components/detail/variants/VariantList.vue.d.ts +0 -38
  516. package/dist/src/products/components/overview/FilterPopover.vue.d.ts +0 -2
  517. package/dist/src/products/components/overview/GridView.vue.d.ts +0 -12
  518. package/dist/src/products/components/overview/ListView.vue.d.ts +0 -12
  519. package/dist/src/products/components/overview/ProductContextMenu.vue.d.ts +0 -27
  520. package/dist/src/products/index.vue.d.ts +0 -22
  521. package/dist/src/products/pages/Detail.vue.d.ts +0 -14
  522. package/dist/src/products/pages/Overview.vue.d.ts +0 -16
  523. package/dist/src/promoCodes/components/create/DateRange.vue.d.ts +0 -2
  524. package/dist/src/promoCodes/components/create/MultiCodes.vue.d.ts +0 -2
  525. package/dist/src/promoCodes/components/create/Note.vue.d.ts +0 -2
  526. package/dist/src/promoCodes/components/create/SingleCode.vue.d.ts +0 -2
  527. package/dist/src/promoCodes/components/create/TypeAndValue/TypeDetailDialog.vue.d.ts +0 -6
  528. package/dist/src/promoCodes/components/create/TypeAndValue/TypeManageDialog.vue.d.ts +0 -18
  529. package/dist/src/promoCodes/components/create/TypeAndValue/index.vue.d.ts +0 -2
  530. package/dist/src/promoCodes/index.vue.d.ts +0 -22
  531. package/dist/src/promoCodes/pages/Create.vue.d.ts +0 -16
  532. package/dist/src/promoCodes/pages/Detail.vue.d.ts +0 -14
  533. package/dist/src/promoCodes/pages/Find.vue.d.ts +0 -16
  534. package/dist/src/push-notifications/components/PreviewAndroid.vue.d.ts +0 -28
  535. package/dist/src/push-notifications/components/PreviewIPhone.vue.d.ts +0 -28
  536. package/dist/src/push-notifications/components/PushPreview.vue.d.ts +0 -28
  537. package/dist/src/push-notifications/index.vue.d.ts +0 -22
  538. package/dist/src/push-notifications/pages/SendPush.vue.d.ts +0 -14
  539. package/dist/src/shared/BrandLogo.vue.d.ts +0 -12
  540. package/dist/src/shared/DrawerToggle.vue.d.ts +0 -60
  541. package/dist/src/shared/VerticalToggle.vue.d.ts +0 -60
  542. package/dist/src/shippingOptions/components/detail/Condition.vue.d.ts +0 -2
  543. package/dist/src/shippingOptions/components/detail/Countries.vue.d.ts +0 -2
  544. package/dist/src/shippingOptions/components/detail/Example.vue.d.ts +0 -2
  545. package/dist/src/shippingOptions/components/detail/Main.vue.d.ts +0 -2
  546. package/dist/src/shippingOptions/components/overview/ListView.vue.d.ts +0 -12
  547. package/dist/src/shippingOptions/index.vue.d.ts +0 -22
  548. package/dist/src/shippingOptions/pages/Detail.vue.d.ts +0 -14
  549. package/dist/src/shippingOptions/pages/Overview.vue.d.ts +0 -16
  550. package/dist/src/table/components/DataTable.vue.d.ts +0 -18
  551. package/dist/src/table/components/DataTableAction.vue.d.ts +0 -14
  552. package/dist/src/table/components/DataTableMobileRowActionDrawer.vue.d.ts +0 -4
  553. package/dist/src/table/components/DataTablePagination.vue.d.ts +0 -6
  554. package/dist/src/table/components/actions/ActionDialog.vue.d.ts +0 -19
  555. package/dist/src/table/components/actions/CtaActionDialog.vue.d.ts +0 -4
  556. package/dist/src/table/components/columns/ColumnDropdown.vue.d.ts +0 -2
  557. package/dist/src/table/components/columns/ColumnEditorDialog.vue.d.ts +0 -34
  558. package/dist/src/table/components/columns/DialogTableColumnItem.vue.d.ts +0 -12
  559. package/dist/src/table/components/date-range-filter/DateRangeFilter.vue.d.ts +0 -2
  560. package/dist/src/table/components/date-range-filter/DateRangeSettingsDialog.vue.d.ts +0 -27
  561. package/dist/src/table/components/filters/FilterDialog.vue.d.ts +0 -12
  562. package/dist/src/table/components/filters/Filters.vue.d.ts +0 -27
  563. package/dist/src/table/components/search/Search.vue.d.ts +0 -2
  564. package/dist/src/table/components/sort/SortMode.vue.d.ts +0 -2
  565. package/dist/src/table/components/sort/SortModeSettingsDialog.vue.d.ts +0 -18
  566. package/dist/src/table/components/stats/StatDialog.vue.d.ts +0 -12
  567. package/dist/src/table/components/stats/Stats.vue.d.ts +0 -27
  568. package/dist/src/table/flow-builder-extensions/TableRowEditor.vue.d.ts +0 -16
  569. package/dist/src/table/index.vue.d.ts +0 -22
  570. package/dist/src/table/pages/TableView.vue.d.ts +0 -54
  571. package/dist/utils-CanmrIWO.mjs +0 -47
  572. package/dist/utils-Yd6F5mea.js +0 -3
  573. package/dist/vee-validate-zod-ByykgYKJ.js +0 -1
  574. package/dist/vee-validate-zod-CcOwoF6y.mjs +0 -4402
@@ -0,0 +1 @@
1
+ require(`./chunk-DQi1bQcV.js`);const e=require(`./single-container-Xoo0Xzxv.js`);let t=require(`@oneclick.dev/cms-kit`),n=require(`vue`),r=require(`@lucide/vue`);var i={class:`@container/charts flex flex-col gap-6 w-full max-w-7xl mx-auto py-8`},ee={class:`flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center`},te={key:0,class:`flex items-center gap-2`},ne={class:`flex items-center border rounded-lg overflow-hidden`},re=[`onClick`],ie={class:`text-sm text-destructive font-medium`},ae={key:2,class:`flex items-center justify-center py-20`},oe={class:`flex flex-col @4xl/charts:grid @4xl/charts:grid-cols-3 gap-6`},se={class:`relative`},ce={class:`absolute inset-0 flex items-center justify-center pointer-events-none`},le={class:`text-center`},ue={class:`text-2xl font-bold tabular-nums`},de={class:`mt-4 grid grid-cols-2 gap-x-4 gap-y-1.5 w-full`},fe={class:`text-xs truncate`},pe={class:`text-xs text-muted-foreground ml-auto tabular-nums`},me={class:`overflow-x-auto`},he={class:`w-full text-sm`},ge={class:`divide-y`},_e={class:`px-6 py-3`},ve={class:`flex items-center gap-2`},a={class:`font-medium`},o={class:`px-4 py-3 text-right tabular-nums`},s={class:`px-4 py-3 text-right tabular-nums`},c={class:`px-4 py-3 text-right tabular-nums`},l={class:`px-4 py-3 text-right tabular-nums`},u={class:`px-4 py-3 text-right tabular-nums`},d={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},f={class:`flex items-center gap-4`},p=[`onClick`],m={key:0,class:`divide-y`},h={class:`overflow-x-auto`},g={class:`w-full text-sm`},_={class:`divide-y`},v={class:`px-6 py-3 text-muted-foreground`},y={class:`px-4 py-3 font-mono text-xs`},b={class:`px-4 py-3 text-right tabular-nums`},x={class:`px-4 py-3 text-right tabular-nums`},S={class:`px-4 py-3 text-right tabular-nums`},C={class:`px-4 py-3 text-right tabular-nums`},w={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},T={key:1,class:`divide-y`},E={class:`flex items-center gap-3 min-w-0`},D={class:`text-muted-foreground w-5 text-right shrink-0`},O={class:`truncate font-medium`},k={class:`flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground`},A={class:`w-20 text-right`},j={class:`w-16 text-right`},M={class:`w-16 text-right`},N={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},ye={key:2,class:`divide-y`},P={class:`flex items-center gap-3 min-w-0`},be={class:`text-muted-foreground w-5 text-right shrink-0`},xe={class:`truncate font-medium`},Se={class:`flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground`},Ce={class:`w-20 text-right`},we={class:`w-16 text-right`},Te={class:`w-16 text-right`},Ee={key:0,class:`px-6 py-8 text-center text-muted-foreground text-sm`},F=(0,n.defineComponent)({__name:`Acquisition`,setup(F){let{config:I}=(0,t.useModule)(),{moduleId:L}=(0,t.useModuleRoute)();(0,t.useModuleBreadcrumbs)(()=>[{label:`Acquisition`}]);let R=(0,n.ref)(!0),z=(0,n.ref)(null),B=(0,n.ref)(`30`),V=(0,n.ref)(`sources`),H=(0,n.ref)([]),U=(0,n.ref)([]),W=(0,n.ref)([]),G=(0,n.ref)([]),K=(0,n.computed)(()=>!!(I.serviceAccount&&I.propertyId));function q(e){return`/api/v1/modules/${L}${e}`}let De=[{label:`7d`,value:`7`},{label:`14d`,value:`14`},{label:`30d`,value:`30`},{label:`90d`,value:`90`}],J=[`#3b82f6`,`#8b5cf6`,`#10b981`,`#f59e0b`,`#ef4444`,`#06b6d4`,`#ec4899`,`#84cc16`,`#f97316`,`#6366f1`,`#14b8a6`,`#e11d48`,`#a855f7`,`#22c55e`,`#eab308`],Oe=(0,n.computed)(()=>{let e={};return H.value.forEach((t,n)=>{let r=(t.sessionDefaultChannelGroup||`other`).toLowerCase().replace(/[^a-z0-9]/g,`_`);e[r]={label:t.sessionDefaultChannelGroup||`Other`,color:J[n%J.length]}}),e}),ke=(0,n.computed)(()=>H.value.map((e,t)=>({key:(e.sessionDefaultChannelGroup||`other`).toLowerCase().replace(/[^a-z0-9]/g,`_`),label:e.sessionDefaultChannelGroup||`Other`,sessions:e.sessions||0,fill:J[t%J.length]}))),Ae=(0,n.computed)(()=>H.value.reduce((e,t)=>e+(t.sessions||0),0));function Y(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:Math.round(e).toString()}function X(e){return`${(e*100).toFixed(1)}%`}function je(e){let t=Math.floor(e/60),n=Math.round(e%60);return t>0?`${t}m ${n}s`:`${n}s`}async function Z(){if(!K.value)return;R.value=!0,z.value=null;let e=`${B.value}daysAgo`;try{let[t,n,r,i]=await Promise.all([$fetch(q(`/acquisition/channels?startDate=${e}&endDate=today`)),$fetch(q(`/acquisition/source-medium?startDate=${e}&endDate=today`)),$fetch(q(`/acquisition/referrals?startDate=${e}&endDate=today`)).catch(()=>({rows:[]})),$fetch(q(`/acquisition/campaigns?startDate=${e}&endDate=today`)).catch(()=>({rows:[]}))]);H.value=t.rows||[],U.value=n.rows||[],W.value=r.rows||[],G.value=i.rows||[]}catch(e){z.value=e?.data?.statusMessage||e?.message||`Failed to load acquisition data`}finally{R.value=!1}}return(0,n.watch)(B,()=>Z()),(0,n.onMounted)(()=>{K.value?Z():R.value=!1}),(t,F)=>{let I=(0,n.resolveComponent)(`Button`),L=(0,n.resolveComponent)(`Card`),q=(0,n.resolveComponent)(`CardTitle`),Q=(0,n.resolveComponent)(`CardHeader`),Me=(0,n.resolveComponent)(`ChartContainer`),$=(0,n.resolveComponent)(`CardContent`);return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createElementVNode)(`div`,ee,[F[0]||=(0,n.createElementVNode)(`div`,null,[(0,n.createElementVNode)(`h1`,{class:`text-2xl font-semibold`},`Acquisition`),(0,n.createElementVNode)(`p`,{class:`text-muted-foreground text-sm mt-1`},`Where your traffic comes from`)],-1),K.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,te,[(0,n.createElementVNode)(`div`,ne,[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(De,e=>(0,n.createElementVNode)(`button`,{key:e.value,class:(0,n.normalizeClass)([`px-3 py-1.5 text-xs font-medium transition-colors`,B.value===e.value?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground hover:bg-muted`]),onClick:t=>B.value=e.value},(0,n.toDisplayString)(e.label),11,re)),64))]),(0,n.createVNode)(I,{variant:`outline`,size:`icon`,onClick:Z,disabled:R.value},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.RefreshCw),{class:(0,n.normalizeClass)([`size-4`,{"animate-spin":R.value}])},null,8,[`class`])]),_:1},8,[`disabled`])])):(0,n.createCommentVNode)(``,!0)]),K.value?z.value?((0,n.openBlock)(),(0,n.createBlock)(L,{key:1,class:`p-6 border-destructive/50 bg-destructive/5`},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`p`,ie,(0,n.toDisplayString)(z.value),1),(0,n.createVNode)(I,{variant:`outline`,size:`sm`,class:`mt-3`,onClick:Z},{default:(0,n.withCtx)(()=>[...F[2]||=[(0,n.createTextVNode)(`Retry`,-1)]]),_:1})]),_:1})):R.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ae,[(0,n.createVNode)((0,n.unref)(r.Loader2),{class:`size-8 animate-spin text-muted-foreground`})])):((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:3},[(0,n.createElementVNode)(`div`,oe,[(0,n.createVNode)(L,{class:`@4xl/charts:col-span-1`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(Q,{class:`pb-2`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(q,{class:`text-base`},{default:(0,n.withCtx)(()=>[...F[3]||=[(0,n.createTextVNode)(`Channel Mix`,-1)]]),_:1})]),_:1}),(0,n.createVNode)($,{class:`flex flex-col items-center`},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,se,[(0,n.createVNode)(Me,{config:Oe.value,class:`mx-auto aspect-square max-h-[220px]`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.t),{data:ke.value,margin:{top:20,bottom:20,left:20,right:20}},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(e.n),{value:e=>e.sessions,color:e=>e.fill,arcWidth:40,padAngle:.02,cornerRadius:4},null,8,[`value`,`color`])]),_:1},8,[`data`])]),_:1},8,[`config`]),(0,n.createElementVNode)(`div`,ce,[(0,n.createElementVNode)(`div`,le,[(0,n.createElementVNode)(`p`,ue,(0,n.toDisplayString)(Y(Ae.value)),1),F[4]||=(0,n.createElementVNode)(`p`,{class:`text-xs text-muted-foreground`},`sessions`,-1)])])]),(0,n.createElementVNode)(`div`,de,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(H.value.slice(0,8),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.sessionDefaultChannelGroup,class:`flex items-center gap-2`},[(0,n.createElementVNode)(`div`,{class:`size-2.5 rounded-full shrink-0`,style:(0,n.normalizeStyle)({backgroundColor:J[t%J.length]})},null,4),(0,n.createElementVNode)(`span`,fe,(0,n.toDisplayString)(e.sessionDefaultChannelGroup),1),(0,n.createElementVNode)(`span`,pe,(0,n.toDisplayString)(Y(e.sessions)),1)]))),128))])]),_:1})]),_:1}),(0,n.createVNode)(L,{class:`@4xl/charts:col-span-2`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(Q,{class:`pb-2`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(q,{class:`text-base`},{default:(0,n.withCtx)(()=>[...F[5]||=[(0,n.createTextVNode)(`Channels Performance`,-1)]]),_:1})]),_:1}),(0,n.createVNode)($,{class:`p-0`},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,me,[(0,n.createElementVNode)(`table`,he,[F[6]||=(0,n.createElementVNode)(`thead`,null,[(0,n.createElementVNode)(`tr`,{class:`border-b text-left`},[(0,n.createElementVNode)(`th`,{class:`px-6 py-3 font-medium text-muted-foreground`},`Channel`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Sessions`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Users`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`New Users`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Engage Rate`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Avg Duration`)])],-1),(0,n.createElementVNode)(`tbody`,ge,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(H.value,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`tr`,{key:e.sessionDefaultChannelGroup,class:`hover:bg-muted/50`},[(0,n.createElementVNode)(`td`,_e,[(0,n.createElementVNode)(`div`,ve,[(0,n.createElementVNode)(`div`,{class:`size-2.5 rounded-full shrink-0`,style:(0,n.normalizeStyle)({backgroundColor:J[t%J.length]})},null,4),(0,n.createElementVNode)(`span`,a,(0,n.toDisplayString)(e.sessionDefaultChannelGroup),1)])]),(0,n.createElementVNode)(`td`,o,(0,n.toDisplayString)(Y(e.sessions)),1),(0,n.createElementVNode)(`td`,s,(0,n.toDisplayString)(Y(e.totalUsers)),1),(0,n.createElementVNode)(`td`,c,(0,n.toDisplayString)(Y(e.newUsers)),1),(0,n.createElementVNode)(`td`,l,(0,n.toDisplayString)(X(e.engagementRate||0)),1),(0,n.createElementVNode)(`td`,u,(0,n.toDisplayString)(je(e.averageSessionDuration||0)),1)]))),128))])])]),H.value.length?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,d,`No channel data available`))]),_:1})]),_:1})]),(0,n.createVNode)(L,null,{default:(0,n.withCtx)(()=>[(0,n.createVNode)(Q,{class:`pb-0`},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,f,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)([{key:`sources`,label:`Source / Medium`,icon:(0,n.unref)(r.Share2)},{key:`referrals`,label:`Referrals`,icon:(0,n.unref)(r.ExternalLink)},{key:`campaigns`,label:`Campaigns`,icon:(0,n.unref)(r.Megaphone)}],e=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:e.key,class:(0,n.normalizeClass)([`flex items-center gap-1.5 px-3 py-2 text-sm font-medium rounded-md transition-colors`,V.value===e.key?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:t=>V.value=e.key},[((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e.icon),{class:`size-3.5`})),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(e.label),1)],10,p))),128))])]),_:1}),(0,n.createVNode)($,{class:`p-0 mt-4`},{default:(0,n.withCtx)(()=>[V.value===`sources`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,m,[(0,n.createElementVNode)(`div`,h,[(0,n.createElementVNode)(`table`,g,[F[7]||=(0,n.createElementVNode)(`thead`,null,[(0,n.createElementVNode)(`tr`,{class:`border-b text-left`},[(0,n.createElementVNode)(`th`,{class:`px-6 py-3 font-medium text-muted-foreground`},`#`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground`},`Source / Medium`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Sessions`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Users`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`New Users`),(0,n.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Bounce Rate`)])],-1),(0,n.createElementVNode)(`tbody`,_,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(U.value,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`tr`,{key:e.sessionSourceMedium,class:`hover:bg-muted/50`},[(0,n.createElementVNode)(`td`,v,(0,n.toDisplayString)(t+1),1),(0,n.createElementVNode)(`td`,y,(0,n.toDisplayString)(e.sessionSourceMedium),1),(0,n.createElementVNode)(`td`,b,(0,n.toDisplayString)(Y(e.sessions)),1),(0,n.createElementVNode)(`td`,x,(0,n.toDisplayString)(Y(e.totalUsers)),1),(0,n.createElementVNode)(`td`,S,(0,n.toDisplayString)(Y(e.newUsers)),1),(0,n.createElementVNode)(`td`,C,(0,n.toDisplayString)(X(e.bounceRate||0)),1)]))),128))])])]),U.value.length?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,w,`No data available`))])):(0,n.createCommentVNode)(``,!0),V.value===`referrals`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,T,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(W.value,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.sessionSource,class:`flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50`},[(0,n.createElementVNode)(`div`,E,[(0,n.createElementVNode)(`span`,D,(0,n.toDisplayString)(t+1),1),(0,n.createVNode)((0,n.unref)(r.ExternalLink),{class:`size-3.5 text-muted-foreground shrink-0`}),(0,n.createElementVNode)(`span`,O,(0,n.toDisplayString)(e.sessionSource),1)]),(0,n.createElementVNode)(`div`,k,[(0,n.createElementVNode)(`span`,A,(0,n.toDisplayString)(Y(e.sessions))+` sessions`,1),(0,n.createElementVNode)(`span`,j,(0,n.toDisplayString)(Y(e.totalUsers))+` users`,1),(0,n.createElementVNode)(`span`,M,(0,n.toDisplayString)(X(e.engagementRate||0))+` eng.`,1)])]))),128)),W.value.length?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,N,`No referral data available`))])):(0,n.createCommentVNode)(``,!0),V.value===`campaigns`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ye,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(G.value,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.sessionCampaignName,class:`flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50`},[(0,n.createElementVNode)(`div`,P,[(0,n.createElementVNode)(`span`,be,(0,n.toDisplayString)(t+1),1),(0,n.createVNode)((0,n.unref)(r.Megaphone),{class:`size-3.5 text-muted-foreground shrink-0`}),(0,n.createElementVNode)(`span`,xe,(0,n.toDisplayString)(e.sessionCampaignName),1)]),(0,n.createElementVNode)(`div`,Se,[(0,n.createElementVNode)(`span`,Ce,(0,n.toDisplayString)(Y(e.sessions))+` sessions`,1),(0,n.createElementVNode)(`span`,we,(0,n.toDisplayString)(Y(e.totalUsers))+` users`,1),(0,n.createElementVNode)(`span`,Te,(0,n.toDisplayString)(X(e.engagementRate||0))+` eng.`,1)])]))),128)),G.value.length?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,Ee,`No campaign data. Use UTM parameters in your URLs to track campaigns.`))])):(0,n.createCommentVNode)(``,!0)]),_:1})]),_:1})],64)):((0,n.openBlock)(),(0,n.createBlock)(L,{key:0,class:`p-8 text-center`},{default:(0,n.withCtx)(()=>[...F[1]||=[(0,n.createElementVNode)(`p`,{class:`text-lg font-medium`},`Setup required`,-1),(0,n.createElementVNode)(`p`,{class:`text-sm text-muted-foreground mt-2`},`Configure your GA4 property in module settings.`,-1)]]),_:1}))])}}});exports.default=F;
@@ -0,0 +1,308 @@
1
+ import { n as e, t } from "./single-container-BJmmqq65.mjs";
2
+ import { useModule as n, useModuleBreadcrumbs as r, useModuleRoute as i } from "@oneclick.dev/cms-kit";
3
+ import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, normalizeStyle as h, onMounted as g, openBlock as _, ref as v, renderList as y, resolveComponent as b, resolveDynamicComponent as ee, toDisplayString as x, unref as S, watch as C, withCtx as w } from "vue";
4
+ import { ExternalLink as T, Loader2 as te, Megaphone as E, RefreshCw as ne, Share2 as re } from "@lucide/vue";
5
+ //#region src/googleAnalytics/pages/Acquisition.vue?vue&type=script&setup=true&lang.ts
6
+ var ie = { class: "@container/charts flex flex-col gap-6 w-full max-w-7xl mx-auto py-8" }, ae = { class: "flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center" }, oe = {
7
+ key: 0,
8
+ class: "flex items-center gap-2"
9
+ }, se = { class: "flex items-center border rounded-lg overflow-hidden" }, ce = ["onClick"], le = { class: "text-sm text-destructive font-medium" }, ue = {
10
+ key: 2,
11
+ class: "flex items-center justify-center py-20"
12
+ }, de = { class: "flex flex-col @4xl/charts:grid @4xl/charts:grid-cols-3 gap-6" }, fe = { class: "relative" }, pe = { class: "absolute inset-0 flex items-center justify-center pointer-events-none" }, me = { class: "text-center" }, he = { class: "text-2xl font-bold tabular-nums" }, ge = { class: "mt-4 grid grid-cols-2 gap-x-4 gap-y-1.5 w-full" }, D = { class: "text-xs truncate" }, O = { class: "text-xs text-muted-foreground ml-auto tabular-nums" }, k = { class: "overflow-x-auto" }, A = { class: "w-full text-sm" }, j = { class: "divide-y" }, M = { class: "px-6 py-3" }, N = { class: "flex items-center gap-2" }, P = { class: "font-medium" }, F = { class: "px-4 py-3 text-right tabular-nums" }, I = { class: "px-4 py-3 text-right tabular-nums" }, L = { class: "px-4 py-3 text-right tabular-nums" }, _e = { class: "px-4 py-3 text-right tabular-nums" }, ve = { class: "px-4 py-3 text-right tabular-nums" }, ye = {
13
+ key: 0,
14
+ class: "px-6 py-8 text-center text-muted-foreground text-sm"
15
+ }, be = { class: "flex items-center gap-4" }, xe = ["onClick"], Se = {
16
+ key: 0,
17
+ class: "divide-y"
18
+ }, Ce = { class: "overflow-x-auto" }, we = { class: "w-full text-sm" }, Te = { class: "divide-y" }, Ee = { class: "px-6 py-3 text-muted-foreground" }, De = { class: "px-4 py-3 font-mono text-xs" }, Oe = { class: "px-4 py-3 text-right tabular-nums" }, R = { class: "px-4 py-3 text-right tabular-nums" }, ke = { class: "px-4 py-3 text-right tabular-nums" }, Ae = { class: "px-4 py-3 text-right tabular-nums" }, je = {
19
+ key: 0,
20
+ class: "px-6 py-8 text-center text-muted-foreground text-sm"
21
+ }, Me = {
22
+ key: 1,
23
+ class: "divide-y"
24
+ }, Ne = { class: "flex items-center gap-3 min-w-0" }, Pe = { class: "text-muted-foreground w-5 text-right shrink-0" }, Fe = { class: "truncate font-medium" }, Ie = { class: "flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground" }, Le = { class: "w-20 text-right" }, Re = { class: "w-16 text-right" }, ze = { class: "w-16 text-right" }, Be = {
25
+ key: 0,
26
+ class: "px-6 py-8 text-center text-muted-foreground text-sm"
27
+ }, Ve = {
28
+ key: 2,
29
+ class: "divide-y"
30
+ }, He = { class: "flex items-center gap-3 min-w-0" }, Ue = { class: "text-muted-foreground w-5 text-right shrink-0" }, We = { class: "truncate font-medium" }, Ge = { class: "flex items-center gap-6 shrink-0 tabular-nums text-xs text-muted-foreground" }, Ke = { class: "w-20 text-right" }, qe = { class: "w-16 text-right" }, Je = { class: "w-16 text-right" }, Ye = {
31
+ key: 0,
32
+ class: "px-6 py-8 text-center text-muted-foreground text-sm"
33
+ }, z = /* @__PURE__ */ p({
34
+ __name: "Acquisition",
35
+ setup(p) {
36
+ let { config: z } = n(), { moduleId: Xe } = i();
37
+ r(() => [{ label: "Acquisition" }]);
38
+ let B = v(!0), V = v(null), H = v("30"), U = v("sources"), W = v([]), G = v([]), K = v([]), q = v([]), J = o(() => !!(z.serviceAccount && z.propertyId));
39
+ function Y(e) {
40
+ return `/api/v1/modules/${Xe}${e}`;
41
+ }
42
+ let Ze = [
43
+ {
44
+ label: "7d",
45
+ value: "7"
46
+ },
47
+ {
48
+ label: "14d",
49
+ value: "14"
50
+ },
51
+ {
52
+ label: "30d",
53
+ value: "30"
54
+ },
55
+ {
56
+ label: "90d",
57
+ value: "90"
58
+ }
59
+ ], X = [
60
+ "#3b82f6",
61
+ "#8b5cf6",
62
+ "#10b981",
63
+ "#f59e0b",
64
+ "#ef4444",
65
+ "#06b6d4",
66
+ "#ec4899",
67
+ "#84cc16",
68
+ "#f97316",
69
+ "#6366f1",
70
+ "#14b8a6",
71
+ "#e11d48",
72
+ "#a855f7",
73
+ "#22c55e",
74
+ "#eab308"
75
+ ], Qe = o(() => {
76
+ let e = {};
77
+ return W.value.forEach((t, n) => {
78
+ let r = (t.sessionDefaultChannelGroup || "other").toLowerCase().replace(/[^a-z0-9]/g, "_");
79
+ e[r] = {
80
+ label: t.sessionDefaultChannelGroup || "Other",
81
+ color: X[n % X.length]
82
+ };
83
+ }), e;
84
+ }), $e = o(() => W.value.map((e, t) => ({
85
+ key: (e.sessionDefaultChannelGroup || "other").toLowerCase().replace(/[^a-z0-9]/g, "_"),
86
+ label: e.sessionDefaultChannelGroup || "Other",
87
+ sessions: e.sessions || 0,
88
+ fill: X[t % X.length]
89
+ }))), et = o(() => W.value.reduce((e, t) => e + (t.sessions || 0), 0));
90
+ function Z(e) {
91
+ return e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}K` : Math.round(e).toString();
92
+ }
93
+ function Q(e) {
94
+ return `${(e * 100).toFixed(1)}%`;
95
+ }
96
+ function tt(e) {
97
+ let t = Math.floor(e / 60), n = Math.round(e % 60);
98
+ return t > 0 ? `${t}m ${n}s` : `${n}s`;
99
+ }
100
+ async function $() {
101
+ if (!J.value) return;
102
+ B.value = !0, V.value = null;
103
+ let e = `${H.value}daysAgo`;
104
+ try {
105
+ let [t, n, r, i] = await Promise.all([
106
+ $fetch(Y(`/acquisition/channels?startDate=${e}&endDate=today`)),
107
+ $fetch(Y(`/acquisition/source-medium?startDate=${e}&endDate=today`)),
108
+ $fetch(Y(`/acquisition/referrals?startDate=${e}&endDate=today`)).catch(() => ({ rows: [] })),
109
+ $fetch(Y(`/acquisition/campaigns?startDate=${e}&endDate=today`)).catch(() => ({ rows: [] }))
110
+ ]);
111
+ W.value = t.rows || [], G.value = n.rows || [], K.value = r.rows || [], q.value = i.rows || [];
112
+ } catch (e) {
113
+ V.value = e?.data?.statusMessage || e?.message || "Failed to load acquisition data";
114
+ } finally {
115
+ B.value = !1;
116
+ }
117
+ }
118
+ return C(H, () => $()), g(() => {
119
+ J.value ? $() : B.value = !1;
120
+ }), (n, r) => {
121
+ let i = b("Button"), o = b("Card"), p = b("CardTitle"), g = b("CardHeader"), v = b("ChartContainer"), C = b("CardContent");
122
+ return _(), l("div", ie, [u("div", ae, [r[0] ||= u("div", null, [u("h1", { class: "text-2xl font-semibold" }, "Acquisition"), u("p", { class: "text-muted-foreground text-sm mt-1" }, "Where your traffic comes from")], -1), J.value ? (_(), l("div", oe, [u("div", se, [(_(), l(a, null, y(Ze, (e) => u("button", {
123
+ key: e.value,
124
+ class: m(["px-3 py-1.5 text-xs font-medium transition-colors", H.value === e.value ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:text-foreground hover:bg-muted"]),
125
+ onClick: (t) => H.value = e.value
126
+ }, x(e.label), 11, ce)), 64))]), f(i, {
127
+ variant: "outline",
128
+ size: "icon",
129
+ onClick: $,
130
+ disabled: B.value
131
+ }, {
132
+ default: w(() => [f(S(ne), { class: m(["size-4", { "animate-spin": B.value }]) }, null, 8, ["class"])]),
133
+ _: 1
134
+ }, 8, ["disabled"])])) : c("", !0)]), J.value ? V.value ? (_(), s(o, {
135
+ key: 1,
136
+ class: "p-6 border-destructive/50 bg-destructive/5"
137
+ }, {
138
+ default: w(() => [u("p", le, x(V.value), 1), f(i, {
139
+ variant: "outline",
140
+ size: "sm",
141
+ class: "mt-3",
142
+ onClick: $
143
+ }, {
144
+ default: w(() => [...r[2] ||= [d("Retry", -1)]]),
145
+ _: 1
146
+ })]),
147
+ _: 1
148
+ })) : B.value ? (_(), l("div", ue, [f(S(te), { class: "size-8 animate-spin text-muted-foreground" })])) : (_(), l(a, { key: 3 }, [u("div", de, [f(o, { class: "@4xl/charts:col-span-1" }, {
149
+ default: w(() => [f(g, { class: "pb-2" }, {
150
+ default: w(() => [f(p, { class: "text-base" }, {
151
+ default: w(() => [...r[3] ||= [d("Channel Mix", -1)]]),
152
+ _: 1
153
+ })]),
154
+ _: 1
155
+ }), f(C, { class: "flex flex-col items-center" }, {
156
+ default: w(() => [u("div", fe, [f(v, {
157
+ config: Qe.value,
158
+ class: "mx-auto aspect-square max-h-[220px]"
159
+ }, {
160
+ default: w(() => [f(S(t), {
161
+ data: $e.value,
162
+ margin: {
163
+ top: 20,
164
+ bottom: 20,
165
+ left: 20,
166
+ right: 20
167
+ }
168
+ }, {
169
+ default: w(() => [f(S(e), {
170
+ value: (e) => e.sessions,
171
+ color: (e) => e.fill,
172
+ arcWidth: 40,
173
+ padAngle: .02,
174
+ cornerRadius: 4
175
+ }, null, 8, ["value", "color"])]),
176
+ _: 1
177
+ }, 8, ["data"])]),
178
+ _: 1
179
+ }, 8, ["config"]), u("div", pe, [u("div", me, [u("p", he, x(Z(et.value)), 1), r[4] ||= u("p", { class: "text-xs text-muted-foreground" }, "sessions", -1)])])]), u("div", ge, [(_(!0), l(a, null, y(W.value.slice(0, 8), (e, t) => (_(), l("div", {
180
+ key: e.sessionDefaultChannelGroup,
181
+ class: "flex items-center gap-2"
182
+ }, [
183
+ u("div", {
184
+ class: "size-2.5 rounded-full shrink-0",
185
+ style: h({ backgroundColor: X[t % X.length] })
186
+ }, null, 4),
187
+ u("span", D, x(e.sessionDefaultChannelGroup), 1),
188
+ u("span", O, x(Z(e.sessions)), 1)
189
+ ]))), 128))])]),
190
+ _: 1
191
+ })]),
192
+ _: 1
193
+ }), f(o, { class: "@4xl/charts:col-span-2" }, {
194
+ default: w(() => [f(g, { class: "pb-2" }, {
195
+ default: w(() => [f(p, { class: "text-base" }, {
196
+ default: w(() => [...r[5] ||= [d("Channels Performance", -1)]]),
197
+ _: 1
198
+ })]),
199
+ _: 1
200
+ }), f(C, { class: "p-0" }, {
201
+ default: w(() => [u("div", k, [u("table", A, [r[6] ||= u("thead", null, [u("tr", { class: "border-b text-left" }, [
202
+ u("th", { class: "px-6 py-3 font-medium text-muted-foreground" }, "Channel"),
203
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Sessions"),
204
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Users"),
205
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "New Users"),
206
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Engage Rate"),
207
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Avg Duration")
208
+ ])], -1), u("tbody", j, [(_(!0), l(a, null, y(W.value, (e, t) => (_(), l("tr", {
209
+ key: e.sessionDefaultChannelGroup,
210
+ class: "hover:bg-muted/50"
211
+ }, [
212
+ u("td", M, [u("div", N, [u("div", {
213
+ class: "size-2.5 rounded-full shrink-0",
214
+ style: h({ backgroundColor: X[t % X.length] })
215
+ }, null, 4), u("span", P, x(e.sessionDefaultChannelGroup), 1)])]),
216
+ u("td", F, x(Z(e.sessions)), 1),
217
+ u("td", I, x(Z(e.totalUsers)), 1),
218
+ u("td", L, x(Z(e.newUsers)), 1),
219
+ u("td", _e, x(Q(e.engagementRate || 0)), 1),
220
+ u("td", ve, x(tt(e.averageSessionDuration || 0)), 1)
221
+ ]))), 128))])])]), W.value.length ? c("", !0) : (_(), l("div", ye, "No channel data available"))]),
222
+ _: 1
223
+ })]),
224
+ _: 1
225
+ })]), f(o, null, {
226
+ default: w(() => [f(g, { class: "pb-0" }, {
227
+ default: w(() => [u("div", be, [(_(!0), l(a, null, y([
228
+ {
229
+ key: "sources",
230
+ label: "Source / Medium",
231
+ icon: S(re)
232
+ },
233
+ {
234
+ key: "referrals",
235
+ label: "Referrals",
236
+ icon: S(T)
237
+ },
238
+ {
239
+ key: "campaigns",
240
+ label: "Campaigns",
241
+ icon: S(E)
242
+ }
243
+ ], (e) => (_(), l("button", {
244
+ key: e.key,
245
+ class: m(["flex items-center gap-1.5 px-3 py-2 text-sm font-medium rounded-md transition-colors", U.value === e.key ? "bg-muted text-foreground" : "text-muted-foreground hover:text-foreground"]),
246
+ onClick: (t) => U.value = e.key
247
+ }, [(_(), s(ee(e.icon), { class: "size-3.5" })), d(" " + x(e.label), 1)], 10, xe))), 128))])]),
248
+ _: 1
249
+ }), f(C, { class: "p-0 mt-4" }, {
250
+ default: w(() => [
251
+ U.value === "sources" ? (_(), l("div", Se, [u("div", Ce, [u("table", we, [r[7] ||= u("thead", null, [u("tr", { class: "border-b text-left" }, [
252
+ u("th", { class: "px-6 py-3 font-medium text-muted-foreground" }, "#"),
253
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground" }, "Source / Medium"),
254
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Sessions"),
255
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Users"),
256
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "New Users"),
257
+ u("th", { class: "px-4 py-3 font-medium text-muted-foreground text-right" }, "Bounce Rate")
258
+ ])], -1), u("tbody", Te, [(_(!0), l(a, null, y(G.value, (e, t) => (_(), l("tr", {
259
+ key: e.sessionSourceMedium,
260
+ class: "hover:bg-muted/50"
261
+ }, [
262
+ u("td", Ee, x(t + 1), 1),
263
+ u("td", De, x(e.sessionSourceMedium), 1),
264
+ u("td", Oe, x(Z(e.sessions)), 1),
265
+ u("td", R, x(Z(e.totalUsers)), 1),
266
+ u("td", ke, x(Z(e.newUsers)), 1),
267
+ u("td", Ae, x(Q(e.bounceRate || 0)), 1)
268
+ ]))), 128))])])]), G.value.length ? c("", !0) : (_(), l("div", je, "No data available"))])) : c("", !0),
269
+ U.value === "referrals" ? (_(), l("div", Me, [(_(!0), l(a, null, y(K.value, (e, t) => (_(), l("div", {
270
+ key: e.sessionSource,
271
+ class: "flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50"
272
+ }, [u("div", Ne, [
273
+ u("span", Pe, x(t + 1), 1),
274
+ f(S(T), { class: "size-3.5 text-muted-foreground shrink-0" }),
275
+ u("span", Fe, x(e.sessionSource), 1)
276
+ ]), u("div", Ie, [
277
+ u("span", Le, x(Z(e.sessions)) + " sessions", 1),
278
+ u("span", Re, x(Z(e.totalUsers)) + " users", 1),
279
+ u("span", ze, x(Q(e.engagementRate || 0)) + " eng.", 1)
280
+ ])]))), 128)), K.value.length ? c("", !0) : (_(), l("div", Be, "No referral data available"))])) : c("", !0),
281
+ U.value === "campaigns" ? (_(), l("div", Ve, [(_(!0), l(a, null, y(q.value, (e, t) => (_(), l("div", {
282
+ key: e.sessionCampaignName,
283
+ class: "flex items-center justify-between px-6 py-3 text-sm hover:bg-muted/50"
284
+ }, [u("div", He, [
285
+ u("span", Ue, x(t + 1), 1),
286
+ f(S(E), { class: "size-3.5 text-muted-foreground shrink-0" }),
287
+ u("span", We, x(e.sessionCampaignName), 1)
288
+ ]), u("div", Ge, [
289
+ u("span", Ke, x(Z(e.sessions)) + " sessions", 1),
290
+ u("span", qe, x(Z(e.totalUsers)) + " users", 1),
291
+ u("span", Je, x(Q(e.engagementRate || 0)) + " eng.", 1)
292
+ ])]))), 128)), q.value.length ? c("", !0) : (_(), l("div", Ye, "No campaign data. Use UTM parameters in your URLs to track campaigns."))])) : c("", !0)
293
+ ]),
294
+ _: 1
295
+ })]),
296
+ _: 1
297
+ })], 64)) : (_(), s(o, {
298
+ key: 0,
299
+ class: "p-8 text-center"
300
+ }, {
301
+ default: w(() => [...r[1] ||= [u("p", { class: "text-lg font-medium" }, "Setup required", -1), u("p", { class: "text-sm text-muted-foreground mt-2" }, "Configure your GA4 property in module settings.", -1)]]),
302
+ _: 1
303
+ }))]);
304
+ };
305
+ }
306
+ });
307
+ //#endregion
308
+ export { z as default };
@@ -0,0 +1 @@
1
+ require(`./chunk-DQi1bQcV.js`);let e=require(`vue`),t=require(`@lucide/vue`);var n={class:`w-full`},r={key:0,class:`flex items-center gap-2 py-3`},i={key:1,class:`text-xs text-destructive py-2`},a={key:2,class:`rounded-xl border bg-background p-3 space-y-3`},o={class:`relative flex items-start gap-3`},s={class:`shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center`},c={class:`flex-1 min-w-0 pr-10`},l={class:`text-sm font-semibold truncate`},u={class:`text-xs text-muted-foreground`},d={key:0,class:`text-xs text-muted-foreground text-center py-2`},f={key:1,class:`space-y-2`},p={class:`flex items-center justify-between`},m={class:`text-xs font-medium`},h={key:0,class:`text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-amber-50 dark:bg-amber-900/20 text-amber-600 dark:text-amber-400 uppercase`},g={key:0,class:`flex items-center gap-1.5 text-xs text-red-500`},_={key:1,class:`space-y-0.5`},v={key:2,class:`text-xs text-muted-foreground`},y=(0,e.defineComponent)({__name:`AgendaOpeningHoursCard`,props:{toolName:{},projectSlug:{},instanceId:{},instanceName:{},moduleType:{},resolvedArgs:{},status:{}},emits:[`submit`],setup(y,{emit:b}){let{$useModuleApi:x}=useNuxtApp(),S=y,C=b,w=x(S.instanceId),T=(0,e.ref)(!0),E=(0,e.ref)(null),D=(0,e.ref)(null),O=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];async function k(){let{agendaId:e,date:t}=S.resolvedArgs||{};if(!e||!t){E.value=`Agenda ID and date are required`,T.value=!1,A(`Error: ${E.value}`);return}T.value=!0,E.value=null;try{let n=await w.get(`/agendas/${e}/opening-hours?date=${t}`);D.value=n,A({agendaId:n.agendaId,serviceName:n.serviceName,date:n.date,resources:n.resources.map(e=>({resourceId:e.resourceId,resourceName:e.resourceName,isClosed:e.isClosed,hours:e.hours,isException:e.isException}))})}catch(e){E.value=e?.data?.statusMessage||e?.message||`Failed to load opening hours`,A(`Error loading opening hours: ${E.value}`)}finally{T.value=!1}}(0,e.onMounted)(()=>{k()});function A(e){S.status!==`completed`&&C(`submit`,e)}let j=(0,e.computed)(()=>{if(!D.value?.date)return``;let e=new Date(D.value.date+`T00:00:00`);return`${O[e.getDay()]}, ${e.toLocaleDateString(`en-US`,{month:`long`,day:`numeric`,year:`numeric`})}`});return(b,x)=>{let S=(0,e.resolveComponent)(`DropdownMenuTrigger`),C=(0,e.resolveComponent)(`NuxtLink`),w=(0,e.resolveComponent)(`DropdownMenuItem`),O=(0,e.resolveComponent)(`DropdownMenuContent`),k=(0,e.resolveComponent)(`DropdownMenu`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,n,[(0,e.unref)(T)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,r,[(0,e.createVNode)((0,e.unref)(t.Loader2),{class:`size-4 animate-spin text-muted-foreground`}),x[0]||=(0,e.createElementVNode)(`span`,{class:`text-xs text-muted-foreground`},`Loading opening hours…`,-1)])):(0,e.unref)(E)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,(0,e.toDisplayString)((0,e.unref)(E)),1)):(0,e.unref)(D)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,a,[(0,e.createElementVNode)(`div`,o,[(0,e.createElementVNode)(`div`,s,[(0,e.createVNode)((0,e.unref)(t.CalendarDays),{class:`size-5 text-primary`})]),(0,e.createElementVNode)(`div`,c,[(0,e.createElementVNode)(`p`,l,(0,e.toDisplayString)((0,e.unref)(D).serviceName),1),(0,e.createElementVNode)(`p`,u,(0,e.toDisplayString)((0,e.unref)(j)),1)]),(0,e.createVNode)(k,null,{default:(0,e.withCtx)(()=>[(0,e.createVNode)(S,{class:`absolute top-2 right-2`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Settings),{class:`size-4 text-muted-foreground hover:text-foreground transition-colors`})]),_:1}),(0,e.createVNode)(O,{align:`end`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(w,{"as-child":``},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(C,{to:`/projects/${y.projectSlug}/modules/${y.instanceId}/edit/${y.resolvedArgs.agendaId}/resources`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.CalendarCog),{class:`size-4`}),x[1]||=(0,e.createTextVNode)(` Regular hours `,-1)]),_:1},8,[`to`])]),_:1}),(0,e.createVNode)(w,{"as-child":``},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(C,{to:`/projects/${y.projectSlug}/modules/${y.instanceId}/edit/${y.resolvedArgs.agendaId}/exceptions`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.CalendarCog),{class:`size-4`}),x[2]||=(0,e.createTextVNode)(` Closures & exceptions `,-1)]),_:1},8,[`to`])]),_:1})]),_:1})]),_:1})]),(0,e.unref)(D).resources.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,d,` No active resources found for this agenda. `)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,f,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(D).resources,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n.resourceId,class:`rounded-lg border px-3 py-2 space-y-1`},[(0,e.createElementVNode)(`div`,p,[(0,e.createElementVNode)(`span`,m,(0,e.toDisplayString)(n.resourceName),1),n.isException?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,h,` Exception `)):(0,e.createCommentVNode)(``,!0)]),n.isClosed?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,g,[(0,e.createVNode)((0,e.unref)(t.BanIcon),{class:`size-3`}),x[3]||=(0,e.createElementVNode)(`span`,null,`Closed`,-1)])):n.hours.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,_,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(n.hours,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:r,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},[(0,e.createVNode)((0,e.unref)(t.Clock),{class:`size-3`}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.start)+` – `+(0,e.toDisplayString)(n.end),1)]))),128))])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,v,` No hours set `))]))),128))]))])):(0,e.createCommentVNode)(``,!0)])}}});exports.default=y;
@@ -0,0 +1,133 @@
1
+ import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, createVNode as o, defineComponent as s, onMounted as c, openBlock as l, ref as u, renderList as d, resolveComponent as f, toDisplayString as p, unref as m, withCtx as h } from "vue";
2
+ import { BanIcon as g, CalendarCog as _, CalendarDays as v, Clock as y, Loader2 as b, Settings as x } from "@lucide/vue";
3
+ //#region src/appointments/chat-components/AgendaOpeningHoursCard.vue?vue&type=script&setup=true&lang.ts
4
+ var S = { class: "w-full" }, C = {
5
+ key: 0,
6
+ class: "flex items-center gap-2 py-3"
7
+ }, w = {
8
+ key: 1,
9
+ class: "text-xs text-destructive py-2"
10
+ }, T = {
11
+ key: 2,
12
+ class: "rounded-xl border bg-background p-3 space-y-3"
13
+ }, E = { class: "relative flex items-start gap-3" }, D = { class: "shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center" }, O = { class: "flex-1 min-w-0 pr-10" }, k = { class: "text-sm font-semibold truncate" }, A = { class: "text-xs text-muted-foreground" }, j = {
14
+ key: 0,
15
+ class: "text-xs text-muted-foreground text-center py-2"
16
+ }, M = {
17
+ key: 1,
18
+ class: "space-y-2"
19
+ }, N = { class: "flex items-center justify-between" }, P = { class: "text-xs font-medium" }, F = {
20
+ key: 0,
21
+ class: "text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-amber-50 dark:bg-amber-900/20 text-amber-600 dark:text-amber-400 uppercase"
22
+ }, I = {
23
+ key: 0,
24
+ class: "flex items-center gap-1.5 text-xs text-red-500"
25
+ }, L = {
26
+ key: 1,
27
+ class: "space-y-0.5"
28
+ }, R = {
29
+ key: 2,
30
+ class: "text-xs text-muted-foreground"
31
+ }, z = /* @__PURE__ */ s({
32
+ __name: "AgendaOpeningHoursCard",
33
+ props: {
34
+ toolName: {},
35
+ projectSlug: {},
36
+ instanceId: {},
37
+ instanceName: {},
38
+ moduleType: {},
39
+ resolvedArgs: {},
40
+ status: {}
41
+ },
42
+ emits: ["submit"],
43
+ setup(s, { emit: z }) {
44
+ let { $useModuleApi: B } = useNuxtApp(), V = s, H = z, U = B(V.instanceId), W = u(!0), G = u(null), K = u(null), q = [
45
+ "Sunday",
46
+ "Monday",
47
+ "Tuesday",
48
+ "Wednesday",
49
+ "Thursday",
50
+ "Friday",
51
+ "Saturday"
52
+ ];
53
+ async function J() {
54
+ let { agendaId: e, date: t } = V.resolvedArgs || {};
55
+ if (!e || !t) {
56
+ G.value = "Agenda ID and date are required", W.value = !1, Y(`Error: ${G.value}`);
57
+ return;
58
+ }
59
+ W.value = !0, G.value = null;
60
+ try {
61
+ let n = await U.get(`/agendas/${e}/opening-hours?date=${t}`);
62
+ K.value = n, Y({
63
+ agendaId: n.agendaId,
64
+ serviceName: n.serviceName,
65
+ date: n.date,
66
+ resources: n.resources.map((e) => ({
67
+ resourceId: e.resourceId,
68
+ resourceName: e.resourceName,
69
+ isClosed: e.isClosed,
70
+ hours: e.hours,
71
+ isException: e.isException
72
+ }))
73
+ });
74
+ } catch (e) {
75
+ G.value = e?.data?.statusMessage || e?.message || "Failed to load opening hours", Y(`Error loading opening hours: ${G.value}`);
76
+ } finally {
77
+ W.value = !1;
78
+ }
79
+ }
80
+ c(() => {
81
+ J();
82
+ });
83
+ function Y(e) {
84
+ V.status !== "completed" && H("submit", e);
85
+ }
86
+ let X = t(() => {
87
+ if (!K.value?.date) return "";
88
+ let e = /* @__PURE__ */ new Date(K.value.date + "T00:00:00");
89
+ return `${q[e.getDay()]}, ${e.toLocaleDateString("en-US", {
90
+ month: "long",
91
+ day: "numeric",
92
+ year: "numeric"
93
+ })}`;
94
+ });
95
+ return (t, c) => {
96
+ let u = f("DropdownMenuTrigger"), z = f("NuxtLink"), B = f("DropdownMenuItem"), V = f("DropdownMenuContent"), H = f("DropdownMenu");
97
+ return l(), r("div", S, [m(W) ? (l(), r("div", C, [o(m(b), { class: "size-4 animate-spin text-muted-foreground" }), c[0] ||= i("span", { class: "text-xs text-muted-foreground" }, "Loading opening hours…", -1)])) : m(G) ? (l(), r("div", w, p(m(G)), 1)) : m(K) ? (l(), r("div", T, [i("div", E, [
98
+ i("div", D, [o(m(v), { class: "size-5 text-primary" })]),
99
+ i("div", O, [i("p", k, p(m(K).serviceName), 1), i("p", A, p(m(X)), 1)]),
100
+ o(H, null, {
101
+ default: h(() => [o(u, { class: "absolute top-2 right-2" }, {
102
+ default: h(() => [o(m(x), { class: "size-4 text-muted-foreground hover:text-foreground transition-colors" })]),
103
+ _: 1
104
+ }), o(V, { align: "end" }, {
105
+ default: h(() => [o(B, { "as-child": "" }, {
106
+ default: h(() => [o(z, { to: `/projects/${s.projectSlug}/modules/${s.instanceId}/edit/${s.resolvedArgs.agendaId}/resources` }, {
107
+ default: h(() => [o(m(_), { class: "size-4" }), c[1] ||= a(" Regular hours ", -1)]),
108
+ _: 1
109
+ }, 8, ["to"])]),
110
+ _: 1
111
+ }), o(B, { "as-child": "" }, {
112
+ default: h(() => [o(z, { to: `/projects/${s.projectSlug}/modules/${s.instanceId}/edit/${s.resolvedArgs.agendaId}/exceptions` }, {
113
+ default: h(() => [o(m(_), { class: "size-4" }), c[2] ||= a(" Closures & exceptions ", -1)]),
114
+ _: 1
115
+ }, 8, ["to"])]),
116
+ _: 1
117
+ })]),
118
+ _: 1
119
+ })]),
120
+ _: 1
121
+ })
122
+ ]), m(K).resources.length === 0 ? (l(), r("div", j, " No active resources found for this agenda. ")) : (l(), r("div", M, [(l(!0), r(e, null, d(m(K).resources, (t) => (l(), r("div", {
123
+ key: t.resourceId,
124
+ class: "rounded-lg border px-3 py-2 space-y-1"
125
+ }, [i("div", N, [i("span", P, p(t.resourceName), 1), t.isException ? (l(), r("span", F, " Exception ")) : n("", !0)]), t.isClosed ? (l(), r("div", I, [o(m(g), { class: "size-3" }), c[3] ||= i("span", null, "Closed", -1)])) : t.hours.length > 0 ? (l(), r("div", L, [(l(!0), r(e, null, d(t.hours, (e, t) => (l(), r("div", {
126
+ key: t,
127
+ class: "flex items-center gap-1.5 text-xs text-muted-foreground"
128
+ }, [o(m(y), { class: "size-3" }), i("span", null, p(e.start) + " – " + p(e.end), 1)]))), 128))])) : (l(), r("div", R, " No hours set "))]))), 128))]))])) : n("", !0)]);
129
+ };
130
+ }
131
+ });
132
+ //#endregion
133
+ export { z as default };
@@ -0,0 +1 @@
1
+ require(`./chunk-DQi1bQcV.js`);let e=require(`vue`),t=require(`@lucide/vue`);var n={class:`w-full`},r={key:0,class:`flex items-center gap-2 py-3`},i={key:1,class:`text-xs text-destructive py-2`},a={key:2,class:`rounded-xl border bg-background p-4 text-center`},o={key:3,class:`space-y-3`},s={class:`flex items-start gap-3`},c={class:`shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center`},l={class:`flex-1 min-w-0`},u={class:`text-sm font-semibold truncate`},d={class:`flex items-center gap-2 mt-1 flex-wrap`},f={key:0,class:`text-xs font-medium`},p={class:`grid grid-cols-2 gap-2 text-xs text-muted-foreground`},m={class:`flex items-center gap-1.5`},h={class:`truncate`},g={class:`flex items-center gap-1.5`},_={class:`flex items-center gap-1.5`},v={class:`flex items-center gap-1.5`},y=(0,e.defineComponent)({__name:`AppointmentDetailsCard`,props:{toolName:{},instanceId:{},instanceName:{},moduleType:{},resolvedArgs:{},status:{}},emits:[`submit`],setup(y,{emit:b}){let{$useRoute:x,$useModuleApi:S}=useNuxtApp(),C=y,w=b,T=x(),E=(0,e.computed)(()=>T.params.slug),D=S(C.instanceId),O=(0,e.ref)(!0),k=(0,e.ref)(null),A=(0,e.ref)([]);async function j(){let{name:e,email:t,date:n}=C.resolvedArgs||{};if(!n){k.value=`No date provided`,O.value=!1;return}O.value=!0,k.value=null;try{let r=new URLSearchParams;e&&r.set(`name`,e),t&&r.set(`email`,t),n&&r.set(`date`,n),A.value=(await D.get(`/appointments/find?${r.toString()}`)).appointments||[],M({count:A.value.length,appointments:A.value.map(e=>({orderId:e.orderId,reservationId:e.reservationId,customerName:`${e.customerInfo?.firstName||``} ${e.customerInfo?.lastName||``}`.trim(),email:e.customerInfo?.email,date:e.date,startTime:e.startTime,endTime:e.endTime,spots:e.spots,status:e.reservationStatus||e.status,price:e.reservationPrice}))})}catch(e){k.value=e?.data?.statusMessage||e?.message||`Failed to find appointment`,M(`Error finding appointment: ${k.value}`)}finally{O.value=!1}}(0,e.onMounted)(()=>{j()});function M(e){C.status!==`completed`&&w(`submit`,e)}let N=e=>{switch(e){case`approved`:return`text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20`;case`needs_approval`:return`text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20`;case`rejected`:case`cancelled`:return`text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20`;default:return`text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20`}},P=e=>{switch(e){case`approved`:return`Approved`;case`needs_approval`:return`Needs Approval`;case`rejected`:return`Rejected`;case`cancelled`:return`Cancelled`;case`confirmed`:return`Confirmed`;default:return e||`Pending`}},F=e=>e==null?``:`€${e.toFixed(2)}`;return(b,x)=>{let S=(0,e.resolveComponent)(`NuxtLink`);return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,n,[(0,e.unref)(O)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,r,[(0,e.createVNode)((0,e.unref)(t.Loader2),{class:`size-4 animate-spin text-muted-foreground`}),x[0]||=(0,e.createElementVNode)(`span`,{class:`text-xs text-muted-foreground`},`Searching appointments…`,-1)])):(0,e.unref)(k)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,(0,e.toDisplayString)((0,e.unref)(k)),1)):(0,e.unref)(A).length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,a,[(0,e.createVNode)((0,e.unref)(t.CalendarDays),{class:`size-8 text-muted-foreground mx-auto mb-2`}),x[1]||=(0,e.createElementVNode)(`p`,{class:`text-sm text-muted-foreground`},`No appointments found for the given criteria.`,-1)])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,o,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(A),n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n.reservationId||n.orderId,class:`rounded-xl border bg-background p-3 space-y-3`},[(0,e.createElementVNode)(`div`,s,[(0,e.createElementVNode)(`div`,c,[(0,e.createVNode)((0,e.unref)(t.CalendarDays),{class:`size-5 text-primary`})]),(0,e.createElementVNode)(`div`,l,[(0,e.createElementVNode)(`p`,u,(0,e.toDisplayString)(n.customerInfo?.firstName)+` `+(0,e.toDisplayString)(n.customerInfo?.lastName),1),(0,e.createElementVNode)(`div`,d,[(0,e.createElementVNode)(`span`,{class:(0,e.normalizeClass)([`text-[10px] font-medium px-1.5 py-0.5 rounded-full uppercase`,N(n.reservationStatus||n.status)])},(0,e.toDisplayString)(P(n.reservationStatus||n.status)),3),n.reservationPrice==null?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,f,(0,e.toDisplayString)(F(n.reservationPrice)),1))])])]),(0,e.createElementVNode)(`div`,p,[(0,e.createElementVNode)(`div`,m,[(0,e.createVNode)((0,e.unref)(t.Mail),{class:`size-3`}),(0,e.createElementVNode)(`span`,h,(0,e.toDisplayString)(n.customerInfo?.email||`—`),1)]),(0,e.createElementVNode)(`div`,g,[(0,e.createVNode)((0,e.unref)(t.CalendarDays),{class:`size-3`}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.date),1)]),(0,e.createElementVNode)(`div`,_,[(0,e.createVNode)((0,e.unref)(t.Clock),{class:`size-3`}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.startTime)+` – `+(0,e.toDisplayString)(n.endTime),1)]),(0,e.createElementVNode)(`div`,v,[(0,e.createVNode)((0,e.unref)(t.Users),{class:`size-3`}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.spots||1)+` `+(0,e.toDisplayString)((n.spots||1)===1?`spot`:`spots`),1)])]),(0,e.createVNode)(S,{to:`/projects/${(0,e.unref)(E)}/modules/${y.instanceId}`,class:`inline-flex items-center gap-1.5 text-xs text-primary hover:underline`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.ExternalLink),{class:`size-3`}),x[2]||=(0,e.createTextVNode)(` Open in agenda `,-1)]),_:1},8,[`to`])]))),128))]))])}}});exports.default=y;
@@ -0,0 +1,111 @@
1
+ import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, createVNode as o, defineComponent as s, normalizeClass as c, onMounted as l, openBlock as u, ref as d, renderList as f, resolveComponent as p, toDisplayString as m, unref as h, withCtx as g } from "vue";
2
+ import { CalendarDays as _, Clock as v, ExternalLink as y, Loader2 as b, Mail as x, Users as S } from "@lucide/vue";
3
+ //#region src/appointments/chat-components/AppointmentDetailsCard.vue?vue&type=script&setup=true&lang.ts
4
+ var C = { class: "w-full" }, w = {
5
+ key: 0,
6
+ class: "flex items-center gap-2 py-3"
7
+ }, T = {
8
+ key: 1,
9
+ class: "text-xs text-destructive py-2"
10
+ }, E = {
11
+ key: 2,
12
+ class: "rounded-xl border bg-background p-4 text-center"
13
+ }, D = {
14
+ key: 3,
15
+ class: "space-y-3"
16
+ }, O = { class: "flex items-start gap-3" }, k = { class: "shrink-0 size-10 rounded-lg bg-primary/10 flex items-center justify-center" }, A = { class: "flex-1 min-w-0" }, j = { class: "text-sm font-semibold truncate" }, M = { class: "flex items-center gap-2 mt-1 flex-wrap" }, N = {
17
+ key: 0,
18
+ class: "text-xs font-medium"
19
+ }, P = { class: "grid grid-cols-2 gap-2 text-xs text-muted-foreground" }, F = { class: "flex items-center gap-1.5" }, ee = { class: "truncate" }, I = { class: "flex items-center gap-1.5" }, L = { class: "flex items-center gap-1.5" }, R = { class: "flex items-center gap-1.5" }, z = /* @__PURE__ */ s({
20
+ __name: "AppointmentDetailsCard",
21
+ props: {
22
+ toolName: {},
23
+ instanceId: {},
24
+ instanceName: {},
25
+ moduleType: {},
26
+ resolvedArgs: {},
27
+ status: {}
28
+ },
29
+ emits: ["submit"],
30
+ setup(s, { emit: z }) {
31
+ let { $useRoute: B, $useModuleApi: V } = useNuxtApp(), H = s, U = z, W = B(), G = t(() => W.params.slug), K = V(H.instanceId), q = d(!0), J = d(null), Y = d([]);
32
+ async function X() {
33
+ let { name: e, email: t, date: n } = H.resolvedArgs || {};
34
+ if (!n) {
35
+ J.value = "No date provided", q.value = !1;
36
+ return;
37
+ }
38
+ q.value = !0, J.value = null;
39
+ try {
40
+ let r = new URLSearchParams();
41
+ e && r.set("name", e), t && r.set("email", t), n && r.set("date", n), Y.value = (await K.get(`/appointments/find?${r.toString()}`)).appointments || [], Z({
42
+ count: Y.value.length,
43
+ appointments: Y.value.map((e) => ({
44
+ orderId: e.orderId,
45
+ reservationId: e.reservationId,
46
+ customerName: `${e.customerInfo?.firstName || ""} ${e.customerInfo?.lastName || ""}`.trim(),
47
+ email: e.customerInfo?.email,
48
+ date: e.date,
49
+ startTime: e.startTime,
50
+ endTime: e.endTime,
51
+ spots: e.spots,
52
+ status: e.reservationStatus || e.status,
53
+ price: e.reservationPrice
54
+ }))
55
+ });
56
+ } catch (e) {
57
+ J.value = e?.data?.statusMessage || e?.message || "Failed to find appointment", Z(`Error finding appointment: ${J.value}`);
58
+ } finally {
59
+ q.value = !1;
60
+ }
61
+ }
62
+ l(() => {
63
+ X();
64
+ });
65
+ function Z(e) {
66
+ H.status !== "completed" && U("submit", e);
67
+ }
68
+ let Q = (e) => {
69
+ switch (e) {
70
+ case "approved": return "text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20";
71
+ case "needs_approval": return "text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20";
72
+ case "rejected":
73
+ case "cancelled": return "text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20";
74
+ default: return "text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20";
75
+ }
76
+ }, $ = (e) => {
77
+ switch (e) {
78
+ case "approved": return "Approved";
79
+ case "needs_approval": return "Needs Approval";
80
+ case "rejected": return "Rejected";
81
+ case "cancelled": return "Cancelled";
82
+ case "confirmed": return "Confirmed";
83
+ default: return e || "Pending";
84
+ }
85
+ }, te = (e) => e == null ? "" : `€${e.toFixed(2)}`;
86
+ return (t, l) => {
87
+ let d = p("NuxtLink");
88
+ return u(), r("div", C, [h(q) ? (u(), r("div", w, [o(h(b), { class: "size-4 animate-spin text-muted-foreground" }), l[0] ||= i("span", { class: "text-xs text-muted-foreground" }, "Searching appointments…", -1)])) : h(J) ? (u(), r("div", T, m(h(J)), 1)) : h(Y).length === 0 ? (u(), r("div", E, [o(h(_), { class: "size-8 text-muted-foreground mx-auto mb-2" }), l[1] ||= i("p", { class: "text-sm text-muted-foreground" }, "No appointments found for the given criteria.", -1)])) : (u(), r("div", D, [(u(!0), r(e, null, f(h(Y), (e) => (u(), r("div", {
89
+ key: e.reservationId || e.orderId,
90
+ class: "rounded-xl border bg-background p-3 space-y-3"
91
+ }, [
92
+ i("div", O, [i("div", k, [o(h(_), { class: "size-5 text-primary" })]), i("div", A, [i("p", j, m(e.customerInfo?.firstName) + " " + m(e.customerInfo?.lastName), 1), i("div", M, [i("span", { class: c(["text-[10px] font-medium px-1.5 py-0.5 rounded-full uppercase", Q(e.reservationStatus || e.status)]) }, m($(e.reservationStatus || e.status)), 3), e.reservationPrice == null ? n("", !0) : (u(), r("span", N, m(te(e.reservationPrice)), 1))])])]),
93
+ i("div", P, [
94
+ i("div", F, [o(h(x), { class: "size-3" }), i("span", ee, m(e.customerInfo?.email || "—"), 1)]),
95
+ i("div", I, [o(h(_), { class: "size-3" }), i("span", null, m(e.date), 1)]),
96
+ i("div", L, [o(h(v), { class: "size-3" }), i("span", null, m(e.startTime) + " – " + m(e.endTime), 1)]),
97
+ i("div", R, [o(h(S), { class: "size-3" }), i("span", null, m(e.spots || 1) + " " + m((e.spots || 1) === 1 ? "spot" : "spots"), 1)])
98
+ ]),
99
+ o(d, {
100
+ to: `/projects/${h(G)}/modules/${s.instanceId}`,
101
+ class: "inline-flex items-center gap-1.5 text-xs text-primary hover:underline"
102
+ }, {
103
+ default: g(() => [o(h(y), { class: "size-3" }), l[2] ||= a(" Open in agenda ", -1)]),
104
+ _: 1
105
+ }, 8, ["to"])
106
+ ]))), 128))]))]);
107
+ };
108
+ }
109
+ });
110
+ //#endregion
111
+ export { z as default };