@oneclick.dev/cms-core-modules 0.0.70 → 0.0.72

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 (323) hide show
  1. package/dist/Acquisition-D_Qx7XRY.mjs +400 -0
  2. package/dist/Acquisition-_-cq972V.js +1 -0
  3. package/dist/AppointmentDetailsCard-CtK0Cj_O.js +1 -0
  4. package/dist/AppointmentDetailsCard-i4Ky8WnK.mjs +161 -0
  5. package/dist/AppointmentEditor-BeOtYV6u.mjs +196 -0
  6. package/dist/AppointmentEditor-CaTfbkIf.js +1 -0
  7. package/dist/AppointmentListTable-CQ3uXfa8.js +1 -0
  8. package/dist/AppointmentListTable-G5dIeCYj.mjs +159 -0
  9. package/dist/Audience-BdlrWkY-.mjs +489 -0
  10. package/dist/Audience-QnFQs93n.js +1 -0
  11. package/dist/Content-C-4Cdniz.js +1 -0
  12. package/dist/Content-DW6xvbUo.mjs +358 -0
  13. package/dist/ContentEditor-3JFlC9N1.js +313 -0
  14. package/dist/{ContentEditor-B7IYLH91.mjs → ContentEditor-7SDjf5Hk.mjs} +16535 -25527
  15. package/dist/CountryBreakdownCard-BUfJ-umQ.js +1 -0
  16. package/dist/CountryBreakdownCard-Dc_vZ9dJ.mjs +196 -0
  17. package/dist/{Create-D8NBEkJU.js → Create-CRn2sMHp.js} +1 -1
  18. package/dist/{Create-BDiyCtrp.mjs → Create-DtFzwxn_.mjs} +1 -1
  19. package/dist/DateFormatter-C9qfmQnP.js +1 -0
  20. package/dist/{DateFormatter-DAZP9a6L.mjs → DateFormatter-DfIwyrnF.mjs} +399 -258
  21. package/dist/{Detail-Cxd2VMOl.js → Detail-BcboL7NF.js} +1 -1
  22. package/dist/{Detail-CxUU6BpO.mjs → Detail-BwDnY42G.mjs} +1 -1
  23. package/dist/{Detail-DTHaYmyl.js → Detail-Bxi7lG9x.js} +1 -1
  24. package/dist/{Detail-BGD75ul4.mjs → Detail-CVgWHbMC.mjs} +22 -18
  25. package/dist/DeviceBreakdownCard-BJcQNo8a.mjs +159 -0
  26. package/dist/DeviceBreakdownCard-CsoK6JUO.js +1 -0
  27. package/dist/{Find-B4sAEx0B.mjs → Find-XPcJxeRH.mjs} +1 -1
  28. package/dist/{NewReservationDialog.vue_vue_type_script_setup_true_lang-B-ZhMrMu.js → NewReservationDialog.vue_vue_type_script_setup_true_lang-C5YczjNb.js} +1 -1
  29. package/dist/{NewReservationDialog.vue_vue_type_script_setup_true_lang-CJ7hh7ug.mjs → NewReservationDialog.vue_vue_type_script_setup_true_lang-Ds7z0qeH.mjs} +1 -1
  30. package/dist/{Overview-HvlDEgqi.mjs → Overview--XpvBbqz.mjs} +1 -1
  31. package/dist/Overview-B8OF-JJr.mjs +567 -0
  32. package/dist/Overview-DSU1Nh7B.js +1 -0
  33. package/dist/PeakHoursCard-BNl_U1r_.js +1 -0
  34. package/dist/PeakHoursCard-hV8PdGsf.mjs +182 -0
  35. package/dist/ProductDetailsCard-BwktdlIf.js +1 -0
  36. package/dist/ProductDetailsCard-CJBkZSER.mjs +121 -0
  37. package/dist/RealtimeCard-CRJHS64l.mjs +126 -0
  38. package/dist/RealtimeCard-CxtqQHee.js +1 -0
  39. package/dist/SearchTermsCard-DGRbo5ZP.js +1 -0
  40. package/dist/SearchTermsCard-Dwa-P7My.mjs +201 -0
  41. package/dist/SeoHealth-BqlYiSCj.js +1 -0
  42. package/dist/SeoHealth-DG004AsJ.mjs +523 -0
  43. package/dist/{TableView-C4NNrJpP.js → TableView-CU0a9ih2.js} +162 -199
  44. package/dist/{TableView-B5OyApnP.mjs → TableView-fYC7kB6j.mjs} +23309 -24320
  45. package/dist/TopPagesCard-Dv52to_J.mjs +159 -0
  46. package/dist/TopPagesCard-pZ-nAsaI.js +1 -0
  47. package/dist/TrafficSourcesCard-CBOPV1J1.js +1 -0
  48. package/dist/TrafficSourcesCard-CMhcj2k2.mjs +197 -0
  49. package/dist/VisitorStatsCard-BHn4oSnt.mjs +174 -0
  50. package/dist/VisitorStatsCard-tApB_7v8.js +1 -0
  51. package/dist/{agenda-CTG6N_Lt.mjs → agenda-XqvbrU72.mjs} +2 -2
  52. package/dist/{agenda-OSkAh0Oa.js → agenda-wNFDKn0G.js} +1 -1
  53. package/dist/array-CbATeQbk.js +1 -0
  54. package/dist/array-CvmZXzxF.mjs +108 -0
  55. package/dist/cms-core-modules.css +1 -1
  56. package/dist/{exceptions-CEXIFw47.mjs → exceptions-CLgeeUSy.mjs} +1 -1
  57. package/dist/{exceptions-BvMTqtof.js → exceptions-wEQEVzIs.js} +1 -1
  58. package/dist/floating-ui.dom-BO2Hr6mz.mjs +1292 -0
  59. package/dist/floating-ui.dom-CAr9LGoC.js +1 -0
  60. package/dist/{index-AmUV8LZQ.mjs → index-B-lVEpFX.mjs} +1 -1
  61. package/dist/index-BuzLn4Km.js +54 -0
  62. package/dist/index-C4YUVWzJ.js +75 -0
  63. package/dist/index-CMk3uhUt.mjs +3837 -0
  64. package/dist/{index-Uf7TwBuW.mjs → index-CrGjxSwa.mjs} +4 -4
  65. package/dist/index-D2DYuz8R.mjs +1090 -0
  66. package/dist/index-D3L8WAJI.js +58 -0
  67. package/dist/index-D7JBu6iT.mjs +34 -0
  68. package/dist/index-DQYBP8Js.js +158 -0
  69. package/dist/index-DjDCYQ_6.mjs +441 -0
  70. package/dist/index-DwHYfZl_.js +1 -0
  71. package/dist/{index-Biuv2zTx-DBCin9DT.mjs → index-N6w5-hDF-6k_ELHYC.mjs} +1234 -1234
  72. package/dist/index-N6w5-hDF-DCuxwPBX.js +88 -0
  73. package/dist/index-O_QNuTdG.js +35 -0
  74. package/dist/index-_2lRVt_k.mjs +2942 -0
  75. package/dist/index-p5Uqu8c2.mjs +1438 -0
  76. package/dist/index.cjs.js +1 -1
  77. package/dist/index.mjs +383 -86
  78. package/dist/{resources-DgPnEv76.mjs → resources-CFR_s89Z.mjs} +1 -1
  79. package/dist/src/appointments/chat-components/AppointmentDetailsCard.vue.d.ts +14 -0
  80. package/dist/src/appointments/chat-components/AppointmentEditor.vue.d.ts +14 -0
  81. package/dist/src/appointments/chat-components/AppointmentListTable.vue.d.ts +14 -0
  82. package/dist/src/appointments/index.d.ts +70 -0
  83. package/dist/src/appointments/server.d.ts +19 -0
  84. package/dist/src/appointments/tools.d.ts +56 -16
  85. package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Button.vue.d.ts +3 -1
  86. package/dist/src/contentManager/components/content-editor/tiptap-extensions/CustomClass.d.ts +14 -0
  87. package/dist/src/contentManager/components/content-editor/tiptap-extensions/NodeDragPointerEventsFix.d.ts +2 -0
  88. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuClassBuilder.vue.d.ts +19 -0
  89. package/dist/src/contentManager/components/content-editor/tiptap-menus/BubbleMenuLinkBuilder.vue.d.ts +19 -0
  90. package/dist/src/googleAnalytics/chat-components/CountryBreakdownCard.vue.d.ts +14 -0
  91. package/dist/src/googleAnalytics/chat-components/DeviceBreakdownCard.vue.d.ts +14 -0
  92. package/dist/src/googleAnalytics/chat-components/PeakHoursCard.vue.d.ts +14 -0
  93. package/dist/src/googleAnalytics/chat-components/RealtimeCard.vue.d.ts +14 -0
  94. package/dist/src/googleAnalytics/chat-components/SearchTermsCard.vue.d.ts +14 -0
  95. package/dist/src/googleAnalytics/chat-components/TopPagesCard.vue.d.ts +14 -0
  96. package/dist/src/googleAnalytics/chat-components/TrafficSourcesCard.vue.d.ts +14 -0
  97. package/dist/src/googleAnalytics/chat-components/VisitorStatsCard.vue.d.ts +14 -0
  98. package/dist/src/googleAnalytics/config.d.ts +39 -0
  99. package/dist/src/googleAnalytics/index.d.ts +116 -0
  100. package/dist/src/googleAnalytics/metadata.d.ts +2 -0
  101. package/dist/src/googleAnalytics/pages/Acquisition.vue.d.ts +2 -0
  102. package/dist/src/googleAnalytics/pages/Audience.vue.d.ts +2 -0
  103. package/dist/src/googleAnalytics/pages/Content.vue.d.ts +2 -0
  104. package/dist/src/googleAnalytics/pages/Overview.vue.d.ts +2 -0
  105. package/dist/src/googleAnalytics/pages/SeoHealth.vue.d.ts +2 -0
  106. package/dist/src/googleAnalytics/permissions.d.ts +1 -0
  107. package/dist/src/googleAnalytics/server.d.ts +35 -0
  108. package/dist/src/googleAnalytics/tools.d.ts +59 -0
  109. package/dist/src/index.d.ts +6 -5
  110. package/dist/src/mailTemplates/components/TemplateList.vue.d.ts +2 -0
  111. package/dist/src/mailTemplates/routes.d.ts +5 -0
  112. package/dist/src/mailTemplates/tools.d.ts +1 -0
  113. package/dist/src/productCollections/tools.d.ts +1 -0
  114. package/dist/src/products/chat-components/ProductDetailsCard.vue.d.ts +14 -0
  115. package/dist/src/products/index.d.ts +24 -2
  116. package/dist/src/products/server.d.ts +19 -0
  117. package/dist/src/products/tools.d.ts +21 -2
  118. package/dist/src/promoCodes/tools.d.ts +1 -0
  119. package/dist/src/server-handlers.d.ts +9 -0
  120. package/dist/src/table/tools.d.ts +1 -25
  121. package/package.json +23 -21
  122. package/src/appointments/server.ts +195 -0
  123. package/src/appointments/tools.ts +61 -21
  124. package/src/googleAnalytics/server.ts +1188 -0
  125. package/src/googleAnalytics/tools.ts +158 -0
  126. package/src/mailTemplates/tools.ts +1 -0
  127. package/src/productCollections/tools.ts +1 -0
  128. package/src/products/server.ts +146 -0
  129. package/src/products/tools.ts +19 -0
  130. package/src/promoCodes/tools.ts +1 -0
  131. package/src/table/tools.ts +1 -25
  132. package/dist/ContentEditor-LOn09n7N.js +0 -307
  133. package/dist/DateFormatter-Bw-SCfUS.js +0 -1
  134. package/dist/floating-ui.dom-CBBY0Ism.js +0 -1
  135. package/dist/floating-ui.dom-xfqXu4GA.mjs +0 -1138
  136. package/dist/index-Biuv2zTx-DHiVlXFj.js +0 -88
  137. package/dist/index-HLGxDG-0.mjs +0 -7746
  138. package/dist/index-n2p9TTRq.js +0 -245
  139. package/dist/src/content-manager/components/content-editor/tiptap-extensions/DragHandle.d.ts +0 -76
  140. package/dist/src/content-manager/components/content-editor/tiptap-extensions/NodeDragPointerEventsFix.d.ts +0 -7
  141. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/drag-handle-plugin.d.ts +0 -25
  142. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/drag-handle.d.ts +0 -50
  143. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/helpers/cloneElement.d.ts +0 -1
  144. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/helpers/dragHandler.d.ts +0 -2
  145. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/helpers/findNextElementFromCursor.d.ts +0 -17
  146. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/helpers/getComputedStyle.d.ts +0 -1
  147. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/helpers/getInnerCoords.d.ts +0 -5
  148. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/helpers/getOuterNode.d.ts +0 -3
  149. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/helpers/minMax.d.ts +0 -1
  150. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/helpers/removeNode.d.ts +0 -1
  151. package/dist/src/content-manager/components/content-editor/tiptap-extensions/extension-drag-handle/index.d.ts +0 -4
  152. package/dist/src/mail-templates/tools.d.ts +0 -25
  153. package/dist/src/product-collections/tools.d.ts +0 -25
  154. package/dist/src/promo-codes/tools.d.ts +0 -25
  155. package/src/mail-templates/tools.ts +0 -25
  156. package/src/product-collections/tools.ts +0 -25
  157. package/src/promo-codes/tools.ts +0 -25
  158. /package/dist/src/{content-manager → contentManager}/components/components/ComponentDialog.vue.d.ts +0 -0
  159. /package/dist/src/{content-manager → contentManager}/components/components/ComponentGridItem.vue.d.ts +0 -0
  160. /package/dist/src/{content-manager → contentManager}/components/content-editor/ApiDocs.vue.d.ts +0 -0
  161. /package/dist/src/{content-manager → contentManager}/components/content-editor/ContentLayout.vue.d.ts +0 -0
  162. /package/dist/src/{content-manager → contentManager}/components/content-editor/ContentSettings.vue.d.ts +0 -0
  163. /package/dist/src/{content-manager → contentManager}/components/content-editor/ContentStructuredContentSections.vue.d.ts +0 -0
  164. /package/dist/src/{content-manager → contentManager}/components/content-editor/Header.vue.d.ts +0 -0
  165. /package/dist/src/{content-manager → contentManager}/components/content-editor/LivePreviewWrapper.vue.d.ts +0 -0
  166. /package/dist/src/{content-manager → contentManager}/components/content-editor/Locales.vue.d.ts +0 -0
  167. /package/dist/src/{content-manager → contentManager}/components/content-editor/NewSectionDialog.vue.d.ts +0 -0
  168. /package/dist/src/{content-manager → contentManager}/components/content-editor/PageSettings.vue.d.ts +0 -0
  169. /package/dist/src/{content-manager → contentManager}/components/content-editor/SEO.vue.d.ts +0 -0
  170. /package/dist/src/{content-manager → contentManager}/components/content-editor/SidebarSectionWrapper.vue.d.ts +0 -0
  171. /package/dist/src/{content-manager → contentManager}/components/content-editor/Status.vue.d.ts +0 -0
  172. /package/dist/src/{content-manager → contentManager}/components/content-editor/Versions.vue.d.ts +0 -0
  173. /package/dist/src/{content-manager → contentManager}/components/content-editor/code-examples.d.ts +0 -0
  174. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Button.d.ts +0 -0
  175. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Card.d.ts +0 -0
  176. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Card.vue.d.ts +0 -0
  177. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Column.d.ts +0 -0
  178. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Column.vue.d.ts +0 -0
  179. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/ComponentEditorNode.d.ts +0 -0
  180. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Container.d.ts +0 -0
  181. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Container.vue.d.ts +0 -0
  182. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Divider.d.ts +0 -0
  183. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Divider.vue.d.ts +0 -0
  184. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/EmptySpace.d.ts +0 -0
  185. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/EmptySpace.vue.d.ts +0 -0
  186. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Heading.d.ts +0 -0
  187. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Heading.vue.d.ts +0 -0
  188. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Image.d.ts +0 -0
  189. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Image.vue.d.ts +0 -0
  190. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/LockBlocks.d.ts +0 -0
  191. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Map.d.ts +0 -0
  192. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Map.vue.d.ts +0 -0
  193. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/OnlyContainerDocument.d.ts +0 -0
  194. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Paragraph.d.ts +0 -0
  195. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Paragraph.vue.d.ts +0 -0
  196. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Row.d.ts +0 -0
  197. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Row.vue.d.ts +0 -0
  198. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/ScopedSelectAll.d.ts +0 -0
  199. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Stack.d.ts +0 -0
  200. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Stack.vue.d.ts +0 -0
  201. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/TrailingNodeInContainers.d.ts +0 -0
  202. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Video.d.ts +0 -0
  203. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/Video.vue.d.ts +0 -0
  204. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/DetailsNodeView.vue.d.ts +0 -0
  205. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/content/details-content.d.ts +0 -0
  206. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/content/index.d.ts +0 -0
  207. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/details.d.ts +0 -0
  208. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/helpers/findClosestVisibleNode.d.ts +0 -0
  209. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/helpers/isNodeVisible.d.ts +0 -0
  210. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/helpers/setGapCursor.d.ts +0 -0
  211. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/index.d.ts +0 -0
  212. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/summary/details-summary.d.ts +0 -0
  213. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/extension-details/summary/index.d.ts +0 -0
  214. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/helpers/NodeLabel.vue.d.ts +0 -0
  215. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/helpers/ResizeHandlers.vue.d.ts +0 -0
  216. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/helpers/TopMarginDragger.vue.d.ts +0 -0
  217. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/helpers/useContainerFocus.d.ts +0 -0
  218. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-extensions/helpers/useFocus.d.ts +0 -0
  219. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/BubbleMenuToggleButton.vue.d.ts +0 -0
  220. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/DefaultBubbleMenu.vue.d.ts +0 -0
  221. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +0 -0
  222. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/EmojiMenu.vue.d.ts +0 -0
  223. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/NewNodeView.vue.d.ts +0 -0
  224. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/SlashMenu.vue.d.ts +0 -0
  225. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/SlashMenuButton.vue.d.ts +0 -0
  226. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/ButtonMenu.vue.d.ts +0 -0
  227. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/CardMenu.vue.d.ts +0 -0
  228. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/ColumnMenu.vue.d.ts +0 -0
  229. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/DividerMenu.vue.d.ts +0 -0
  230. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/EmptySpaceMenu.vue.d.ts +0 -0
  231. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/HeadingMenu.vue.d.ts +0 -0
  232. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/ImageMenu.vue.d.ts +0 -0
  233. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/MapMenu.vue.d.ts +0 -0
  234. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/RowMenu.vue.d.ts +0 -0
  235. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/StackMenu.vue.d.ts +0 -0
  236. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/TextMenu.vue.d.ts +0 -0
  237. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/VideoMenu.vue.d.ts +0 -0
  238. /package/dist/src/{content-manager → contentManager}/components/content-editor/tiptap-menus/element-editor-views/index.d.ts +0 -0
  239. /package/dist/src/{content-manager → contentManager}/components/overview/CollectionDialog.vue.d.ts +0 -0
  240. /package/dist/src/{content-manager → contentManager}/components/overview/CollectionsGridView.vue.d.ts +0 -0
  241. /package/dist/src/{content-manager → contentManager}/components/overview/ContentEntryContextMenu.vue.d.ts +0 -0
  242. /package/dist/src/{content-manager → contentManager}/components/overview/FilterPopover.vue.d.ts +0 -0
  243. /package/dist/src/{content-manager → contentManager}/components/overview/ListView.vue.d.ts +0 -0
  244. /package/dist/src/{content-manager → contentManager}/components/styling/ButtonStyleDialog.vue.d.ts +0 -0
  245. /package/dist/src/{content-manager → contentManager}/components/styling/CardStyleDialog.vue.d.ts +0 -0
  246. /package/dist/src/{content-manager → contentManager}/components/styling/SectionStyleDialog.vue.d.ts +0 -0
  247. /package/dist/src/{content-manager → contentManager}/config.d.ts +0 -0
  248. /package/dist/src/{content-manager → contentManager}/index.d.ts +0 -0
  249. /package/dist/src/{content-manager → contentManager}/index.vue.d.ts +0 -0
  250. /package/dist/src/{content-manager → contentManager}/metadata.d.ts +0 -0
  251. /package/dist/src/{content-manager → contentManager}/pages/Components.vue.d.ts +0 -0
  252. /package/dist/src/{content-manager → contentManager}/pages/ContentEditor.vue.d.ts +0 -0
  253. /package/dist/src/{content-manager → contentManager}/pages/Entries.vue.d.ts +0 -0
  254. /package/dist/src/{content-manager → contentManager}/pages/GlobalStyling.vue.d.ts +0 -0
  255. /package/dist/src/{content-manager → contentManager}/pages/Overview.vue.d.ts +0 -0
  256. /package/dist/src/{content-manager → contentManager}/permissions.d.ts +0 -0
  257. /package/dist/src/{content-manager → contentManager}/routes.d.ts +0 -0
  258. /package/dist/src/{content-manager → contentManager}/stores/useTableStore.d.ts +0 -0
  259. /package/dist/src/{content-manager → contentManager}/tools.d.ts +0 -0
  260. /package/dist/src/{content-manager → contentManager}/types.d.ts +0 -0
  261. /package/dist/src/{mail-templates/components/TemplateList.vue.d.ts → googleAnalytics/index.vue.d.ts} +0 -0
  262. /package/dist/src/{mail-templates → googleAnalytics}/routes.d.ts +0 -0
  263. /package/dist/src/{mail-templates → mailTemplates}/config.d.ts +0 -0
  264. /package/dist/src/{mail-templates → mailTemplates}/index.d.ts +0 -0
  265. /package/dist/src/{mail-templates → mailTemplates}/index.vue.d.ts +0 -0
  266. /package/dist/src/{mail-templates → mailTemplates}/metadata.d.ts +0 -0
  267. /package/dist/src/{mail-templates → mailTemplates}/pages/Detail.vue.d.ts +0 -0
  268. /package/dist/src/{mail-templates → mailTemplates}/pages/Overview.vue.d.ts +0 -0
  269. /package/dist/src/{mail-templates → mailTemplates}/permissions.d.ts +0 -0
  270. /package/dist/src/{mail-templates → mailTemplates}/stores/useTableStore.d.ts +0 -0
  271. /package/dist/src/{mail-templates → mailTemplates}/types.d.ts +0 -0
  272. /package/dist/src/{product-collections → productCollections}/components/detail/Main.vue.d.ts +0 -0
  273. /package/dist/src/{product-collections → productCollections}/components/detail/SEO.vue.d.ts +0 -0
  274. /package/dist/src/{product-collections → productCollections}/components/detail/Status.vue.d.ts +0 -0
  275. /package/dist/src/{product-collections → productCollections}/components/overview/ListView.vue.d.ts +0 -0
  276. /package/dist/src/{product-collections → productCollections}/composables/useTable.d.ts +0 -0
  277. /package/dist/src/{product-collections → productCollections}/config.d.ts +0 -0
  278. /package/dist/src/{product-collections → productCollections}/index.d.ts +0 -0
  279. /package/dist/src/{product-collections → productCollections}/index.vue.d.ts +0 -0
  280. /package/dist/src/{product-collections → productCollections}/metadata.d.ts +0 -0
  281. /package/dist/src/{product-collections → productCollections}/pages/Detail.vue.d.ts +0 -0
  282. /package/dist/src/{product-collections → productCollections}/pages/Overview.vue.d.ts +0 -0
  283. /package/dist/src/{product-collections → productCollections}/permissions.d.ts +0 -0
  284. /package/dist/src/{product-collections → productCollections}/routes.d.ts +0 -0
  285. /package/dist/src/{product-collections → productCollections}/stores/useTableStore.d.ts +0 -0
  286. /package/dist/src/{product-collections → productCollections}/types.d.ts +0 -0
  287. /package/dist/src/{promo-codes → promoCodes}/components/create/DateRange.vue.d.ts +0 -0
  288. /package/dist/src/{promo-codes → promoCodes}/components/create/MultiCodes.vue.d.ts +0 -0
  289. /package/dist/src/{promo-codes → promoCodes}/components/create/Note.vue.d.ts +0 -0
  290. /package/dist/src/{promo-codes → promoCodes}/components/create/SingleCode.vue.d.ts +0 -0
  291. /package/dist/src/{promo-codes → promoCodes}/components/create/TypeAndValue/TypeDetailDialog.vue.d.ts +0 -0
  292. /package/dist/src/{promo-codes → promoCodes}/components/create/TypeAndValue/TypeManageDialog.vue.d.ts +0 -0
  293. /package/dist/src/{promo-codes → promoCodes}/components/create/TypeAndValue/index.vue.d.ts +0 -0
  294. /package/dist/src/{promo-codes → promoCodes}/config.d.ts +0 -0
  295. /package/dist/src/{promo-codes → promoCodes}/index.d.ts +0 -0
  296. /package/dist/src/{promo-codes → promoCodes}/index.vue.d.ts +0 -0
  297. /package/dist/src/{promo-codes → promoCodes}/metadata.d.ts +0 -0
  298. /package/dist/src/{promo-codes → promoCodes}/pages/Create.vue.d.ts +0 -0
  299. /package/dist/src/{promo-codes → promoCodes}/pages/Detail.vue.d.ts +0 -0
  300. /package/dist/src/{promo-codes → promoCodes}/pages/Find.vue.d.ts +0 -0
  301. /package/dist/src/{promo-codes → promoCodes}/permissions.d.ts +0 -0
  302. /package/dist/src/{promo-codes → promoCodes}/routes.d.ts +0 -0
  303. /package/dist/src/{promo-codes → promoCodes}/stores/useTableStore.d.ts +0 -0
  304. /package/dist/src/{promo-codes → promoCodes}/types.d.ts +0 -0
  305. /package/dist/src/{shipping-options → shippingOptions}/components/detail/Condition.vue.d.ts +0 -0
  306. /package/dist/src/{shipping-options → shippingOptions}/components/detail/Countries.vue.d.ts +0 -0
  307. /package/dist/src/{shipping-options → shippingOptions}/components/detail/Example.vue.d.ts +0 -0
  308. /package/dist/src/{shipping-options → shippingOptions}/components/detail/Main.vue.d.ts +0 -0
  309. /package/dist/src/{shipping-options → shippingOptions}/components/overview/ListView.vue.d.ts +0 -0
  310. /package/dist/src/{shipping-options → shippingOptions}/composables/useTable.d.ts +0 -0
  311. /package/dist/src/{shipping-options → shippingOptions}/config.d.ts +0 -0
  312. /package/dist/src/{shipping-options → shippingOptions}/index.d.ts +0 -0
  313. /package/dist/src/{shipping-options → shippingOptions}/index.vue.d.ts +0 -0
  314. /package/dist/src/{shipping-options → shippingOptions}/metadata.d.ts +0 -0
  315. /package/dist/src/{shipping-options → shippingOptions}/pages/Detail.vue.d.ts +0 -0
  316. /package/dist/src/{shipping-options → shippingOptions}/pages/Overview.vue.d.ts +0 -0
  317. /package/dist/src/{shipping-options → shippingOptions}/permissions.d.ts +0 -0
  318. /package/dist/src/{shipping-options → shippingOptions}/routes.d.ts +0 -0
  319. /package/dist/src/{shipping-options → shippingOptions}/stores/useTableStore.d.ts +0 -0
  320. /package/dist/src/{shipping-options → shippingOptions}/tools.d.ts +0 -0
  321. /package/dist/src/{shipping-options → shippingOptions}/types.d.ts +0 -0
  322. /package/src/{content-manager → contentManager}/tools.ts +0 -0
  323. /package/src/{shipping-options → shippingOptions}/tools.ts +0 -0
