@oneclick.dev/cms-core-modules 0.0.106 → 0.0.108

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 (576) 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-CfWHjjg8.mjs +394 -0
  12. package/dist/Audience-Cj4TyauW.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/index.d.ts +9 -12
  158. package/dist/src/appointments/metadata.d.ts +1 -1
  159. package/dist/src/appointments/routes.d.ts +3 -6
  160. package/dist/src/contentManager/components/content-editor/tiptap-extensions/LockBlocks.d.ts +15 -0
  161. package/dist/src/contentManager/components/content-editor/tiptap-extensions/TrailingNodeInContainers.d.ts +4 -1
  162. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +12 -132
  163. package/dist/src/contentManager/index.d.ts +5 -14
  164. package/dist/src/contentManager/metadata.d.ts +1 -1
  165. package/dist/src/contentManager/routes.d.ts +3 -12
  166. package/dist/src/custom/index.d.ts +2 -2
  167. package/dist/src/custom/routes.d.ts +1 -1
  168. package/dist/src/googleAnalytics/index.d.ts +10 -10
  169. package/dist/src/googleAnalytics/routes.d.ts +1 -1
  170. package/dist/src/mailTemplates/index.d.ts +3 -3
  171. package/dist/src/mailTemplates/metadata.d.ts +1 -1
  172. package/dist/src/mailTemplates/routes.d.ts +1 -1
  173. package/dist/src/productCollections/index.d.ts +3 -3
  174. package/dist/src/productCollections/metadata.d.ts +1 -1
  175. package/dist/src/productCollections/routes.d.ts +1 -1
  176. package/dist/src/products/index.d.ts +4 -4
  177. package/dist/src/products/metadata.d.ts +1 -1
  178. package/dist/src/products/routes.d.ts +1 -1
  179. package/dist/src/promoCodes/index.d.ts +3 -3
  180. package/dist/src/promoCodes/metadata.d.ts +1 -1
  181. package/dist/src/promoCodes/routes.d.ts +1 -1
  182. package/dist/src/push-notifications/index.d.ts +3 -3
  183. package/dist/src/push-notifications/metadata.d.ts +1 -1
  184. package/dist/src/push-notifications/routes.d.ts +1 -1
  185. package/dist/src/shippingOptions/index.d.ts +3 -3
  186. package/dist/src/shippingOptions/metadata.d.ts +1 -1
  187. package/dist/src/shippingOptions/routes.d.ts +1 -1
  188. package/dist/src/table/flow-builder-extensions/row-item.d.ts +3 -17
  189. package/dist/src/table/index.d.ts +2 -2
  190. package/dist/src/table/routes.d.ts +1 -1
  191. package/dist/src/types/index.d.ts +6 -0
  192. package/dist/src/vue-shim.d.ts +7 -0
  193. package/dist/table-DWw0fs3S.js +1 -0
  194. package/dist/table-LXt5DQOL.mjs +23 -0
  195. package/dist/utils-CVIHqQsU.js +3 -0
  196. package/dist/utils-h3owcMtS.mjs +37 -0
  197. package/dist/vee-validate-zod-BmXMJo8W.js +1 -0
  198. package/dist/vee-validate-zod-D9dZzbWZ.mjs +4985 -0
  199. package/dist/xy-container-CuQSwrtB.mjs +3180 -0
  200. package/dist/xy-container-_6YpscZh.js +158 -0
  201. package/package.json +55 -55
  202. package/dist/Acquisition-B2pM5vSp.mjs +0 -400
  203. package/dist/Acquisition-Dt2rREU8.js +0 -1
  204. package/dist/AgendaOpeningHoursCard-B7ROIPWw.js +0 -1
  205. package/dist/AgendaOpeningHoursCard-Cp4wxUeK.mjs +0 -172
  206. package/dist/AppointmentDetailsCard-33WpATpV.mjs +0 -161
  207. package/dist/AppointmentDetailsCard-DpLM5IrB.js +0 -1
  208. package/dist/AppointmentEditor-BeOtYV6u.mjs +0 -196
  209. package/dist/AppointmentEditor-CaTfbkIf.js +0 -1
  210. package/dist/AppointmentListTable-DZJNmTMb.mjs +0 -177
  211. package/dist/AppointmentListTable-Dieu9US_.js +0 -1
  212. package/dist/Audience-Bs7b0TNm.js +0 -1
  213. package/dist/Audience-VLnUsQvW.mjs +0 -489
  214. package/dist/Components-C83O-xlF.mjs +0 -623
  215. package/dist/Components-DXbx0RLV.js +0 -1
  216. package/dist/Content-BHr_rPVY.js +0 -1
  217. package/dist/Content-CYOZKvWK.mjs +0 -358
  218. package/dist/ContentEditor-BNLEv-qJ.mjs +0 -30697
  219. package/dist/ContentEditor-BUvvqfG1.js +0 -462
  220. package/dist/CountryBreakdownCard-D7BK3nRD.js +0 -1
  221. package/dist/CountryBreakdownCard-DVxNz2DJ.mjs +0 -196
  222. package/dist/Create-89z41K73.js +0 -1
  223. package/dist/Create-Cn_Eufga.mjs +0 -1251
  224. package/dist/DateFormatter-Bw-87W31.mjs +0 -734
  225. package/dist/DateFormatter-CYAD4GBN.js +0 -1
  226. package/dist/Detail-Byk781b4.mjs +0 -26
  227. package/dist/Detail-C1Blq61w.mjs +0 -585
  228. package/dist/Detail-C857g62L.js +0 -1
  229. package/dist/Detail-C8wQiDcv.js +0 -1
  230. package/dist/Detail-CPqug27l.js +0 -1
  231. package/dist/Detail-CjuhjPby.js +0 -1
  232. package/dist/Detail-CtItxMX4.mjs +0 -649
  233. package/dist/Detail-CujdFApD.mjs +0 -379
  234. package/dist/Detail-Dnpnmy4-.mjs +0 -3477
  235. package/dist/Detail-mvSGbnFU.js +0 -1
  236. package/dist/DeviceBreakdownCard-DRhQ9ufG.js +0 -1
  237. package/dist/DeviceBreakdownCard-W1frLe0L.mjs +0 -159
  238. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-DWMqQvHl.mjs +0 -76
  239. package/dist/EditLayout.vue_vue_type_script_setup_true_lang-kpjbVSXg.js +0 -1
  240. package/dist/Entries-BdhUyJR5.mjs +0 -728
  241. package/dist/Entries-CEXM_SkO.js +0 -1
  242. package/dist/Find-B24ZEhYM.mjs +0 -229
  243. package/dist/Find-D4Qa45qC.js +0 -1
  244. package/dist/GlobalStyling-C9VthHWK.mjs +0 -1588
  245. package/dist/GlobalStyling-CnSlXkZc.js +0 -25
  246. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-Ceoje52V.js +0 -1
  247. package/dist/NewReservationDialog.vue_vue_type_script_setup_true_lang-DMGcRmm-.mjs +0 -1255
  248. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-COrK1j0S.js +0 -1
  249. package/dist/OrderDetailDialog.vue_vue_type_script_setup_true_lang-Vb3q8EVv.mjs +0 -330
  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-BbvfH1u-.js +0 -1
  254. package/dist/Overview-Bn1Xx3_j.js +0 -1
  255. package/dist/Overview-CIa1E-HH.mjs +0 -178
  256. package/dist/Overview-DAxCu9XC.js +0 -1
  257. package/dist/Overview-DC9io1bk.js +0 -1
  258. package/dist/Overview-Di84CsR5.mjs +0 -476
  259. package/dist/Overview-Su8ZUbMs.mjs +0 -26
  260. package/dist/Overview-T-lsy3UZ.js +0 -1
  261. package/dist/Overview-UoZHUMUz.js +0 -1
  262. package/dist/Overview-ejh4vUMT.mjs +0 -567
  263. package/dist/Overview-lWAyyenp.mjs +0 -632
  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-CuwREvXD.js +0 -349
  271. package/dist/ReservationDetailDialog.vue_vue_type_script_setup_true_lang-GYNZ_yhD.mjs +0 -3077
  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-DsbVdd2l.mjs +0 -615
  277. package/dist/SeoHealth-az1YuNF2.js +0 -1
  278. package/dist/TableView-Bm6HaRHm.mjs +0 -6143
  279. package/dist/TableView-DQW0A1oG.js +0 -4
  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-IOqtALWf.js +0 -1
  293. package/dist/agenda-neyeLWv-.mjs +0 -1165
  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-A2kp8Isi.js +0 -75
  309. package/dist/index-B5aBwdxY.js +0 -54
  310. package/dist/index-BRdCrvcz.mjs +0 -1443
  311. package/dist/index-BWDwEd8D.mjs +0 -24
  312. package/dist/index-BfBBm9uY.mjs +0 -24
  313. package/dist/index-BiT55eU0.js +0 -58
  314. package/dist/index-Bkq58CeQ.mjs +0 -22
  315. package/dist/index-Bvxc5xv_.mjs +0 -3843
  316. package/dist/index-CJQQBRLY.js +0 -1
  317. package/dist/index-CQkOH2_3.mjs +0 -24
  318. package/dist/index-CSxYBeVA.js +0 -1
  319. package/dist/index-CU-tbS5W.mjs +0 -24
  320. package/dist/index-CZn2nDLv.mjs +0 -34
  321. package/dist/index-CkiNvRzs.js +0 -1
  322. package/dist/index-Co4ON2Di.js +0 -1
  323. package/dist/index-Cpnn_Pxd.mjs +0 -24
  324. package/dist/index-CrgzoTyR.mjs +0 -110
  325. package/dist/index-CsVeM3PA.mjs +0 -24
  326. package/dist/index-CwqrAU-H.js +0 -1
  327. package/dist/index-CxETuRsG.js +0 -1
  328. package/dist/index-Cz-baGax.js +0 -1
  329. package/dist/index-DFQGVHTs.js +0 -1
  330. package/dist/index-DPd3waTN.js +0 -1
  331. package/dist/index-DRqJOqUR.mjs +0 -3484
  332. package/dist/index-DjWuIBxh.js +0 -1
  333. package/dist/index-Dnn2SCSl.js +0 -1
  334. package/dist/index-Dpl9sU6a.mjs +0 -12
  335. package/dist/index-DrXxXB2F.mjs +0 -138
  336. package/dist/index-G7cIlnGN.js +0 -158
  337. package/dist/index-MYWjg0zi.mjs +0 -176
  338. package/dist/index-R2oUDsjx.js +0 -1
  339. package/dist/index-RLz1QPrf.mjs +0 -203
  340. package/dist/index-UtjLbLw-.js +0 -1
  341. package/dist/index-X6LV64jK.mjs +0 -442
  342. package/dist/index-cOnxXTbF.mjs +0 -24
  343. package/dist/index-hlylYYgy.mjs +0 -24
  344. package/dist/index-ijdf0d9-.js +0 -1
  345. package/dist/index-uOkqO74I.mjs +0 -2940
  346. package/dist/index-unsDfNYv.mjs +0 -1187
  347. package/dist/index-vHmvbEwa.js +0 -35
  348. package/dist/interpolation-CHn59tIC.js +0 -1
  349. package/dist/interpolation-w7IRDJwK.mjs +0 -180
  350. package/dist/orders-C65SlpJy.mjs +0 -618
  351. package/dist/orders-XVzWAgG1.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 -136
  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/OrderDetailDialog.vue.d.ts +0 -55
  375. package/dist/src/appointments/components/edit/EventDialog/RejectReservationDialog.vue.d.ts +0 -8
  376. package/dist/src/appointments/components/edit/EventDialog/ReservationDetailDialog.vue.d.ts +0 -87
  377. package/dist/src/appointments/components/edit/EventDialog/TimelineChart.vue.d.ts +0 -24
  378. package/dist/src/appointments/components/edit/EventDialog/TransferReservationDialog.vue.d.ts +0 -4
  379. package/dist/src/appointments/components/edit/EventTimeIndicator.vue.d.ts +0 -12
  380. package/dist/src/appointments/components/edit/EventTimeline.vue.d.ts +0 -48
  381. package/dist/src/appointments/components/edit/EventView.vue.d.ts +0 -9
  382. package/dist/src/appointments/components/edit/ExceptionDialog.vue.d.ts +0 -29
  383. package/dist/src/appointments/components/edit/MetadataSchemaEditorDialog.vue.d.ts +0 -12
  384. package/dist/src/appointments/components/edit/NewReservationDialog/CustomerInformation.vue.d.ts +0 -10
  385. package/dist/src/appointments/components/edit/NewReservationDialog/NewReservationDialog.vue.d.ts +0 -26
  386. package/dist/src/appointments/components/edit/NewReservationDialog/QuickReservationAdder.vue.d.ts +0 -26
  387. package/dist/src/appointments/components/edit/NewReservationDialog/ReservationLines.vue.d.ts +0 -31
  388. package/dist/src/appointments/components/edit/OrderMetadataDisplay.vue.d.ts +0 -21
  389. package/dist/src/appointments/components/edit/PaymentAddons/Addon.vue.d.ts +0 -22
  390. package/dist/src/appointments/components/edit/PaymentAddons/AddonList.vue.d.ts +0 -5
  391. package/dist/src/appointments/components/edit/PaymentAddons/index.vue.d.ts +0 -15
  392. package/dist/src/appointments/components/edit/ResourceEditorDialog.vue.d.ts +0 -13
  393. package/dist/src/appointments/components/edit/dashboard/Timeline.vue.d.ts +0 -36
  394. package/dist/src/appointments/components/edit/dashboard/timeline/ResourceSelector.vue.d.ts +0 -50
  395. package/dist/src/appointments/index.vue.d.ts +0 -22
  396. package/dist/src/appointments/pages/Overview.vue.d.ts +0 -4
  397. package/dist/src/appointments/pages/create/index.vue.d.ts +0 -2
  398. package/dist/src/appointments/pages/create/regular.vue.d.ts +0 -6
  399. package/dist/src/appointments/pages/edit/agenda.vue.d.ts +0 -4
  400. package/dist/src/appointments/pages/edit/availability.vue.d.ts +0 -2
  401. package/dist/src/appointments/pages/edit/booking-data.vue.d.ts +0 -65
  402. package/dist/src/appointments/pages/edit/index.vue.d.ts +0 -2
  403. package/dist/src/appointments/pages/edit/payment.vue.d.ts +0 -2
  404. package/dist/src/appointments/pages/edit/resources.vue.d.ts +0 -28
  405. package/dist/src/contentManager/components/components/ComponentDialog.vue.d.ts +0 -12
  406. package/dist/src/contentManager/components/components/ComponentGridItem.vue.d.ts +0 -16
  407. package/dist/src/contentManager/components/content-editor/ApiDocs.vue.d.ts +0 -2
  408. package/dist/src/contentManager/components/content-editor/ContentLayout.vue.d.ts +0 -49
  409. package/dist/src/contentManager/components/content-editor/ContentSettings.vue.d.ts +0 -24
  410. package/dist/src/contentManager/components/content-editor/ContentStructuredContentSections.vue.d.ts +0 -4
  411. package/dist/src/contentManager/components/content-editor/Header.vue.d.ts +0 -64
  412. package/dist/src/contentManager/components/content-editor/LivePreviewWrapper.vue.d.ts +0 -53
  413. package/dist/src/contentManager/components/content-editor/Locales.vue.d.ts +0 -44
  414. package/dist/src/contentManager/components/content-editor/NewSectionDialog.vue.d.ts +0 -21
  415. package/dist/src/contentManager/components/content-editor/PageSettings.vue.d.ts +0 -2
  416. package/dist/src/contentManager/components/content-editor/SEO.vue.d.ts +0 -14
  417. package/dist/src/contentManager/components/content-editor/SidebarSectionWrapper.vue.d.ts +0 -39
  418. package/dist/src/contentManager/components/content-editor/Status.vue.d.ts +0 -2
  419. package/dist/src/contentManager/components/content-editor/Versions.vue.d.ts +0 -63
  420. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Button.vue.d.ts +0 -94
  421. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Card.vue.d.ts +0 -92
  422. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Column.vue.d.ts +0 -92
  423. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Container.vue.d.ts +0 -92
  424. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Divider.vue.d.ts +0 -92
  425. package/dist/src/contentManager/components/content-editor/tiptap-extensions/EmptySpace.vue.d.ts +0 -94
  426. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Heading.vue.d.ts +0 -92
  427. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Image.vue.d.ts +0 -92
  428. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Map.vue.d.ts +0 -92
  429. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Paragraph.vue.d.ts +0 -92
  430. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Row.vue.d.ts +0 -115
  431. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.vue.d.ts +0 -115
  432. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Video.vue.d.ts +0 -92
  433. package/dist/src/contentManager/components/content-editor/tiptap-extensions/extension-details/DetailsNodeView.vue.d.ts +0 -92
  434. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/NodeLabel.vue.d.ts +0 -108
  435. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/ResizeHandlers.vue.d.ts +0 -20
  436. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/TopMarginDragger.vue.d.ts +0 -104
  437. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuClassBuilder.vue.d.ts +0 -19
  438. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuLinkBuilder.vue.d.ts +0 -19
  439. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuToggleButton.vue.d.ts +0 -29
  440. package/dist/src/contentManager/components/content-editor/tiptap-menus/DefaultBubbleMenu.vue.d.ts +0 -13
  441. package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +0 -19
  442. package/dist/src/contentManager/components/content-editor/tiptap-menus/EmojiMenu.vue.d.ts +0 -8
  443. package/dist/src/contentManager/components/content-editor/tiptap-menus/NewNodeView.vue.d.ts +0 -47
  444. package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenu.vue.d.ts +0 -6
  445. package/dist/src/contentManager/components/content-editor/tiptap-menus/SlashMenuButton.vue.d.ts +0 -17
  446. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ButtonMenu.vue.d.ts +0 -13
  447. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/CardMenu.vue.d.ts +0 -13
  448. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ColumnMenu.vue.d.ts +0 -13
  449. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/DividerMenu.vue.d.ts +0 -13
  450. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/EmptySpaceMenu.vue.d.ts +0 -13
  451. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/HeadingMenu.vue.d.ts +0 -13
  452. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/ImageMenu.vue.d.ts +0 -13
  453. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/MapMenu.vue.d.ts +0 -13
  454. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/RowMenu.vue.d.ts +0 -13
  455. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/StackMenu.vue.d.ts +0 -13
  456. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/TextMenu.vue.d.ts +0 -13
  457. package/dist/src/contentManager/components/content-editor/tiptap-menus/element-editor-views/VideoMenu.vue.d.ts +0 -13
  458. package/dist/src/contentManager/components/overview/CollectionDialog.vue.d.ts +0 -30
  459. package/dist/src/contentManager/components/overview/CollectionsGridView.vue.d.ts +0 -18
  460. package/dist/src/contentManager/components/overview/ContentEntryContextMenu.vue.d.ts +0 -27
  461. package/dist/src/contentManager/components/overview/FilterPopover.vue.d.ts +0 -2
  462. package/dist/src/contentManager/components/overview/ListView.vue.d.ts +0 -12
  463. package/dist/src/contentManager/components/styling/ButtonStyleDialog.vue.d.ts +0 -24
  464. package/dist/src/contentManager/components/styling/CardStyleDialog.vue.d.ts +0 -24
  465. package/dist/src/contentManager/components/styling/SectionStyleDialog.vue.d.ts +0 -24
  466. package/dist/src/contentManager/index.vue.d.ts +0 -22
  467. package/dist/src/contentManager/pages/Components.vue.d.ts +0 -27
  468. package/dist/src/contentManager/pages/ContentEditor.vue.d.ts +0 -14
  469. package/dist/src/contentManager/pages/Entries.vue.d.ts +0 -16
  470. package/dist/src/contentManager/pages/GlobalStyling.vue.d.ts +0 -117
  471. package/dist/src/contentManager/pages/Overview.vue.d.ts +0 -57
  472. package/dist/src/custom/index.vue.d.ts +0 -2
  473. package/dist/src/custom/pages/View.vue.d.ts +0 -2
  474. package/dist/src/googleAnalytics/chat-components/CountryBreakdownCard.vue.d.ts +0 -14
  475. package/dist/src/googleAnalytics/chat-components/DeviceBreakdownCard.vue.d.ts +0 -14
  476. package/dist/src/googleAnalytics/chat-components/PeakHoursCard.vue.d.ts +0 -14
  477. package/dist/src/googleAnalytics/chat-components/RealtimeCard.vue.d.ts +0 -14
  478. package/dist/src/googleAnalytics/chat-components/SearchTermsCard.vue.d.ts +0 -14
  479. package/dist/src/googleAnalytics/chat-components/TopPagesCard.vue.d.ts +0 -14
  480. package/dist/src/googleAnalytics/chat-components/TrafficSourcesCard.vue.d.ts +0 -14
  481. package/dist/src/googleAnalytics/chat-components/VisitorStatsCard.vue.d.ts +0 -14
  482. package/dist/src/googleAnalytics/components/seo-health/SeoClicksChart.vue.d.ts +0 -5
  483. package/dist/src/googleAnalytics/components/seo-health/SeoImpressionsChart.vue.d.ts +0 -5
  484. package/dist/src/googleAnalytics/components/seo-health/SeoKeywordsTab.vue.d.ts +0 -5
  485. package/dist/src/googleAnalytics/components/seo-health/SeoKpiCards.vue.d.ts +0 -10
  486. package/dist/src/googleAnalytics/components/seo-health/SeoMappingTab.vue.d.ts +0 -5
  487. package/dist/src/googleAnalytics/components/seo-health/SeoPagesTab.vue.d.ts +0 -5
  488. package/dist/src/googleAnalytics/components/seo-health/SeoRankingDistribution.vue.d.ts +0 -5
  489. package/dist/src/googleAnalytics/index.vue.d.ts +0 -2
  490. package/dist/src/googleAnalytics/pages/Acquisition.vue.d.ts +0 -2
  491. package/dist/src/googleAnalytics/pages/Audience.vue.d.ts +0 -2
  492. package/dist/src/googleAnalytics/pages/Content.vue.d.ts +0 -2
  493. package/dist/src/googleAnalytics/pages/Overview.vue.d.ts +0 -2
  494. package/dist/src/googleAnalytics/pages/SeoHealth.vue.d.ts +0 -2
  495. package/dist/src/mailTemplates/components/TemplateList.vue.d.ts +0 -2
  496. package/dist/src/mailTemplates/index.vue.d.ts +0 -22
  497. package/dist/src/mailTemplates/pages/Detail.vue.d.ts +0 -14
  498. package/dist/src/mailTemplates/pages/Overview.vue.d.ts +0 -14
  499. package/dist/src/productCollections/components/detail/Main.vue.d.ts +0 -2
  500. package/dist/src/productCollections/components/detail/SEO.vue.d.ts +0 -2
  501. package/dist/src/productCollections/components/detail/Status.vue.d.ts +0 -2
  502. package/dist/src/productCollections/components/overview/ListView.vue.d.ts +0 -12
  503. package/dist/src/productCollections/index.vue.d.ts +0 -22
  504. package/dist/src/productCollections/pages/Detail.vue.d.ts +0 -14
  505. package/dist/src/productCollections/pages/Overview.vue.d.ts +0 -16
  506. package/dist/src/products/chat-components/ProductDetailsCard.vue.d.ts +0 -14
  507. package/dist/src/products/components/detail/Collections.vue.d.ts +0 -14
  508. package/dist/src/products/components/detail/Inventory.vue.d.ts +0 -2
  509. package/dist/src/products/components/detail/Main.vue.d.ts +0 -2
  510. package/dist/src/products/components/detail/NewSection.vue.d.ts +0 -2
  511. package/dist/src/products/components/detail/Price.vue.d.ts +0 -2
  512. package/dist/src/products/components/detail/SEO.vue.d.ts +0 -2
  513. package/dist/src/products/components/detail/Shipping.vue.d.ts +0 -2
  514. package/dist/src/products/components/detail/Status.vue.d.ts +0 -2
  515. package/dist/src/products/components/detail/price/UnitPriceDialog.vue.d.ts +0 -17
  516. package/dist/src/products/components/detail/variants/Option.vue.d.ts +0 -33
  517. package/dist/src/products/components/detail/variants/VariantList.vue.d.ts +0 -38
  518. package/dist/src/products/components/overview/FilterPopover.vue.d.ts +0 -2
  519. package/dist/src/products/components/overview/GridView.vue.d.ts +0 -12
  520. package/dist/src/products/components/overview/ListView.vue.d.ts +0 -12
  521. package/dist/src/products/components/overview/ProductContextMenu.vue.d.ts +0 -27
  522. package/dist/src/products/index.vue.d.ts +0 -22
  523. package/dist/src/products/pages/Detail.vue.d.ts +0 -14
  524. package/dist/src/products/pages/Overview.vue.d.ts +0 -16
  525. package/dist/src/promoCodes/components/create/DateRange.vue.d.ts +0 -2
  526. package/dist/src/promoCodes/components/create/MultiCodes.vue.d.ts +0 -2
  527. package/dist/src/promoCodes/components/create/Note.vue.d.ts +0 -2
  528. package/dist/src/promoCodes/components/create/SingleCode.vue.d.ts +0 -2
  529. package/dist/src/promoCodes/components/create/TypeAndValue/TypeDetailDialog.vue.d.ts +0 -6
  530. package/dist/src/promoCodes/components/create/TypeAndValue/TypeManageDialog.vue.d.ts +0 -18
  531. package/dist/src/promoCodes/components/create/TypeAndValue/index.vue.d.ts +0 -2
  532. package/dist/src/promoCodes/index.vue.d.ts +0 -22
  533. package/dist/src/promoCodes/pages/Create.vue.d.ts +0 -16
  534. package/dist/src/promoCodes/pages/Detail.vue.d.ts +0 -14
  535. package/dist/src/promoCodes/pages/Find.vue.d.ts +0 -16
  536. package/dist/src/push-notifications/components/PreviewAndroid.vue.d.ts +0 -28
  537. package/dist/src/push-notifications/components/PreviewIPhone.vue.d.ts +0 -28
  538. package/dist/src/push-notifications/components/PushPreview.vue.d.ts +0 -28
  539. package/dist/src/push-notifications/index.vue.d.ts +0 -22
  540. package/dist/src/push-notifications/pages/SendPush.vue.d.ts +0 -14
  541. package/dist/src/shared/BrandLogo.vue.d.ts +0 -12
  542. package/dist/src/shared/DrawerToggle.vue.d.ts +0 -60
  543. package/dist/src/shared/VerticalToggle.vue.d.ts +0 -60
  544. package/dist/src/shippingOptions/components/detail/Condition.vue.d.ts +0 -2
  545. package/dist/src/shippingOptions/components/detail/Countries.vue.d.ts +0 -2
  546. package/dist/src/shippingOptions/components/detail/Example.vue.d.ts +0 -2
  547. package/dist/src/shippingOptions/components/detail/Main.vue.d.ts +0 -2
  548. package/dist/src/shippingOptions/components/overview/ListView.vue.d.ts +0 -12
  549. package/dist/src/shippingOptions/index.vue.d.ts +0 -22
  550. package/dist/src/shippingOptions/pages/Detail.vue.d.ts +0 -14
  551. package/dist/src/shippingOptions/pages/Overview.vue.d.ts +0 -16
  552. package/dist/src/table/components/DataTable.vue.d.ts +0 -18
  553. package/dist/src/table/components/DataTableAction.vue.d.ts +0 -14
  554. package/dist/src/table/components/DataTableMobileRowActionDrawer.vue.d.ts +0 -4
  555. package/dist/src/table/components/DataTablePagination.vue.d.ts +0 -6
  556. package/dist/src/table/components/actions/ActionDialog.vue.d.ts +0 -19
  557. package/dist/src/table/components/actions/CtaActionDialog.vue.d.ts +0 -4
  558. package/dist/src/table/components/columns/ColumnDropdown.vue.d.ts +0 -2
  559. package/dist/src/table/components/columns/ColumnEditorDialog.vue.d.ts +0 -34
  560. package/dist/src/table/components/columns/DialogTableColumnItem.vue.d.ts +0 -12
  561. package/dist/src/table/components/date-range-filter/DateRangeFilter.vue.d.ts +0 -2
  562. package/dist/src/table/components/date-range-filter/DateRangeSettingsDialog.vue.d.ts +0 -27
  563. package/dist/src/table/components/filters/FilterDialog.vue.d.ts +0 -12
  564. package/dist/src/table/components/filters/Filters.vue.d.ts +0 -27
  565. package/dist/src/table/components/search/Search.vue.d.ts +0 -2
  566. package/dist/src/table/components/sort/SortMode.vue.d.ts +0 -2
  567. package/dist/src/table/components/sort/SortModeSettingsDialog.vue.d.ts +0 -18
  568. package/dist/src/table/components/stats/StatDialog.vue.d.ts +0 -12
  569. package/dist/src/table/components/stats/Stats.vue.d.ts +0 -27
  570. package/dist/src/table/flow-builder-extensions/TableRowEditor.vue.d.ts +0 -16
  571. package/dist/src/table/index.vue.d.ts +0 -22
  572. package/dist/src/table/pages/TableView.vue.d.ts +0 -54
  573. package/dist/utils-CanmrIWO.mjs +0 -47
  574. package/dist/utils-Yd6F5mea.js +0 -3
  575. package/dist/vee-validate-zod-ByykgYKJ.js +0 -1
  576. package/dist/vee-validate-zod-CcOwoF6y.mjs +0 -4402
@@ -1,615 +0,0 @@
1
- import { defineComponent as w, resolveComponent as M, openBlock as a, createElementBlock as m, createVNode as n, withCtx as v, createElementVNode as e, unref as s, createTextVNode as x, toDisplayString as d, normalizeClass as b, computed as T, createBlock as k, normalizeStyle as z, createCommentVNode as $, Fragment as R, renderList as B, ref as _, watch as te, onMounted as se } from "vue";
2
- import { useModule as oe, useModuleRoute as ne, useModuleBreadcrumbs as re } from "@oneclick.dev/cms-kit";
3
- import { MousePointerClick as K, Eye as E, TrendingUp as le, Hash as ae, RefreshCw as ie, AlertTriangle as de, Loader2 as ue, Search as ce, FileText as me, ArrowUpRight as xe } from "lucide-vue-next";
4
- import "./index-Bvxc5xv_.mjs";
5
- import { componentToString as V, ChartTooltipContent as X } from "@oneclick.dev/cms-kit/charts";
6
- import { S as j, C as U, A as G, z as J } from "./index-uOkqO74I.mjs";
7
- import { j as Q, C as W } from "./index-BRdCrvcz.mjs";
8
- function S(t) {
9
- return t >= 1e6 ? `${(t / 1e6).toFixed(1)}M` : t >= 1e3 ? `${(t / 1e3).toFixed(1)}K` : Math.round(t).toString();
10
- }
11
- function I(t) {
12
- return `${(t * 100).toFixed(1)}%`;
13
- }
14
- function q(t) {
15
- return t.toFixed(1);
16
- }
17
- function pe(t) {
18
- return t <= 3 ? "text-emerald-600 dark:text-emerald-400" : t <= 10 ? "text-blue-600 dark:text-blue-400" : t <= 20 ? "text-amber-600 dark:text-amber-400" : "text-red-600 dark:text-red-400";
19
- }
20
- function O(t) {
21
- return t <= 3 ? "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400" : t <= 10 ? "bg-blue-500/10 text-blue-600 dark:text-blue-400" : t <= 20 ? "bg-amber-500/10 text-amber-600 dark:text-amber-400" : "bg-red-500/10 text-red-600 dark:text-red-400";
22
- }
23
- function Y(t) {
24
- try {
25
- return new URL(t).pathname;
26
- } catch {
27
- return t;
28
- }
29
- }
30
- const fe = { class: "grid grid-cols-2 @3xl:grid-cols-4 gap-4" }, ge = { class: "flex items-center flex-wrap gap-2 text-xs text-muted-foreground" }, ve = { class: "text-2xl font-bold tabular-nums" }, ye = { class: "flex items-center flex-wrap gap-2 text-xs text-muted-foreground" }, he = { class: "text-2xl font-bold tabular-nums" }, _e = { class: "flex items-center flex-wrap gap-2 text-xs text-muted-foreground" }, ke = { class: "text-2xl font-bold tabular-nums" }, be = { class: "flex items-center flex-wrap gap-2 text-xs text-muted-foreground" }, $e = /* @__PURE__ */ w({
31
- __name: "SeoKpiCards",
32
- props: {
33
- totals: {}
34
- },
35
- setup(t) {
36
- return (p, c) => {
37
- const r = M("Card");
38
- return a(), m("div", fe, [
39
- n(r, { class: "p-4 space-y-1" }, {
40
- default: v(() => [
41
- e("div", ge, [
42
- n(s(K), { class: "size-3.5 shrink-0" }),
43
- c[0] || (c[0] = x(" Total Clicks ", -1))
44
- ]),
45
- e("p", ve, d(s(S)(t.totals.clicks)), 1)
46
- ]),
47
- _: 1
48
- }),
49
- n(r, { class: "p-4 space-y-1" }, {
50
- default: v(() => [
51
- e("div", ye, [
52
- n(s(E), { class: "size-3.5 shrink-0" }),
53
- c[1] || (c[1] = x(" Total Impressions ", -1))
54
- ]),
55
- e("p", he, d(s(S)(t.totals.impressions)), 1)
56
- ]),
57
- _: 1
58
- }),
59
- n(r, { class: "p-4 space-y-1" }, {
60
- default: v(() => [
61
- e("div", _e, [
62
- n(s(le), { class: "size-3.5 shrink-0" }),
63
- c[2] || (c[2] = x(" Average CTR ", -1))
64
- ]),
65
- e("p", ke, d(s(I)(t.totals.ctr)), 1)
66
- ]),
67
- _: 1
68
- }),
69
- n(r, { class: "p-4 space-y-1" }, {
70
- default: v(() => [
71
- e("div", be, [
72
- n(s(ae), { class: "size-3.5 shrink-0" }),
73
- c[3] || (c[3] = x(" Avg Position ", -1))
74
- ]),
75
- e("p", {
76
- class: b(["text-2xl font-bold tabular-nums", s(pe)(t.totals.avgPosition)])
77
- }, d(s(q)(t.totals.avgPosition)), 3)
78
- ]),
79
- _: 1
80
- })
81
- ]);
82
- };
83
- }
84
- }), we = { class: "flex items-center gap-4" }, Ce = { class: "flex items-center gap-2" }, Te = { class: "text-xs" }, Se = { class: "flex items-center gap-2" }, Pe = { class: "text-xs" }, De = { class: "flex items-center gap-2" }, ze = { class: "text-xs" }, Me = { class: "flex items-center gap-2" }, Re = { class: "text-xs" }, Fe = {
85
- key: 0,
86
- class: "flex h-3 rounded-full overflow-hidden mt-3"
87
- }, Le = /* @__PURE__ */ w({
88
- __name: "SeoRankingDistribution",
89
- props: {
90
- keywords: {}
91
- },
92
- setup(t) {
93
- const p = t, c = T(() => p.keywords.filter((l) => l.position <= 3).length), r = T(() => p.keywords.filter((l) => l.position <= 10).length), f = T(() => p.keywords.filter((l) => l.position <= 20).length);
94
- return (l, o) => {
95
- const u = M("Card");
96
- return a(), k(u, { class: "p-4" }, {
97
- default: v(() => [
98
- o[8] || (o[8] = e("h3", { class: "text-sm font-medium mb-3" }, "Keyword Ranking Distribution", -1)),
99
- e("div", we, [
100
- e("div", Ce, [
101
- o[1] || (o[1] = e("span", { class: "inline-block w-3 h-3 rounded-full bg-emerald-500" }, null, -1)),
102
- e("span", Te, [
103
- o[0] || (o[0] = x("Top 3: ", -1)),
104
- e("strong", null, d(c.value), 1)
105
- ])
106
- ]),
107
- e("div", Se, [
108
- o[3] || (o[3] = e("span", { class: "inline-block w-3 h-3 rounded-full bg-blue-500" }, null, -1)),
109
- e("span", Pe, [
110
- o[2] || (o[2] = x("Top 10: ", -1)),
111
- e("strong", null, d(r.value), 1)
112
- ])
113
- ]),
114
- e("div", De, [
115
- o[5] || (o[5] = e("span", { class: "inline-block w-3 h-3 rounded-full bg-amber-500" }, null, -1)),
116
- e("span", ze, [
117
- o[4] || (o[4] = x("Top 20: ", -1)),
118
- e("strong", null, d(f.value), 1)
119
- ])
120
- ]),
121
- e("div", Me, [
122
- o[7] || (o[7] = e("span", { class: "inline-block w-3 h-3 rounded-full bg-red-500" }, null, -1)),
123
- e("span", Re, [
124
- o[6] || (o[6] = x("20+: ", -1)),
125
- e("strong", null, d(t.keywords.length - f.value), 1)
126
- ])
127
- ])
128
- ]),
129
- t.keywords.length > 0 ? (a(), m("div", Fe, [
130
- e("div", {
131
- class: "bg-emerald-500 transition-all",
132
- style: z({ width: `${c.value / t.keywords.length * 100}%` })
133
- }, null, 4),
134
- e("div", {
135
- class: "bg-blue-500 transition-all",
136
- style: z({ width: `${(r.value - c.value) / t.keywords.length * 100}%` })
137
- }, null, 4),
138
- e("div", {
139
- class: "bg-amber-500 transition-all",
140
- style: z({ width: `${(f.value - r.value) / t.keywords.length * 100}%` })
141
- }, null, 4),
142
- e("div", {
143
- class: "bg-red-500 transition-all",
144
- style: z({ width: `${(t.keywords.length - f.value) / t.keywords.length * 100}%` })
145
- }, null, 4)
146
- ])) : $("", !0)
147
- ]),
148
- _: 1
149
- });
150
- };
151
- }
152
- }), Ae = {
153
- key: 0,
154
- class: "h-48"
155
- }, Ne = {
156
- key: 1,
157
- class: "text-xs text-muted-foreground text-center py-10"
158
- }, Ue = /* @__PURE__ */ w({
159
- __name: "SeoClicksChart",
160
- props: {
161
- trends: {}
162
- },
163
- setup(t) {
164
- const p = t, c = (o, u) => u, r = (o) => o.clicks || 0, f = (o) => {
165
- const u = p.trends[Math.round(o)];
166
- if (!u) return "";
167
- const g = new Date(u.date);
168
- return `${g.getDate()}/${g.getMonth() + 1}`;
169
- }, l = (o) => {
170
- const u = p.trends[Math.round(Number(o))];
171
- return u ? new Date(u.date).toLocaleDateString(void 0, { weekday: "short", month: "short", day: "numeric" }) : "";
172
- };
173
- return (o, u) => {
174
- const g = M("Card");
175
- return a(), k(g, { class: "p-4" }, {
176
- default: v(() => [
177
- u[0] || (u[0] = e("h3", { class: "text-sm font-medium mb-3" }, "Clicks Over Time", -1)),
178
- t.trends.length > 1 ? (a(), m("div", Ae, [
179
- n(s(j), {
180
- data: t.trends,
181
- height: 180
182
- }, {
183
- default: v(() => [
184
- n(s(Q), {
185
- x: c,
186
- y: r,
187
- color: "#3b82f6",
188
- opacity: 0.1,
189
- curveType: "monotoneX"
190
- }),
191
- n(s(W), {
192
- x: c,
193
- y: r,
194
- color: "#3b82f6",
195
- curveType: "monotoneX"
196
- }),
197
- n(s(U), {
198
- type: "x",
199
- tickFormat: f,
200
- numTicks: 5,
201
- gridLine: !1
202
- }),
203
- n(s(U), {
204
- type: "y",
205
- gridLine: !0,
206
- numTicks: 4
207
- }),
208
- n(s(G), {
209
- template: (P) => s(V)(s(X), { namePayload: [{ name: "Clicks", value: P.clicks, color: "#3b82f6" }], labelFormatter: l })
210
- }, null, 8, ["template"]),
211
- n(s(J))
212
- ]),
213
- _: 1
214
- }, 8, ["data"])
215
- ])) : (a(), m("p", Ne, "Not enough data for chart"))
216
- ]),
217
- _: 1
218
- });
219
- };
220
- }
221
- }), Be = {
222
- key: 0,
223
- class: "h-48"
224
- }, Ke = {
225
- key: 1,
226
- class: "text-xs text-muted-foreground text-center py-10"
227
- }, qe = /* @__PURE__ */ w({
228
- __name: "SeoImpressionsChart",
229
- props: {
230
- trends: {}
231
- },
232
- setup(t) {
233
- const p = t, c = (o, u) => u, r = (o) => o.impressions || 0, f = (o) => {
234
- const u = p.trends[Math.round(o)];
235
- if (!u) return "";
236
- const g = new Date(u.date);
237
- return `${g.getDate()}/${g.getMonth() + 1}`;
238
- }, l = (o) => {
239
- const u = p.trends[Math.round(Number(o))];
240
- return u ? new Date(u.date).toLocaleDateString(void 0, { weekday: "short", month: "short", day: "numeric" }) : "";
241
- };
242
- return (o, u) => {
243
- const g = M("Card");
244
- return a(), k(g, { class: "p-4" }, {
245
- default: v(() => [
246
- u[0] || (u[0] = e("h3", { class: "text-sm font-medium mb-3" }, "Impressions Over Time", -1)),
247
- t.trends.length > 1 ? (a(), m("div", Be, [
248
- n(s(j), {
249
- data: t.trends,
250
- height: 180
251
- }, {
252
- default: v(() => [
253
- n(s(Q), {
254
- x: c,
255
- y: r,
256
- color: "#8b5cf6",
257
- opacity: 0.1,
258
- curveType: "monotoneX"
259
- }),
260
- n(s(W), {
261
- x: c,
262
- y: r,
263
- color: "#8b5cf6",
264
- curveType: "monotoneX"
265
- }),
266
- n(s(U), {
267
- type: "x",
268
- tickFormat: f,
269
- numTicks: 5,
270
- gridLine: !1
271
- }),
272
- n(s(U), {
273
- type: "y",
274
- gridLine: !0,
275
- numTicks: 4
276
- }),
277
- n(s(G), {
278
- template: (P) => s(V)(s(X), { namePayload: [{ name: "Impressions", value: P.impressions, color: "#8b5cf6" }], labelFormatter: l })
279
- }, null, 8, ["template"]),
280
- n(s(J))
281
- ]),
282
- _: 1
283
- }, 8, ["data"])
284
- ])) : (a(), m("p", Ke, "Not enough data for chart"))
285
- ]),
286
- _: 1
287
- });
288
- };
289
- }
290
- }), Ee = { class: "divide-y" }, Ie = {
291
- key: 0,
292
- class: "p-8 text-center text-sm text-muted-foreground"
293
- }, Oe = { class: "flex items-start @sm:items-center gap-3" }, He = { class: "text-xs font-medium text-muted-foreground w-6 text-right shrink-0 mt-0.5 @sm:mt-0" }, Ve = { class: "flex-1 min-w-0" }, Xe = { class: "flex flex-col @sm:flex-row @sm:items-center gap-2 @sm:gap-3" }, je = { class: "flex-1 min-w-0" }, Ge = { class: "text-sm font-medium truncate" }, Je = { class: "h-1.5 rounded-full bg-muted overflow-hidden mt-1.5 max-w-xs" }, Qe = { class: "flex items-center gap-3 @sm:gap-4 text-xs text-muted-foreground @sm:shrink-0 flex-wrap" }, We = { class: "flex items-center gap-1" }, Ye = { class: "flex items-center gap-1" }, Ze = /* @__PURE__ */ w({
294
- __name: "SeoKeywordsTab",
295
- props: {
296
- keywords: {}
297
- },
298
- setup(t) {
299
- const p = t, c = T(() => Math.max(...p.keywords.map((r) => r.clicks), 1));
300
- return (r, f) => (a(), m("div", Ee, [
301
- t.keywords.length === 0 ? (a(), m("div", Ie, " No keyword data found for this period. ")) : $("", !0),
302
- (a(!0), m(R, null, B(t.keywords, (l, o) => (a(), m("div", {
303
- key: o,
304
- class: "px-4 py-3 hover:bg-muted/30 transition-colors"
305
- }, [
306
- e("div", Oe, [
307
- e("span", He, d(o + 1) + ".", 1),
308
- e("div", Ve, [
309
- e("div", Xe, [
310
- e("div", je, [
311
- e("p", Ge, d(l.query), 1),
312
- e("div", Je, [
313
- e("div", {
314
- class: "h-full rounded-full bg-blue-500/70",
315
- style: z({ width: `${l.clicks / c.value * 100}%` })
316
- }, null, 4)
317
- ])
318
- ]),
319
- e("div", Qe, [
320
- e("span", We, [
321
- n(s(K), { class: "size-3" }),
322
- x(" " + d(s(S)(l.clicks)), 1)
323
- ]),
324
- e("span", Ye, [
325
- n(s(E), { class: "size-3" }),
326
- x(" " + d(s(S)(l.impressions)), 1)
327
- ]),
328
- e("span", null, d(s(I)(l.ctr)), 1),
329
- e("span", {
330
- class: b(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium", s(O)(l.position)])
331
- }, " #" + d(s(q)(l.position)), 3)
332
- ])
333
- ])
334
- ])
335
- ])
336
- ]))), 128))
337
- ]));
338
- }
339
- }), et = { class: "divide-y" }, tt = {
340
- key: 0,
341
- class: "p-8 text-center text-sm text-muted-foreground"
342
- }, st = { class: "flex items-start @sm:items-center gap-3" }, ot = { class: "text-xs font-medium text-muted-foreground w-6 text-right shrink-0 mt-0.5 @sm:mt-0" }, nt = { class: "flex-1 min-w-0" }, rt = { class: "flex flex-col @sm:flex-row @sm:items-center gap-2 @sm:gap-3" }, lt = { class: "flex-1 min-w-0" }, at = ["title"], it = { class: "h-1.5 rounded-full bg-muted overflow-hidden mt-1.5 max-w-xs" }, dt = { class: "flex items-center gap-3 @sm:gap-4 text-xs text-muted-foreground @sm:shrink-0 flex-wrap" }, ut = { class: "flex items-center gap-1" }, ct = { class: "flex items-center gap-1" }, mt = /* @__PURE__ */ w({
343
- __name: "SeoPagesTab",
344
- props: {
345
- pages: {}
346
- },
347
- setup(t) {
348
- const p = t, c = T(() => Math.max(...p.pages.map((r) => r.clicks), 1));
349
- return (r, f) => (a(), m("div", et, [
350
- t.pages.length === 0 ? (a(), m("div", tt, " No page data found for this period. ")) : $("", !0),
351
- (a(!0), m(R, null, B(t.pages, (l, o) => (a(), m("div", {
352
- key: o,
353
- class: "px-4 py-3 hover:bg-muted/30 transition-colors"
354
- }, [
355
- e("div", st, [
356
- e("span", ot, d(o + 1) + ".", 1),
357
- e("div", nt, [
358
- e("div", rt, [
359
- e("div", lt, [
360
- e("p", {
361
- class: "text-sm font-medium truncate",
362
- title: l.page
363
- }, d(s(Y)(l.page)), 9, at),
364
- e("div", it, [
365
- e("div", {
366
- class: "h-full rounded-full bg-violet-500/70",
367
- style: z({ width: `${l.clicks / c.value * 100}%` })
368
- }, null, 4)
369
- ])
370
- ]),
371
- e("div", dt, [
372
- e("span", ut, [
373
- n(s(K), { class: "size-3" }),
374
- x(" " + d(s(S)(l.clicks)), 1)
375
- ]),
376
- e("span", ct, [
377
- n(s(E), { class: "size-3" }),
378
- x(" " + d(s(S)(l.impressions)), 1)
379
- ]),
380
- e("span", null, d(s(I)(l.ctr)), 1),
381
- e("span", {
382
- class: b(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium", s(O)(l.position)])
383
- }, " #" + d(s(q)(l.position)), 3)
384
- ])
385
- ])
386
- ])
387
- ])
388
- ]))), 128))
389
- ]));
390
- }
391
- }), xt = { class: "divide-y" }, pt = {
392
- key: 0,
393
- class: "p-8 text-center text-sm text-muted-foreground"
394
- }, ft = { class: "flex items-start gap-3" }, gt = { class: "text-xs font-medium text-muted-foreground w-6 text-right shrink-0 mt-0.5" }, vt = { class: "flex-1 min-w-0" }, yt = { class: "flex flex-col @sm:flex-row @sm:items-center gap-2 @sm:gap-3" }, ht = { class: "flex-1 min-w-0 space-y-0.5" }, _t = { class: "text-sm font-medium" }, kt = ["title"], bt = { class: "flex items-center gap-3 @sm:gap-4 text-xs text-muted-foreground @sm:shrink-0 flex-wrap" }, $t = { class: "flex items-center gap-1" }, wt = /* @__PURE__ */ w({
395
- __name: "SeoMappingTab",
396
- props: {
397
- queryPages: {}
398
- },
399
- setup(t) {
400
- return (p, c) => (a(), m("div", xt, [
401
- t.queryPages.length === 0 ? (a(), m("div", pt, " No query-page data found for this period. ")) : $("", !0),
402
- (a(!0), m(R, null, B(t.queryPages, (r, f) => (a(), m("div", {
403
- key: f,
404
- class: "px-4 py-3 hover:bg-muted/30 transition-colors"
405
- }, [
406
- e("div", ft, [
407
- e("span", gt, d(f + 1) + ".", 1),
408
- e("div", vt, [
409
- e("div", yt, [
410
- e("div", ht, [
411
- e("p", _t, d(r.query), 1),
412
- e("p", {
413
- class: "text-xs text-muted-foreground truncate",
414
- title: r.page
415
- }, "→ " + d(s(Y)(r.page)), 9, kt)
416
- ]),
417
- e("div", bt, [
418
- e("span", $t, [
419
- n(s(K), { class: "size-3" }),
420
- x(" " + d(s(S)(r.clicks)), 1)
421
- ]),
422
- e("span", {
423
- class: b(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium", s(O)(r.position)])
424
- }, " #" + d(s(q)(r.position)), 3)
425
- ])
426
- ])
427
- ])
428
- ])
429
- ]))), 128))
430
- ]));
431
- }
432
- }), Ct = { class: "flex flex-col gap-6 w-full max-w-7xl mx-auto py-8" }, Tt = { class: "flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center" }, St = {
433
- key: 0,
434
- class: "flex items-center gap-2"
435
- }, Pt = { class: "flex items-center border rounded-lg overflow-hidden" }, Dt = ["onClick"], zt = { class: "text-sm text-destructive font-medium" }, Mt = {
436
- key: 3,
437
- class: "flex items-center justify-center py-20"
438
- }, Rt = { class: "grid grid-cols-1 @3xl:grid-cols-2 gap-4" }, Ft = { class: "border-b" }, Lt = { class: "flex" }, Ot = /* @__PURE__ */ w({
439
- __name: "SeoHealth",
440
- setup(t) {
441
- const { config: p } = oe(), { moduleId: c } = ne();
442
- re(() => [{ label: "SEO Health" }]);
443
- const r = _(!0), f = _(null), l = _("30"), o = _([]), u = _({
444
- clicks: 0,
445
- impressions: 0,
446
- ctr: 0,
447
- avgPosition: 0
448
- }), g = _([]), P = _([]), H = _([]), F = T(() => !!(p.serviceAccount && p.propertyId && p.siteUrl)), Z = T(() => !!p.siteUrl);
449
- function L(C) {
450
- return `/api/v1/modules/${c}${C}`;
451
- }
452
- const ee = [
453
- { label: "7d", value: "7" },
454
- { label: "14d", value: "14" },
455
- { label: "30d", value: "30" },
456
- { label: "90d", value: "90" }
457
- ];
458
- async function A() {
459
- if (!F.value) return;
460
- r.value = !0, f.value = null;
461
- const C = `${l.value}daysAgo`;
462
- try {
463
- const [i, N, D, h] = await Promise.all([
464
- $fetch(L(`/seo/trends?startDate=${C}&endDate=today`)),
465
- $fetch(L(`/seo/keywords?startDate=${C}&endDate=today&limit=50`)),
466
- $fetch(L(`/seo/pages?startDate=${C}&endDate=today&limit=30`)),
467
- $fetch(L(`/seo/query-pages?startDate=${C}&endDate=today`))
468
- ]);
469
- o.value = i.rows || [], u.value = i.totals || { clicks: 0, impressions: 0, ctr: 0, avgPosition: 0 }, g.value = N.rows || [], P.value = D.rows || [], H.value = h.rows || [];
470
- } catch (i) {
471
- f.value = i?.data?.statusMessage || i?.message || "Failed to load SEO data";
472
- } finally {
473
- r.value = !1;
474
- }
475
- }
476
- te(l, () => A()), se(() => {
477
- F.value ? A() : r.value = !1;
478
- });
479
- const y = _("keywords");
480
- return (C, i) => {
481
- const N = M("Button"), D = M("Card");
482
- return a(), m("div", Ct, [
483
- e("div", Tt, [
484
- i[3] || (i[3] = e("div", null, [
485
- e("h1", { class: "text-2xl font-semibold" }, "SEO Health"),
486
- e("p", { class: "text-muted-foreground text-sm mt-1" }, "Search Console performance & keyword rankings")
487
- ], -1)),
488
- F.value ? (a(), m("div", St, [
489
- e("div", Pt, [
490
- (a(), m(R, null, B(ee, (h) => e("button", {
491
- key: h.value,
492
- class: b(["px-3 py-1.5 text-xs font-medium transition-colors", l.value === h.value ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:text-foreground hover:bg-muted"]),
493
- onClick: (At) => l.value = h.value
494
- }, d(h.label), 11, Dt)), 64))
495
- ]),
496
- n(N, {
497
- variant: "outline",
498
- size: "icon",
499
- onClick: A,
500
- disabled: r.value
501
- }, {
502
- default: v(() => [
503
- n(s(ie), {
504
- class: b(["size-4", { "animate-spin": r.value }])
505
- }, null, 8, ["class"])
506
- ]),
507
- _: 1
508
- }, 8, ["disabled"])
509
- ])) : $("", !0)
510
- ]),
511
- Z.value ? F.value ? f.value ? (a(), k(D, {
512
- key: 2,
513
- class: "p-6 border-destructive/50 bg-destructive/5"
514
- }, {
515
- default: v(() => [
516
- e("p", zt, d(f.value), 1),
517
- n(N, {
518
- variant: "outline",
519
- size: "sm",
520
- class: "mt-3",
521
- onClick: A
522
- }, {
523
- default: v(() => [...i[7] || (i[7] = [
524
- x("Retry", -1)
525
- ])]),
526
- _: 1
527
- })
528
- ]),
529
- _: 1
530
- })) : r.value ? (a(), m("div", Mt, [
531
- n(s(ue), { class: "size-8 animate-spin text-muted-foreground" })
532
- ])) : (a(), m(R, { key: 4 }, [
533
- n($e, { totals: u.value }, null, 8, ["totals"]),
534
- n(Le, { keywords: g.value }, null, 8, ["keywords"]),
535
- e("div", Rt, [
536
- n(Ue, { trends: o.value }, null, 8, ["trends"]),
537
- n(qe, { trends: o.value }, null, 8, ["trends"])
538
- ]),
539
- n(D, { class: "overflow-hidden" }, {
540
- default: v(() => [
541
- e("div", Ft, [
542
- e("div", Lt, [
543
- e("button", {
544
- class: b(["px-4 py-2.5 text-sm font-medium transition-colors border-b-2", y.value === "keywords" ? "border-primary text-primary" : "border-transparent text-muted-foreground hover:text-foreground"]),
545
- onClick: i[0] || (i[0] = (h) => y.value = "keywords")
546
- }, [
547
- n(s(ce), { class: "size-3.5 inline mr-1.5" }),
548
- i[8] || (i[8] = x(" Keywords ", -1))
549
- ], 2),
550
- e("button", {
551
- class: b(["px-4 py-2.5 text-sm font-medium transition-colors border-b-2", y.value === "pages" ? "border-primary text-primary" : "border-transparent text-muted-foreground hover:text-foreground"]),
552
- onClick: i[1] || (i[1] = (h) => y.value = "pages")
553
- }, [
554
- n(s(me), { class: "size-3.5 inline mr-1.5" }),
555
- i[9] || (i[9] = x(" Pages ", -1))
556
- ], 2),
557
- e("button", {
558
- class: b(["px-4 py-2.5 text-sm font-medium transition-colors border-b-2", y.value === "mapping" ? "border-primary text-primary" : "border-transparent text-muted-foreground hover:text-foreground"]),
559
- onClick: i[2] || (i[2] = (h) => y.value = "mapping")
560
- }, [
561
- n(s(xe), { class: "size-3.5 inline mr-1.5" }),
562
- i[10] || (i[10] = x(" Keyword → Page ", -1))
563
- ], 2)
564
- ])
565
- ]),
566
- y.value === "keywords" ? (a(), k(Ze, {
567
- key: 0,
568
- keywords: g.value
569
- }, null, 8, ["keywords"])) : $("", !0),
570
- y.value === "pages" ? (a(), k(mt, {
571
- key: 1,
572
- pages: P.value
573
- }, null, 8, ["pages"])) : $("", !0),
574
- y.value === "mapping" ? (a(), k(wt, {
575
- key: 2,
576
- queryPages: H.value
577
- }, null, 8, ["queryPages"])) : $("", !0)
578
- ]),
579
- _: 1
580
- })
581
- ], 64)) : (a(), k(D, {
582
- key: 1,
583
- class: "p-8 text-center"
584
- }, {
585
- default: v(() => [...i[6] || (i[6] = [
586
- e("p", { class: "text-lg font-medium" }, "Setup required", -1),
587
- e("p", { class: "text-sm text-muted-foreground mt-1" }, "Configure your service account, property ID, and site URL in module settings.", -1)
588
- ])]),
589
- _: 1
590
- })) : (a(), k(D, {
591
- key: 0,
592
- class: "p-8 text-center space-y-3"
593
- }, {
594
- default: v(() => [
595
- n(s(de), { class: "size-10 text-amber-500 mx-auto" }),
596
- i[4] || (i[4] = e("p", { class: "text-lg font-medium" }, "Search Console not configured", -1)),
597
- i[5] || (i[5] = e("p", { class: "text-sm text-muted-foreground max-w-md mx-auto" }, [
598
- x(" Add your "),
599
- e("strong", null, "Search Console Site URL"),
600
- x(" in the module settings to enable SEO data. Use the exact format from Google Search Console (e.g. "),
601
- e("code", null, "https://example.com"),
602
- x(" or "),
603
- e("code", null, "sc-domain:example.com"),
604
- x("). ")
605
- ], -1))
606
- ]),
607
- _: 1
608
- }))
609
- ]);
610
- };
611
- }
612
- });
613
- export {
614
- Ot as default
615
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),w=require("@oneclick.dev/cms-kit"),m=require("lucide-vue-next");require("./index-B5aBwdxY.js");const _=require("@oneclick.dev/cms-kit/charts"),u=require("./index-G7cIlnGN.js"),E=require("./index-A2kp8Isi.js");function g(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:Math.round(t).toString()}function C(t){return`${(t*100).toFixed(1)}%`}function b(t){return t.toFixed(1)}function z(t){return t<=3?"text-emerald-600 dark:text-emerald-400":t<=10?"text-blue-600 dark:text-blue-400":t<=20?"text-amber-600 dark:text-amber-400":"text-red-600 dark:text-red-400"}function $(t){return t<=3?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":t<=10?"bg-blue-500/10 text-blue-600 dark:text-blue-400":t<=20?"bg-amber-500/10 text-amber-600 dark:text-amber-400":"bg-red-500/10 text-red-600 dark:text-red-400"}function S(t){try{return new URL(t).pathname}catch{return t}}const P={class:"grid grid-cols-2 @3xl:grid-cols-4 gap-4"},M={class:"flex items-center flex-wrap gap-2 text-xs text-muted-foreground"},F={class:"text-2xl font-bold tabular-nums"},L={class:"flex items-center flex-wrap gap-2 text-xs text-muted-foreground"},R={class:"text-2xl font-bold tabular-nums"},q={class:"flex items-center flex-wrap gap-2 text-xs text-muted-foreground"},A={class:"text-2xl font-bold tabular-nums"},U={class:"flex items-center flex-wrap gap-2 text-xs text-muted-foreground"},K=e.defineComponent({__name:"SeoKpiCards",props:{totals:{}},setup(t){return(c,a)=>{const n=e.resolveComponent("Card");return e.openBlock(),e.createElementBlock("div",P,[e.createVNode(n,{class:"p-4 space-y-1"},{default:e.withCtx(()=>[e.createElementVNode("div",M,[e.createVNode(e.unref(m.MousePointerClick),{class:"size-3.5 shrink-0"}),a[0]||(a[0]=e.createTextVNode(" Total Clicks ",-1))]),e.createElementVNode("p",F,e.toDisplayString(e.unref(g)(t.totals.clicks)),1)]),_:1}),e.createVNode(n,{class:"p-4 space-y-1"},{default:e.withCtx(()=>[e.createElementVNode("div",L,[e.createVNode(e.unref(m.Eye),{class:"size-3.5 shrink-0"}),a[1]||(a[1]=e.createTextVNode(" Total Impressions ",-1))]),e.createElementVNode("p",R,e.toDisplayString(e.unref(g)(t.totals.impressions)),1)]),_:1}),e.createVNode(n,{class:"p-4 space-y-1"},{default:e.withCtx(()=>[e.createElementVNode("div",q,[e.createVNode(e.unref(m.TrendingUp),{class:"size-3.5 shrink-0"}),a[2]||(a[2]=e.createTextVNode(" Average CTR ",-1))]),e.createElementVNode("p",A,e.toDisplayString(e.unref(C)(t.totals.ctr)),1)]),_:1}),e.createVNode(n,{class:"p-4 space-y-1"},{default:e.withCtx(()=>[e.createElementVNode("div",U,[e.createVNode(e.unref(m.Hash),{class:"size-3.5 shrink-0"}),a[3]||(a[3]=e.createTextVNode(" Avg Position ",-1))]),e.createElementVNode("p",{class:e.normalizeClass(["text-2xl font-bold tabular-nums",e.unref(z)(t.totals.avgPosition)])},e.toDisplayString(e.unref(b)(t.totals.avgPosition)),3)]),_:1})])}}}),O={class:"flex items-center gap-4"},I={class:"flex items-center gap-2"},j={class:"text-xs"},H={class:"flex items-center gap-2"},X={class:"text-xs"},G={class:"flex items-center gap-2"},J={class:"text-xs"},Q={class:"flex items-center gap-2"},W={class:"text-xs"},Y={key:0,class:"flex h-3 rounded-full overflow-hidden mt-3"},Z=e.defineComponent({__name:"SeoRankingDistribution",props:{keywords:{}},setup(t){const c=t,a=e.computed(()=>c.keywords.filter(s=>s.position<=3).length),n=e.computed(()=>c.keywords.filter(s=>s.position<=10).length),d=e.computed(()=>c.keywords.filter(s=>s.position<=20).length);return(s,o)=>{const l=e.resolveComponent("Card");return e.openBlock(),e.createBlock(l,{class:"p-4"},{default:e.withCtx(()=>[o[8]||(o[8]=e.createElementVNode("h3",{class:"text-sm font-medium mb-3"},"Keyword Ranking Distribution",-1)),e.createElementVNode("div",O,[e.createElementVNode("div",I,[o[1]||(o[1]=e.createElementVNode("span",{class:"inline-block w-3 h-3 rounded-full bg-emerald-500"},null,-1)),e.createElementVNode("span",j,[o[0]||(o[0]=e.createTextVNode("Top 3: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(a.value),1)])]),e.createElementVNode("div",H,[o[3]||(o[3]=e.createElementVNode("span",{class:"inline-block w-3 h-3 rounded-full bg-blue-500"},null,-1)),e.createElementVNode("span",X,[o[2]||(o[2]=e.createTextVNode("Top 10: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(n.value),1)])]),e.createElementVNode("div",G,[o[5]||(o[5]=e.createElementVNode("span",{class:"inline-block w-3 h-3 rounded-full bg-amber-500"},null,-1)),e.createElementVNode("span",J,[o[4]||(o[4]=e.createTextVNode("Top 20: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(d.value),1)])]),e.createElementVNode("div",Q,[o[7]||(o[7]=e.createElementVNode("span",{class:"inline-block w-3 h-3 rounded-full bg-red-500"},null,-1)),e.createElementVNode("span",W,[o[6]||(o[6]=e.createTextVNode("20+: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.keywords.length-d.value),1)])])]),t.keywords.length>0?(e.openBlock(),e.createElementBlock("div",Y,[e.createElementVNode("div",{class:"bg-emerald-500 transition-all",style:e.normalizeStyle({width:`${a.value/t.keywords.length*100}%`})},null,4),e.createElementVNode("div",{class:"bg-blue-500 transition-all",style:e.normalizeStyle({width:`${(n.value-a.value)/t.keywords.length*100}%`})},null,4),e.createElementVNode("div",{class:"bg-amber-500 transition-all",style:e.normalizeStyle({width:`${(d.value-n.value)/t.keywords.length*100}%`})},null,4),e.createElementVNode("div",{class:"bg-red-500 transition-all",style:e.normalizeStyle({width:`${(t.keywords.length-d.value)/t.keywords.length*100}%`})},null,4)])):e.createCommentVNode("",!0)]),_:1})}}}),ee={key:0,class:"h-48"},te={key:1,class:"text-xs text-muted-foreground text-center py-10"},oe=e.defineComponent({__name:"SeoClicksChart",props:{trends:{}},setup(t){const c=t,a=(o,l)=>l,n=o=>o.clicks||0,d=o=>{const l=c.trends[Math.round(o)];if(!l)return"";const i=new Date(l.date);return`${i.getDate()}/${i.getMonth()+1}`},s=o=>{const l=c.trends[Math.round(Number(o))];return l?new Date(l.date).toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}):""};return(o,l)=>{const i=e.resolveComponent("Card");return e.openBlock(),e.createBlock(i,{class:"p-4"},{default:e.withCtx(()=>[l[0]||(l[0]=e.createElementVNode("h3",{class:"text-sm font-medium mb-3"},"Clicks Over Time",-1)),t.trends.length>1?(e.openBlock(),e.createElementBlock("div",ee,[e.createVNode(e.unref(u.S),{data:t.trends,height:180},{default:e.withCtx(()=>[e.createVNode(e.unref(E.j),{x:a,y:n,color:"#3b82f6",opacity:.1,curveType:"monotoneX"}),e.createVNode(e.unref(E.C),{x:a,y:n,color:"#3b82f6",curveType:"monotoneX"}),e.createVNode(e.unref(u.C),{type:"x",tickFormat:d,numTicks:5,gridLine:!1}),e.createVNode(e.unref(u.C),{type:"y",gridLine:!0,numTicks:4}),e.createVNode(e.unref(u.A),{template:y=>e.unref(_.componentToString)(e.unref(_.ChartTooltipContent),{namePayload:[{name:"Clicks",value:y.clicks,color:"#3b82f6"}],labelFormatter:s})},null,8,["template"]),e.createVNode(e.unref(u.z))]),_:1},8,["data"])])):(e.openBlock(),e.createElementBlock("p",te,"Not enough data for chart"))]),_:1})}}}),ne={key:0,class:"h-48"},se={key:1,class:"text-xs text-muted-foreground text-center py-10"},re=e.defineComponent({__name:"SeoImpressionsChart",props:{trends:{}},setup(t){const c=t,a=(o,l)=>l,n=o=>o.impressions||0,d=o=>{const l=c.trends[Math.round(o)];if(!l)return"";const i=new Date(l.date);return`${i.getDate()}/${i.getMonth()+1}`},s=o=>{const l=c.trends[Math.round(Number(o))];return l?new Date(l.date).toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}):""};return(o,l)=>{const i=e.resolveComponent("Card");return e.openBlock(),e.createBlock(i,{class:"p-4"},{default:e.withCtx(()=>[l[0]||(l[0]=e.createElementVNode("h3",{class:"text-sm font-medium mb-3"},"Impressions Over Time",-1)),t.trends.length>1?(e.openBlock(),e.createElementBlock("div",ne,[e.createVNode(e.unref(u.S),{data:t.trends,height:180},{default:e.withCtx(()=>[e.createVNode(e.unref(E.j),{x:a,y:n,color:"#8b5cf6",opacity:.1,curveType:"monotoneX"}),e.createVNode(e.unref(E.C),{x:a,y:n,color:"#8b5cf6",curveType:"monotoneX"}),e.createVNode(e.unref(u.C),{type:"x",tickFormat:d,numTicks:5,gridLine:!1}),e.createVNode(e.unref(u.C),{type:"y",gridLine:!0,numTicks:4}),e.createVNode(e.unref(u.A),{template:y=>e.unref(_.componentToString)(e.unref(_.ChartTooltipContent),{namePayload:[{name:"Impressions",value:y.impressions,color:"#8b5cf6"}],labelFormatter:s})},null,8,["template"]),e.createVNode(e.unref(u.z))]),_:1},8,["data"])])):(e.openBlock(),e.createElementBlock("p",se,"Not enough data for chart"))]),_:1})}}}),le={class:"divide-y"},ae={key:0,class:"p-8 text-center text-sm text-muted-foreground"},ce={class:"flex items-start @sm:items-center gap-3"},de={class:"text-xs font-medium text-muted-foreground w-6 text-right shrink-0 mt-0.5 @sm:mt-0"},ie={class:"flex-1 min-w-0"},me={class:"flex flex-col @sm:flex-row @sm:items-center gap-2 @sm:gap-3"},ue={class:"flex-1 min-w-0"},pe={class:"text-sm font-medium truncate"},fe={class:"h-1.5 rounded-full bg-muted overflow-hidden mt-1.5 max-w-xs"},xe={class:"flex items-center gap-3 @sm:gap-4 text-xs text-muted-foreground @sm:shrink-0 flex-wrap"},ge={class:"flex items-center gap-1"},ye={class:"flex items-center gap-1"},ke=e.defineComponent({__name:"SeoKeywordsTab",props:{keywords:{}},setup(t){const c=t,a=e.computed(()=>Math.max(...c.keywords.map(n=>n.clicks),1));return(n,d)=>(e.openBlock(),e.createElementBlock("div",le,[t.keywords.length===0?(e.openBlock(),e.createElementBlock("div",ae," No keyword data found for this period. ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.keywords,(s,o)=>(e.openBlock(),e.createElementBlock("div",{key:o,class:"px-4 py-3 hover:bg-muted/30 transition-colors"},[e.createElementVNode("div",ce,[e.createElementVNode("span",de,e.toDisplayString(o+1)+".",1),e.createElementVNode("div",ie,[e.createElementVNode("div",me,[e.createElementVNode("div",ue,[e.createElementVNode("p",pe,e.toDisplayString(s.query),1),e.createElementVNode("div",fe,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500/70",style:e.normalizeStyle({width:`${s.clicks/a.value*100}%`})},null,4)])]),e.createElementVNode("div",xe,[e.createElementVNode("span",ge,[e.createVNode(e.unref(m.MousePointerClick),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(e.unref(g)(s.clicks)),1)]),e.createElementVNode("span",ye,[e.createVNode(e.unref(m.Eye),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(e.unref(g)(s.impressions)),1)]),e.createElementVNode("span",null,e.toDisplayString(e.unref(C)(s.ctr)),1),e.createElementVNode("span",{class:e.normalizeClass(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium",e.unref($)(s.position)])}," #"+e.toDisplayString(e.unref(b)(s.position)),3)])])])])]))),128))]))}}),ve={class:"divide-y"},Ne={key:0,class:"p-8 text-center text-sm text-muted-foreground"},Ve={class:"flex items-start @sm:items-center gap-3"},he={class:"text-xs font-medium text-muted-foreground w-6 text-right shrink-0 mt-0.5 @sm:mt-0"},_e={class:"flex-1 min-w-0"},Ee={class:"flex flex-col @sm:flex-row @sm:items-center gap-2 @sm:gap-3"},be={class:"flex-1 min-w-0"},we=["title"],Ce={class:"h-1.5 rounded-full bg-muted overflow-hidden mt-1.5 max-w-xs"},$e={class:"flex items-center gap-3 @sm:gap-4 text-xs text-muted-foreground @sm:shrink-0 flex-wrap"},Be={class:"flex items-center gap-1"},Se={class:"flex items-center gap-1"},Te=e.defineComponent({__name:"SeoPagesTab",props:{pages:{}},setup(t){const c=t,a=e.computed(()=>Math.max(...c.pages.map(n=>n.clicks),1));return(n,d)=>(e.openBlock(),e.createElementBlock("div",ve,[t.pages.length===0?(e.openBlock(),e.createElementBlock("div",Ne," No page data found for this period. ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pages,(s,o)=>(e.openBlock(),e.createElementBlock("div",{key:o,class:"px-4 py-3 hover:bg-muted/30 transition-colors"},[e.createElementVNode("div",Ve,[e.createElementVNode("span",he,e.toDisplayString(o+1)+".",1),e.createElementVNode("div",_e,[e.createElementVNode("div",Ee,[e.createElementVNode("div",be,[e.createElementVNode("p",{class:"text-sm font-medium truncate",title:s.page},e.toDisplayString(e.unref(S)(s.page)),9,we),e.createElementVNode("div",Ce,[e.createElementVNode("div",{class:"h-full rounded-full bg-violet-500/70",style:e.normalizeStyle({width:`${s.clicks/a.value*100}%`})},null,4)])]),e.createElementVNode("div",$e,[e.createElementVNode("span",Be,[e.createVNode(e.unref(m.MousePointerClick),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(e.unref(g)(s.clicks)),1)]),e.createElementVNode("span",Se,[e.createVNode(e.unref(m.Eye),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(e.unref(g)(s.impressions)),1)]),e.createElementVNode("span",null,e.toDisplayString(e.unref(C)(s.ctr)),1),e.createElementVNode("span",{class:e.normalizeClass(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium",e.unref($)(s.position)])}," #"+e.toDisplayString(e.unref(b)(s.position)),3)])])])])]))),128))]))}}),De={class:"divide-y"},ze={key:0,class:"p-8 text-center text-sm text-muted-foreground"},Pe={class:"flex items-start gap-3"},Me={class:"text-xs font-medium text-muted-foreground w-6 text-right shrink-0 mt-0.5"},Fe={class:"flex-1 min-w-0"},Le={class:"flex flex-col @sm:flex-row @sm:items-center gap-2 @sm:gap-3"},Re={class:"flex-1 min-w-0 space-y-0.5"},qe={class:"text-sm font-medium"},Ae=["title"],Ue={class:"flex items-center gap-3 @sm:gap-4 text-xs text-muted-foreground @sm:shrink-0 flex-wrap"},Ke={class:"flex items-center gap-1"},Oe=e.defineComponent({__name:"SeoMappingTab",props:{queryPages:{}},setup(t){return(c,a)=>(e.openBlock(),e.createElementBlock("div",De,[t.queryPages.length===0?(e.openBlock(),e.createElementBlock("div",ze," No query-page data found for this period. ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.queryPages,(n,d)=>(e.openBlock(),e.createElementBlock("div",{key:d,class:"px-4 py-3 hover:bg-muted/30 transition-colors"},[e.createElementVNode("div",Pe,[e.createElementVNode("span",Me,e.toDisplayString(d+1)+".",1),e.createElementVNode("div",Fe,[e.createElementVNode("div",Le,[e.createElementVNode("div",Re,[e.createElementVNode("p",qe,e.toDisplayString(n.query),1),e.createElementVNode("p",{class:"text-xs text-muted-foreground truncate",title:n.page},"→ "+e.toDisplayString(e.unref(S)(n.page)),9,Ae)]),e.createElementVNode("div",Ue,[e.createElementVNode("span",Ke,[e.createVNode(e.unref(m.MousePointerClick),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(e.unref(g)(n.clicks)),1)]),e.createElementVNode("span",{class:e.normalizeClass(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium",e.unref($)(n.position)])}," #"+e.toDisplayString(e.unref(b)(n.position)),3)])])])])]))),128))]))}}),Ie={class:"flex flex-col gap-6 w-full max-w-7xl mx-auto py-8"},je={class:"flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center"},He={key:0,class:"flex items-center gap-2"},Xe={class:"flex items-center border rounded-lg overflow-hidden"},Ge=["onClick"],Je={class:"text-sm text-destructive font-medium"},Qe={key:3,class:"flex items-center justify-center py-20"},We={class:"grid grid-cols-1 @3xl:grid-cols-2 gap-4"},Ye={class:"border-b"},Ze={class:"flex"},et=e.defineComponent({__name:"SeoHealth",setup(t){const{config:c}=w.useModule(),{moduleId:a}=w.useModuleRoute();w.useModuleBreadcrumbs(()=>[{label:"SEO Health"}]);const n=e.ref(!0),d=e.ref(null),s=e.ref("30"),o=e.ref([]),l=e.ref({clicks:0,impressions:0,ctr:0,avgPosition:0}),i=e.ref([]),y=e.ref([]),B=e.ref([]),v=e.computed(()=>!!(c.serviceAccount&&c.propertyId&&c.siteUrl)),T=e.computed(()=>!!c.siteUrl);function N(x){return`/api/v1/modules/${a}${x}`}const D=[{label:"7d",value:"7"},{label:"14d",value:"14"},{label:"30d",value:"30"},{label:"90d",value:"90"}];async function V(){if(!v.value)return;n.value=!0,d.value=null;const x=`${s.value}daysAgo`;try{const[r,h,k,f]=await Promise.all([$fetch(N(`/seo/trends?startDate=${x}&endDate=today`)),$fetch(N(`/seo/keywords?startDate=${x}&endDate=today&limit=50`)),$fetch(N(`/seo/pages?startDate=${x}&endDate=today&limit=30`)),$fetch(N(`/seo/query-pages?startDate=${x}&endDate=today`))]);o.value=r.rows||[],l.value=r.totals||{clicks:0,impressions:0,ctr:0,avgPosition:0},i.value=h.rows||[],y.value=k.rows||[],B.value=f.rows||[]}catch(r){d.value=r?.data?.statusMessage||r?.message||"Failed to load SEO data"}finally{n.value=!1}}e.watch(s,()=>V()),e.onMounted(()=>{v.value?V():n.value=!1});const p=e.ref("keywords");return(x,r)=>{const h=e.resolveComponent("Button"),k=e.resolveComponent("Card");return e.openBlock(),e.createElementBlock("div",Ie,[e.createElementVNode("div",je,[r[3]||(r[3]=e.createElementVNode("div",null,[e.createElementVNode("h1",{class:"text-2xl font-semibold"},"SEO Health"),e.createElementVNode("p",{class:"text-muted-foreground text-sm mt-1"},"Search Console performance & keyword rankings")],-1)),v.value?(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("div",Xe,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(D,f=>e.createElementVNode("button",{key:f.value,class:e.normalizeClass(["px-3 py-1.5 text-xs font-medium transition-colors",s.value===f.value?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:tt=>s.value=f.value},e.toDisplayString(f.label),11,Ge)),64))]),e.createVNode(h,{variant:"outline",size:"icon",onClick:V,disabled:n.value},{default:e.withCtx(()=>[e.createVNode(e.unref(m.RefreshCw),{class:e.normalizeClass(["size-4",{"animate-spin":n.value}])},null,8,["class"])]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),T.value?v.value?d.value?(e.openBlock(),e.createBlock(k,{key:2,class:"p-6 border-destructive/50 bg-destructive/5"},{default:e.withCtx(()=>[e.createElementVNode("p",Je,e.toDisplayString(d.value),1),e.createVNode(h,{variant:"outline",size:"sm",class:"mt-3",onClick:V},{default:e.withCtx(()=>[...r[7]||(r[7]=[e.createTextVNode("Retry",-1)])]),_:1})]),_:1})):n.value?(e.openBlock(),e.createElementBlock("div",Qe,[e.createVNode(e.unref(m.Loader2),{class:"size-8 animate-spin text-muted-foreground"})])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createVNode(K,{totals:l.value},null,8,["totals"]),e.createVNode(Z,{keywords:i.value},null,8,["keywords"]),e.createElementVNode("div",We,[e.createVNode(oe,{trends:o.value},null,8,["trends"]),e.createVNode(re,{trends:o.value},null,8,["trends"])]),e.createVNode(k,{class:"overflow-hidden"},{default:e.withCtx(()=>[e.createElementVNode("div",Ye,[e.createElementVNode("div",Ze,[e.createElementVNode("button",{class:e.normalizeClass(["px-4 py-2.5 text-sm font-medium transition-colors border-b-2",p.value==="keywords"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"]),onClick:r[0]||(r[0]=f=>p.value="keywords")},[e.createVNode(e.unref(m.Search),{class:"size-3.5 inline mr-1.5"}),r[8]||(r[8]=e.createTextVNode(" Keywords ",-1))],2),e.createElementVNode("button",{class:e.normalizeClass(["px-4 py-2.5 text-sm font-medium transition-colors border-b-2",p.value==="pages"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"]),onClick:r[1]||(r[1]=f=>p.value="pages")},[e.createVNode(e.unref(m.FileText),{class:"size-3.5 inline mr-1.5"}),r[9]||(r[9]=e.createTextVNode(" Pages ",-1))],2),e.createElementVNode("button",{class:e.normalizeClass(["px-4 py-2.5 text-sm font-medium transition-colors border-b-2",p.value==="mapping"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"]),onClick:r[2]||(r[2]=f=>p.value="mapping")},[e.createVNode(e.unref(m.ArrowUpRight),{class:"size-3.5 inline mr-1.5"}),r[10]||(r[10]=e.createTextVNode(" Keyword → Page ",-1))],2)])]),p.value==="keywords"?(e.openBlock(),e.createBlock(ke,{key:0,keywords:i.value},null,8,["keywords"])):e.createCommentVNode("",!0),p.value==="pages"?(e.openBlock(),e.createBlock(Te,{key:1,pages:y.value},null,8,["pages"])):e.createCommentVNode("",!0),p.value==="mapping"?(e.openBlock(),e.createBlock(Oe,{key:2,queryPages:B.value},null,8,["queryPages"])):e.createCommentVNode("",!0)]),_:1})],64)):(e.openBlock(),e.createBlock(k,{key:1,class:"p-8 text-center"},{default:e.withCtx(()=>[...r[6]||(r[6]=[e.createElementVNode("p",{class:"text-lg font-medium"},"Setup required",-1),e.createElementVNode("p",{class:"text-sm text-muted-foreground mt-1"},"Configure your service account, property ID, and site URL in module settings.",-1)])]),_:1})):(e.openBlock(),e.createBlock(k,{key:0,class:"p-8 text-center space-y-3"},{default:e.withCtx(()=>[e.createVNode(e.unref(m.AlertTriangle),{class:"size-10 text-amber-500 mx-auto"}),r[4]||(r[4]=e.createElementVNode("p",{class:"text-lg font-medium"},"Search Console not configured",-1)),r[5]||(r[5]=e.createElementVNode("p",{class:"text-sm text-muted-foreground max-w-md mx-auto"},[e.createTextVNode(" Add your "),e.createElementVNode("strong",null,"Search Console Site URL"),e.createTextVNode(" in the module settings to enable SEO data. Use the exact format from Google Search Console (e.g. "),e.createElementVNode("code",null,"https://example.com"),e.createTextVNode(" or "),e.createElementVNode("code",null,"sc-domain:example.com"),e.createTextVNode("). ")],-1))]),_:1}))])}}});exports.default=et;