@@ -0,0 +1,201 @@
1
+ import { defineComponent as O, computed as _, ref as h, onMounted as H, resolveComponent as J, openBlock as u, createElementBlock as m, unref as s, createVNode as l, createElementVNode as o, toDisplayString as i, Fragment as C, renderList as W, normalizeStyle as X, createTextVNode as g, createCommentVNode as Y, withCtx as Z } from "vue";
2
+ import { Loader2 as ee, Search as z, MousePointerClick as A, Eye as se, TrendingUp as N, Hash as te, Users as oe, ExternalLink as ne } from "lucide-vue-next";
3
+ const ae = { class: "w-full" }, re = {
4
+ key: 0,
5
+ class: "flex items-center gap-2 py-3"
6
+ }, ie = {
7
+ key: 1,
8
+ class: "text-xs text-destructive py-2"
9
+ }, le = {
10
+ key: 2,
11
+ class: "rounded-xl border bg-background p-4 text-center space-y-2"
12
+ }, ce = {
13
+ key: 3,
14
+ class: "rounded-xl border bg-background overflow-hidden"
15
+ }, de = { class: "px-3 py-2 border-b bg-muted/40 flex items-center justify-between" }, ue = { class: "flex items-center gap-2" }, me = { class: "text-xs font-medium" }, ge = { class: "text-[10px] text-muted-foreground" }, pe = { class: "divide-y" }, he = { class: "flex items-center gap-2 mb-1.5" }, fe = { class: "text-[10px] font-medium text-muted-foreground w-5 text-right shrink-0" }, xe = { class: "text-xs font-medium truncate flex-1" }, _e = { class: "ml-7 space-y-1.5" }, ve = { class: "h-1.5 rounded-full bg-muted overflow-hidden" }, ye = {
16
+ key: 0,
17
+ class: "flex items-center gap-3 text-[10px] text-muted-foreground"
18
+ }, be = { class: "flex items-center gap-1" }, ke = { class: "flex items-center gap-1" }, Se = { class: "flex items-center gap-1" }, Te = { class: "flex items-center gap-1" }, $e = {
19
+ key: 1,
20
+ class: "flex items-center gap-3 text-[10px] text-muted-foreground"
21
+ }, we = { class: "flex items-center gap-1" }, Le = { class: "flex items-center gap-1" }, Ce = { class: "flex items-center gap-1" }, ze = { class: "px-3 py-2 border-t bg-muted/20 flex items-center justify-between" }, Ae = { class: "text-[10px] text-muted-foreground" }, Fe = /* @__PURE__ */ O({
22
+ __name: "SearchTermsCard",
23
+ props: {
24
+ toolName: {},
25
+ instanceId: {},
26
+ instanceName: {},
27
+ moduleType: {},
28
+ resolvedArgs: {},
29
+ status: {}
30
+ },
31
+ emits: ["submit"],
32
+ setup(T, { emit: D }) {
33
+ const p = T, F = D, P = useRoute(), M = _(() => P.params.slug), R = useModuleApi(p.instanceId), v = h(!0), f = h(null), n = h([]), $ = h(0), y = h(null), x = h("google_ads"), U = (e) => e.label || e.query || e.sessionGoogleAdsQuery || e.landingPagePlusQueryString || "—";
34
+ function j() {
35
+ const e = p.resolvedArgs?._cachedData;
36
+ return e ? (x.value = e.source || "google_ads", e.source === "search_console" ? n.value = (e.searchTerms || []).map((t) => ({
37
+ label: t.term,
38
+ clicks: t.clicks,
39
+ impressions: t.impressions,
40
+ ctr: t.ctr,
41
+ position: t.position
42
+ })) : n.value = (e.searchTerms || []).map((t) => ({
43
+ label: t.term,
44
+ sessions: t.sessions,
45
+ totalUsers: t.users,
46
+ engagementRate: parseFloat(t.engagementRate) / 100
47
+ })), $.value = e.count || n.value.length, y.value = p.resolvedArgs._fetchedAt || null, v.value = !1, !0) : !1;
48
+ }
49
+ async function E() {
50
+ const { startDate: e, endDate: t } = p.resolvedArgs || {};
51
+ v.value = !0, f.value = null;
52
+ try {
53
+ const c = new URLSearchParams();
54
+ e && c.set("startDate", e), t && c.set("endDate", t);
55
+ const a = await R.get(`/content/search-terms?${c.toString()}`), d = a.source || "google_ads";
56
+ if (x.value = d, d === "search_console")
57
+ n.value = (a.rows || []).map((r) => ({
58
+ ...r,
59
+ label: r.query
60
+ }));
61
+ else {
62
+ const r = d === "organic_landing_pages" ? "landingPagePlusQueryString" : "sessionGoogleAdsQuery";
63
+ n.value = (a.rows || []).map((k) => ({
64
+ ...k,
65
+ label: k[r]
66
+ }));
67
+ }
68
+ $.value = a.rowCount || n.value.length, y.value = (/* @__PURE__ */ new Date()).toISOString();
69
+ const K = () => {
70
+ if (n.value.length === 0) return "No search data found for this period.";
71
+ const r = n.value.slice(0, 5).map((k) => k.label).join(", ");
72
+ return d === "search_console" ? `Found ${n.value.length} search queries from Google Search Console. The top keywords are: ${r}.` : d === "organic_landing_pages" ? `Found ${n.value.length} pages receiving organic search traffic. The top organic landing pages are: ${r}.` : `Found ${n.value.length} search terms. The top keywords driving traffic are: ${r}.`;
73
+ }, B = n.value.map((r) => d === "search_console" ? {
74
+ term: r.label,
75
+ clicks: r.clicks,
76
+ impressions: r.impressions,
77
+ ctr: r.ctr,
78
+ position: r.position
79
+ } : {
80
+ term: r.label,
81
+ sessions: r.sessions,
82
+ users: r.totalUsers,
83
+ engagementRate: `${(r.engagementRate * 100).toFixed(1)}%`
84
+ });
85
+ w({
86
+ count: n.value.length,
87
+ source: d,
88
+ searchTerms: B,
89
+ suggestion: K()
90
+ });
91
+ } catch (c) {
92
+ f.value = c?.data?.statusMessage || c?.message || "Failed to load search data", w(`Error loading search data: ${f.value}`);
93
+ } finally {
94
+ v.value = !1;
95
+ }
96
+ }
97
+ H(() => {
98
+ p.status === "completed" && j() || E();
99
+ });
100
+ function w(e) {
101
+ p.status !== "completed" && F("submit", e);
102
+ }
103
+ const b = (e) => e == null ? "0" : Math.round(e).toLocaleString(), L = (e) => e == null ? "0%" : `${(e * 100).toFixed(1)}%`, V = (e) => e == null ? "—" : e.toFixed(1), G = (e) => e ? new Date(e).toLocaleString(void 0, { month: "short", day: "numeric", hour: "2-digit", minute: "2-digit" }) : "", S = _(() => x.value === "search_console"), I = _(() => n.value.length === 0 ? 1 : S.value ? Math.max(...n.value.map((e) => e.clicks || 0)) : Math.max(...n.value.map((e) => e.sessions || 0))), Q = _(() => x.value === "search_console" ? "Search Keywords (Search Console)" : x.value === "organic_landing_pages" ? "Top Organic Landing Pages" : "Search Terms & Keywords"), q = _(() => {
104
+ const { startDate: e, endDate: t } = p.resolvedArgs || {};
105
+ if (!e && !t) return "Last 30 days";
106
+ const c = e || "30daysAgo", a = c.match(/^(\d+)daysAgo$/);
107
+ return a ? `Last ${a[1]} days` : `${c} → ${t || "today"}`;
108
+ });
109
+ return (e, t) => {
110
+ const c = J("NuxtLink");
111
+ return u(), m("div", ae, [
112
+ s(v) ? (u(), m("div", re, [
113
+ l(s(ee), { class: "size-4 animate-spin text-muted-foreground" }),
114
+ t[0] || (t[0] = o("span", { class: "text-xs text-muted-foreground" }, "Loading search data…", -1))
115
+ ])) : s(f) ? (u(), m("div", ie, i(s(f)), 1)) : s(n).length === 0 ? (u(), m("div", le, [
116
+ l(s(z), { class: "size-8 text-muted-foreground mx-auto" }),
117
+ t[1] || (t[1] = o("p", { class: "text-sm text-muted-foreground" }, "No search data found for this period.", -1))
118
+ ])) : (u(), m("div", ce, [
119
+ o("div", de, [
120
+ o("div", ue, [
121
+ l(s(z), { class: "size-3.5 text-primary" }),
122
+ o("span", me, i(s(Q)), 1)
123
+ ]),
124
+ o("span", ge, i(s(q)), 1)
125
+ ]),
126
+ o("div", pe, [
127
+ (u(!0), m(C, null, W(s(n), (a, d) => (u(), m("div", {
128
+ key: d,
129
+ class: "px-3 py-2.5 hover:bg-muted/30 transition-colors"
130
+ }, [
131
+ o("div", he, [
132
+ o("span", fe, i(d + 1) + ".", 1),
133
+ o("span", xe, i(U(a)), 1)
134
+ ]),
135
+ o("div", _e, [
136
+ o("div", ve, [
137
+ o("div", {
138
+ class: "h-full rounded-full bg-amber-500/70 transition-all",
139
+ style: X({ width: `${((s(S) ? a.clicks : a.sessions) || 0) / s(I) * 100}%` })
140
+ }, null, 4)
141
+ ]),
142
+ s(S) ? (u(), m("div", ye, [
143
+ o("span", be, [
144
+ l(s(A), { class: "size-2.5" }),
145
+ g(" " + i(b(a.clicks)) + " clicks ", 1)
146
+ ]),
147
+ o("span", ke, [
148
+ l(s(se), { class: "size-2.5" }),
149
+ g(" " + i(b(a.impressions)) + " impr. ", 1)
150
+ ]),
151
+ o("span", Se, [
152
+ l(s(N), { class: "size-2.5" }),
153
+ g(" " + i(L(a.ctr)) + " CTR ", 1)
154
+ ]),
155
+ o("span", Te, [
156
+ l(s(te), { class: "size-2.5" }),
157
+ g(" pos " + i(V(a.position)), 1)
158
+ ])
159
+ ])) : (u(), m("div", $e, [
160
+ o("span", we, [
161
+ l(s(A), { class: "size-2.5" }),
162
+ g(" " + i(b(a.sessions)) + " sessions ", 1)
163
+ ]),
164
+ o("span", Le, [
165
+ l(s(oe), { class: "size-2.5" }),
166
+ g(" " + i(b(a.totalUsers)) + " users ", 1)
167
+ ]),
168
+ o("span", Ce, [
169
+ l(s(N), { class: "size-2.5" }),
170
+ g(" " + i(L(a.engagementRate)) + " engaged ", 1)
171
+ ])
172
+ ]))
173
+ ])
174
+ ]))), 128))
175
+ ]),
176
+ o("div", ze, [
177
+ o("span", Ae, [
178
+ g(i(s(n).length) + " result" + i(s(n).length === 1 ? "" : "s") + " ", 1),
179
+ s(y) ? (u(), m(C, { key: 0 }, [
180
+ g(" · fetched " + i(G(s(y))), 1)
181
+ ], 64)) : Y("", !0)
182
+ ]),
183
+ l(c, {
184
+ to: `/projects/${s(M)}/modules/${T.instanceId}`,
185
+ class: "inline-flex items-center gap-1.5 text-xs text-primary hover:underline"
186
+ }, {
187
+ default: Z(() => [
188
+ l(s(ne), { class: "size-3" }),
189
+ t[2] || (t[2] = g(" View full report ", -1))
190
+ ]),
191
+ _: 1
192
+ }, 8, ["to"])
193
+ ])
194
+ ]))
195
+ ]);
196
+ };
197
+ }
198
+ });
199
+ export {
200
+ Fe as default
201
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),z=require("@oneclick.dev/cms-kit");require("./index-BuzLn4Km.js");const b=require("./index-N6w5-hDF-DCuxwPBX.js"),r=require("lucide-vue-next"),a=require("./index-DQYBP8Js.js"),w=require("./index-C4YUVWzJ.js"),O={class:"w-full max-w-7xl mx-auto py-8 px-4 space-y-6"},I={class:"flex items-center justify-between"},H={key:0,class:"flex items-center gap-2"},X={class:"flex items-center border rounded-lg overflow-hidden"},G=["onClick"],J={class:"text-sm text-destructive font-medium"},Q={key:3,class:"flex items-center justify-center py-20"},W={class:"grid grid-cols-2 @3xl:grid-cols-4 gap-4"},Y={class:"flex items-center gap-2 text-xs text-muted-foreground"},Z={class:"text-2xl font-bold tabular-nums"},ee={class:"flex items-center gap-2 text-xs text-muted-foreground"},te={class:"text-2xl font-bold tabular-nums"},oe={class:"flex items-center gap-2 text-xs text-muted-foreground"},se={class:"text-2xl font-bold tabular-nums"},re={class:"flex items-center gap-2 text-xs text-muted-foreground"},ne={class:"flex items-center gap-4"},le={class:"flex items-center gap-2"},ae={class:"text-xs"},ie={class:"flex items-center gap-2"},de={class:"text-xs"},ce={class:"flex items-center gap-2"},ue={class:"text-xs"},me={class:"flex items-center gap-2"},pe={class:"text-xs"},xe={key:0,class:"flex h-3 rounded-full overflow-hidden mt-3"},fe={class:"grid grid-cols-1 @3xl:grid-cols-2 gap-4"},ge={key:0,class:"h-48"},ve={key:1,class:"text-xs text-muted-foreground text-center py-10"},ye={key:0,class:"h-48"},Ne={key:1,class:"text-xs text-muted-foreground text-center py-10"},Ve={class:"border-b"},he={class:"flex"},ke={key:0,class:"divide-y"},Ee={key:0,class:"p-8 text-center text-sm text-muted-foreground"},_e={class:"flex items-center gap-3"},be={class:"text-xs font-medium text-muted-foreground w-6 text-right shrink-0"},we={class:"flex-1 min-w-0"},Ce={class:"text-sm font-medium truncate"},Be={class:"h-1.5 rounded-full bg-muted overflow-hidden mt-1.5 max-w-xs"},Se={class:"flex items-center gap-4 text-xs text-muted-foreground shrink-0"},De={class:"flex items-center gap-1 w-16 justify-end"},Te={class:"flex items-center gap-1 w-16 justify-end"},ze={class:"w-14 text-right"},$e={key:1,class:"divide-y"},Pe={key:0,class:"p-8 text-center text-sm text-muted-foreground"},Fe={class:"flex items-center gap-3"},Me={class:"text-xs font-medium text-muted-foreground w-6 text-right shrink-0"},Le={class:"flex-1 min-w-0"},Re=["title"],Ae={class:"h-1.5 rounded-full bg-muted overflow-hidden mt-1.5 max-w-xs"},Ue={class:"flex items-center gap-4 text-xs text-muted-foreground shrink-0"},je={class:"flex items-center gap-1 w-16 justify-end"},qe={class:"flex items-center gap-1 w-16 justify-end"},Ke={class:"w-14 text-right"},Oe={key:2,class:"divide-y"},Ie={key:0,class:"p-8 text-center text-sm text-muted-foreground"},He={class:"flex items-start gap-3"},Xe={class:"text-xs font-medium text-muted-foreground w-6 text-right shrink-0 mt-0.5"},Ge={class:"flex-1 min-w-0 space-y-0.5"},Je={class:"text-sm font-medium"},Qe=["title"],We={class:"flex items-center gap-4 text-xs text-muted-foreground shrink-0"},Ye={class:"flex items-center gap-1"},Ze=e.defineComponent({__name:"SeoHealth",setup(et){const{config:f}=z.useModule(),{moduleId:R}=z.useModuleRoute();z.useModuleBreadcrumbs(()=>[{label:"SEO Health"}]);const p=e.ref(!0),g=e.ref(null),v=e.ref("30"),u=e.ref([]),x=e.ref({clicks:0,impressions:0,ctr:0,avgPosition:0}),n=e.ref([]),y=e.ref([]),C=e.ref([]),N=e.computed(()=>!!(f.serviceAccount&&f.propertyId&&f.siteUrl)),A=e.computed(()=>!!f.siteUrl);function V(o){return`/api/v1/modules/${R}${o}`}const U=[{label:"7d",value:"7"},{label:"14d",value:"14"},{label:"30d",value:"30"},{label:"90d",value:"90"}],h=(o,t)=>t,$=o=>o.clicks||0,P=o=>o.impressions||0,F=o=>{const t=u.value[Math.round(o)];if(!t)return"";const c=new Date(t.date);return`${c.getDate()}/${c.getMonth()+1}`},M=o=>{const t=u.value[Math.round(Number(o))];return t?new Date(t.date).toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}):""};function m(o){return o>=1e6?`${(o/1e6).toFixed(1)}M`:o>=1e3?`${(o/1e3).toFixed(1)}K`:Math.round(o).toString()}function B(o){return`${(o*100).toFixed(1)}%`}function k(o){return o.toFixed(1)}function j(o){return o<=3?"text-emerald-600 dark:text-emerald-400":o<=10?"text-blue-600 dark:text-blue-400":o<=20?"text-amber-600 dark:text-amber-400":"text-red-600 dark:text-red-400"}function S(o){return o<=3?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":o<=10?"bg-blue-500/10 text-blue-600 dark:text-blue-400":o<=20?"bg-amber-500/10 text-amber-600 dark:text-amber-400":"bg-red-500/10 text-red-600 dark:text-red-400"}function L(o){try{return new URL(o).pathname}catch{return o}}const D=e.computed(()=>n.value.filter(o=>o.position<=3).length),T=e.computed(()=>n.value.filter(o=>o.position<=10).length),E=e.computed(()=>n.value.filter(o=>o.position<=20).length),q=e.computed(()=>Math.max(...n.value.map(o=>o.clicks),1)),K=e.computed(()=>Math.max(...y.value.map(o=>o.clicks),1));async function _(){if(!N.value)return;p.value=!0,g.value=null;const o=`${v.value}daysAgo`;try{const[t,c,l,s]=await Promise.all([$fetch(V(`/seo/trends?startDate=${o}&endDate=today`)),$fetch(V(`/seo/keywords?startDate=${o}&endDate=today&limit=50`)),$fetch(V(`/seo/pages?startDate=${o}&endDate=today&limit=30`)),$fetch(V(`/seo/query-pages?startDate=${o}&endDate=today`))]);u.value=t.rows||[],x.value=t.totals||{clicks:0,impressions:0,ctr:0,avgPosition:0},n.value=c.rows||[],y.value=l.rows||[],C.value=s.rows||[]}catch(t){g.value=t?.data?.statusMessage||t?.message||"Failed to load SEO data"}finally{p.value=!1}}e.watch(v,()=>_()),e.onMounted(()=>{N.value?_():p.value=!1});const i=e.ref("keywords");return(o,t)=>{const c=e.resolveComponent("Button"),l=e.resolveComponent("Card");return e.openBlock(),e.createElementBlock("div",O,[e.createElementVNode("div",I,[t[3]||(t[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)),N.value?(e.openBlock(),e.createElementBlock("div",H,[e.createElementVNode("div",X,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(U,s=>e.createElementVNode("button",{key:s.value,class:e.normalizeClass(["px-3 py-1.5 text-xs font-medium transition-colors",v.value===s.value?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground hover:bg-muted"]),onClick:d=>v.value=s.value},e.toDisplayString(s.label),11,G)),64))]),e.createVNode(c,{variant:"outline",size:"icon",onClick:_,disabled:p.value},{default:e.withCtx(()=>[e.createVNode(e.unref(r.RefreshCw),{class:e.normalizeClass(["size-4",{"animate-spin":p.value}])},null,8,["class"])]),_:1},8,["disabled"])])):e.createCommentVNode("",!0)]),A.value?N.value?g.value?(e.openBlock(),e.createBlock(l,{key:2,class:"p-6 border-destructive/50 bg-destructive/5"},{default:e.withCtx(()=>[e.createElementVNode("p",J,e.toDisplayString(g.value),1),e.createVNode(c,{variant:"outline",size:"sm",class:"mt-3",onClick:_},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("Retry",-1)])]),_:1})]),_:1})):p.value?(e.openBlock(),e.createElementBlock("div",Q,[e.createVNode(e.unref(r.Loader2),{class:"size-8 animate-spin text-muted-foreground"})])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("div",W,[e.createVNode(l,{class:"p-4 space-y-1"},{default:e.withCtx(()=>[e.createElementVNode("div",Y,[e.createVNode(e.unref(r.MousePointerClick),{class:"size-3.5"}),t[8]||(t[8]=e.createTextVNode(" Total Clicks ",-1))]),e.createElementVNode("p",Z,e.toDisplayString(m(x.value.clicks)),1)]),_:1}),e.createVNode(l,{class:"p-4 space-y-1"},{default:e.withCtx(()=>[e.createElementVNode("div",ee,[e.createVNode(e.unref(r.Eye),{class:"size-3.5"}),t[9]||(t[9]=e.createTextVNode(" Total Impressions ",-1))]),e.createElementVNode("p",te,e.toDisplayString(m(x.value.impressions)),1)]),_:1}),e.createVNode(l,{class:"p-4 space-y-1"},{default:e.withCtx(()=>[e.createElementVNode("div",oe,[e.createVNode(e.unref(r.TrendingUp),{class:"size-3.5"}),t[10]||(t[10]=e.createTextVNode(" Average CTR ",-1))]),e.createElementVNode("p",se,e.toDisplayString(B(x.value.ctr)),1)]),_:1}),e.createVNode(l,{class:"p-4 space-y-1"},{default:e.withCtx(()=>[e.createElementVNode("div",re,[e.createVNode(e.unref(r.Hash),{class:"size-3.5"}),t[11]||(t[11]=e.createTextVNode(" Avg Position ",-1))]),e.createElementVNode("p",{class:e.normalizeClass(["text-2xl font-bold tabular-nums",j(x.value.avgPosition)])},e.toDisplayString(k(x.value.avgPosition)),3)]),_:1})]),e.createVNode(l,{class:"p-4"},{default:e.withCtx(()=>[t[20]||(t[20]=e.createElementVNode("h3",{class:"text-sm font-medium mb-3"},"Keyword Ranking Distribution",-1)),e.createElementVNode("div",ne,[e.createElementVNode("div",le,[t[13]||(t[13]=e.createElementVNode("span",{class:"inline-block w-3 h-3 rounded-full bg-emerald-500"},null,-1)),e.createElementVNode("span",ae,[t[12]||(t[12]=e.createTextVNode("Top 3: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(D.value),1)])]),e.createElementVNode("div",ie,[t[15]||(t[15]=e.createElementVNode("span",{class:"inline-block w-3 h-3 rounded-full bg-blue-500"},null,-1)),e.createElementVNode("span",de,[t[14]||(t[14]=e.createTextVNode("Top 10: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(T.value),1)])]),e.createElementVNode("div",ce,[t[17]||(t[17]=e.createElementVNode("span",{class:"inline-block w-3 h-3 rounded-full bg-amber-500"},null,-1)),e.createElementVNode("span",ue,[t[16]||(t[16]=e.createTextVNode("Top 20: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(E.value),1)])]),e.createElementVNode("div",me,[t[19]||(t[19]=e.createElementVNode("span",{class:"inline-block w-3 h-3 rounded-full bg-red-500"},null,-1)),e.createElementVNode("span",pe,[t[18]||(t[18]=e.createTextVNode("20+: ",-1)),e.createElementVNode("strong",null,e.toDisplayString(n.value.length-E.value),1)])])]),n.value.length>0?(e.openBlock(),e.createElementBlock("div",xe,[e.createElementVNode("div",{class:"bg-emerald-500 transition-all",style:e.normalizeStyle({width:`${D.value/n.value.length*100}%`})},null,4),e.createElementVNode("div",{class:"bg-blue-500 transition-all",style:e.normalizeStyle({width:`${(T.value-D.value)/n.value.length*100}%`})},null,4),e.createElementVNode("div",{class:"bg-amber-500 transition-all",style:e.normalizeStyle({width:`${(E.value-T.value)/n.value.length*100}%`})},null,4),e.createElementVNode("div",{class:"bg-red-500 transition-all",style:e.normalizeStyle({width:`${(n.value.length-E.value)/n.value.length*100}%`})},null,4)])):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",fe,[e.createVNode(l,{class:"p-4"},{default:e.withCtx(()=>[t[21]||(t[21]=e.createElementVNode("h3",{class:"text-sm font-medium mb-3"},"Clicks Over Time",-1)),u.value.length>1?(e.openBlock(),e.createElementBlock("div",ge,[e.createVNode(e.unref(a.S),{data:u.value,height:180},{default:e.withCtx(()=>[e.createVNode(e.unref(w.C),{x:h,y:$,color:"#3b82f6",opacity:.1,curveType:"monotoneX"}),e.createVNode(e.unref(w.C$1),{x:h,y:$,color:"#3b82f6",curveType:"monotoneX"}),e.createVNode(e.unref(a.C),{type:"x",tickFormat:F,numTicks:5,gridLine:!1}),e.createVNode(e.unref(a.C),{type:"y",gridLine:!0,numTicks:4}),e.createVNode(e.unref(a.A),{template:s=>e.unref(b.st)(e.unref(b.Ue),{namePayload:[{name:"Clicks",value:s.clicks,color:"#3b82f6"}],labelFormatter:M})},null,8,["template"]),e.createVNode(e.unref(a.z))]),_:1},8,["data"])])):(e.openBlock(),e.createElementBlock("p",ve,"Not enough data for chart"))]),_:1}),e.createVNode(l,{class:"p-4"},{default:e.withCtx(()=>[t[22]||(t[22]=e.createElementVNode("h3",{class:"text-sm font-medium mb-3"},"Impressions Over Time",-1)),u.value.length>1?(e.openBlock(),e.createElementBlock("div",ye,[e.createVNode(e.unref(a.S),{data:u.value,height:180},{default:e.withCtx(()=>[e.createVNode(e.unref(w.C),{x:h,y:P,color:"#8b5cf6",opacity:.1,curveType:"monotoneX"}),e.createVNode(e.unref(w.C$1),{x:h,y:P,color:"#8b5cf6",curveType:"monotoneX"}),e.createVNode(e.unref(a.C),{type:"x",tickFormat:F,numTicks:5,gridLine:!1}),e.createVNode(e.unref(a.C),{type:"y",gridLine:!0,numTicks:4}),e.createVNode(e.unref(a.A),{template:s=>e.unref(b.st)(e.unref(b.Ue),{namePayload:[{name:"Impressions",value:s.impressions,color:"#8b5cf6"}],labelFormatter:M})},null,8,["template"]),e.createVNode(e.unref(a.z))]),_:1},8,["data"])])):(e.openBlock(),e.createElementBlock("p",Ne,"Not enough data for chart"))]),_:1})]),e.createVNode(l,{class:"overflow-hidden"},{default:e.withCtx(()=>[e.createElementVNode("div",Ve,[e.createElementVNode("div",he,[e.createElementVNode("button",{class:e.normalizeClass(["px-4 py-2.5 text-sm font-medium transition-colors border-b-2",i.value==="keywords"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"]),onClick:t[0]||(t[0]=s=>i.value="keywords")},[e.createVNode(e.unref(r.Search),{class:"size-3.5 inline mr-1.5"}),t[23]||(t[23]=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",i.value==="pages"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"]),onClick:t[1]||(t[1]=s=>i.value="pages")},[e.createVNode(e.unref(r.FileText),{class:"size-3.5 inline mr-1.5"}),t[24]||(t[24]=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",i.value==="mapping"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"]),onClick:t[2]||(t[2]=s=>i.value="mapping")},[e.createVNode(e.unref(r.ArrowUpRight),{class:"size-3.5 inline mr-1.5"}),t[25]||(t[25]=e.createTextVNode(" Keyword → Page ",-1))],2)])]),i.value==="keywords"?(e.openBlock(),e.createElementBlock("div",ke,[n.value.length===0?(e.openBlock(),e.createElementBlock("div",Ee," No keyword data found for this period. ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(s,d)=>(e.openBlock(),e.createElementBlock("div",{key:d,class:"px-4 py-3 hover:bg-muted/30 transition-colors"},[e.createElementVNode("div",_e,[e.createElementVNode("span",be,e.toDisplayString(d+1)+".",1),e.createElementVNode("div",we,[e.createElementVNode("p",Ce,e.toDisplayString(s.query),1),e.createElementVNode("div",Be,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500/70",style:e.normalizeStyle({width:`${s.clicks/q.value*100}%`})},null,4)])]),e.createElementVNode("div",Se,[e.createElementVNode("span",De,[e.createVNode(e.unref(r.MousePointerClick),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(m(s.clicks)),1)]),e.createElementVNode("span",Te,[e.createVNode(e.unref(r.Eye),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(m(s.impressions)),1)]),e.createElementVNode("span",ze,e.toDisplayString(B(s.ctr)),1),e.createElementVNode("span",{class:e.normalizeClass(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium w-14 justify-center",S(s.position)])}," #"+e.toDisplayString(k(s.position)),3)])])]))),128))])):e.createCommentVNode("",!0),i.value==="pages"?(e.openBlock(),e.createElementBlock("div",$e,[y.value.length===0?(e.openBlock(),e.createElementBlock("div",Pe," No page data found for this period. ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(s,d)=>(e.openBlock(),e.createElementBlock("div",{key:d,class:"px-4 py-3 hover:bg-muted/30 transition-colors"},[e.createElementVNode("div",Fe,[e.createElementVNode("span",Me,e.toDisplayString(d+1)+".",1),e.createElementVNode("div",Le,[e.createElementVNode("p",{class:"text-sm font-medium truncate",title:s.page},e.toDisplayString(L(s.page)),9,Re),e.createElementVNode("div",Ae,[e.createElementVNode("div",{class:"h-full rounded-full bg-violet-500/70",style:e.normalizeStyle({width:`${s.clicks/K.value*100}%`})},null,4)])]),e.createElementVNode("div",Ue,[e.createElementVNode("span",je,[e.createVNode(e.unref(r.MousePointerClick),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(m(s.clicks)),1)]),e.createElementVNode("span",qe,[e.createVNode(e.unref(r.Eye),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(m(s.impressions)),1)]),e.createElementVNode("span",Ke,e.toDisplayString(B(s.ctr)),1),e.createElementVNode("span",{class:e.normalizeClass(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium w-14 justify-center",S(s.position)])}," #"+e.toDisplayString(k(s.position)),3)])])]))),128))])):e.createCommentVNode("",!0),i.value==="mapping"?(e.openBlock(),e.createElementBlock("div",Oe,[C.value.length===0?(e.openBlock(),e.createElementBlock("div",Ie," No query-page data found for this period. ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,(s,d)=>(e.openBlock(),e.createElementBlock("div",{key:d,class:"px-4 py-3 hover:bg-muted/30 transition-colors"},[e.createElementVNode("div",He,[e.createElementVNode("span",Xe,e.toDisplayString(d+1)+".",1),e.createElementVNode("div",Ge,[e.createElementVNode("p",Je,e.toDisplayString(s.query),1),e.createElementVNode("p",{class:"text-xs text-muted-foreground truncate",title:s.page},"→ "+e.toDisplayString(L(s.page)),9,Qe)]),e.createElementVNode("div",We,[e.createElementVNode("span",Ye,[e.createVNode(e.unref(r.MousePointerClick),{class:"size-3"}),e.createTextVNode(" "+e.toDisplayString(m(s.clicks)),1)]),e.createElementVNode("span",{class:e.normalizeClass(["inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium",S(s.position)])}," #"+e.toDisplayString(k(s.position)),3)])])]))),128))])):e.createCommentVNode("",!0)]),_:1})],64)):(e.openBlock(),e.createBlock(l,{key:1,class:"p-8 text-center"},{default:e.withCtx(()=>[...t[6]||(t[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(l,{key:0,class:"p-8 text-center space-y-3"},{default:e.withCtx(()=>[e.createVNode(e.unref(r.AlertTriangle),{class:"size-10 text-amber-500 mx-auto"}),t[4]||(t[4]=e.createElementVNode("p",{class:"text-lg font-medium"},"Search Console not configured",-1)),t[5]||(t[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=Ze;