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

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.
package/dist/index.mjs CHANGED
@@ -489,7 +489,7 @@ var n = {
489
489
  },
490
490
  {
491
491
  path: "/audience",
492
- component: () => import("./Audience-Cq1Gu-Vo.mjs")
492
+ component: () => import("./Audience-CfWHjjg8.mjs")
493
493
  },
494
494
  {
495
495
  path: "/seo",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneclick.dev/cms-core-modules",
3
- "version": "0.0.107",
3
+ "version": "0.0.109",
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "peerDependencies": {
29
29
  "@formkit/drag-and-drop": "0.5.3",
30
30
  "@internationalized/date": "3.8.0",
31
- "@oneclick.dev/cms-kit": "0.0.119",
31
+ "@oneclick.dev/cms-kit": "0.0.121",
32
32
  "@tanstack/vue-table": "8.21.3",
33
33
  "@vee-validate/zod": "4.15.0",
34
34
  "@vue-flow/core": "1.48.2",
@@ -1 +0,0 @@
1
- require(`./chunk-DQi1bQcV.js`);const e=require(`./_plugin-vue_export-helper-5u7tqpWC.js`),t=require(`./single-container-Xoo0Xzxv.js`);let n=require(`@oneclick.dev/cms-kit`),r=require(`vue`),i=require(`@lucide/vue`);var a={class:`flex flex-col gap-6 w-full max-w-7xl mx-auto py-8`},ee={class:`flex justify-between gap-4 flex-col @lg:flex-row @lg:items-center`},te={key:0,class:`flex items-center gap-2`},ne={class:`flex items-center border rounded-lg overflow-hidden`},re=[`onClick`],ie={class:`text-sm text-destructive font-medium`},ae={key:2,class:`flex items-center justify-center py-20`},oe={class:`flex flex-col @lg:grid @lg:grid-cols-3 gap-6`},se={class:`relative`},ce={class:`absolute inset-0 flex items-center justify-center pointer-events-none`},le={class:`text-center`},ue={class:`text-xl font-bold tabular-nums`},de={class:`mt-4 flex items-center gap-6`},fe={class:`flex items-center gap-2`},pe={class:`text-sm font-semibold tabular-nums`},me={key:0,class:`text-xs text-muted-foreground`},he={class:`flex items-center gap-2`},ge={class:`text-sm font-semibold tabular-nums`},_e={key:0,class:`text-xs text-muted-foreground`},ve={class:`overflow-x-auto`},ye={class:`w-full text-sm`},be={class:`divide-y`},xe={class:`px-4 py-3`},Se={class:`flex items-center gap-2`},Ce={class:`font-medium capitalize`},o={class:`px-4 py-3 text-right tabular-nums`},s={class:`px-4 py-3 text-right tabular-nums`},c={class:`px-4 py-3 text-right tabular-nums`},l={class:`px-4 py-3 text-right tabular-nums`},u={class:`px-4 py-3 text-right tabular-nums`},d={class:`overflow-x-auto`},f={class:`min-w-[600px]`},p={class:`flex items-center mb-1.5`},m={class:`flex-1 grid grid-cols-24 gap-0.5`},h={class:`w-10 shrink-0 text-xs text-muted-foreground`},g={class:`flex-1 grid grid-cols-24 gap-0.5`},_=[`title`],v={class:`grid @lg:grid-cols-3 gap-6`},y={class:`flex items-center justify-between`},b={class:`flex items-center gap-1`},x=[`onClick`,`title`],S={class:`space-y-3`},C={class:`text-sm flex-1 truncate`},w={class:`flex-1 h-2 bg-muted rounded-full overflow-hidden`},T={class:`text-xs tabular-nums text-muted-foreground w-12 text-right`},E={key:0,class:`py-4 text-center text-muted-foreground text-sm`},D={class:`space-y-3`},O={class:`text-sm flex-1 truncate`},k={class:`flex-1 h-2 bg-muted rounded-full overflow-hidden`},A={class:`text-xs tabular-nums text-muted-foreground w-12 text-right`},we={key:0,class:`py-4 text-center text-muted-foreground text-sm`},Te={class:`space-y-2.5`},Ee={class:`flex-1 min-w-0`},De={class:`text-sm truncate block`},Oe={class:`text-xs text-muted-foreground truncate block`},ke={class:`flex-1 h-2 bg-muted rounded-full overflow-hidden`},Ae={class:`text-xs tabular-nums text-muted-foreground w-12 text-right`},je={key:0,class:`py-4 text-center text-muted-foreground text-sm`},j=(0,r.defineComponent)({__name:`Audience`,setup(e){let{config:j}=(0,n.useModule)(),{moduleId:M}=(0,n.useModuleRoute)();(0,n.useModuleBreadcrumbs)(()=>[{label:`Audience`}]);let N=(0,r.ref)(!0),P=(0,r.ref)(null),F=(0,r.ref)(`30`),I=(0,r.ref)(`browser`),L=(0,r.ref)([]),R=(0,r.ref)([]),z=(0,r.ref)([]),B=(0,r.ref)([]),V=(0,r.ref)([]),H=(0,r.computed)(()=>!!(j.serviceAccount&&j.propertyId));function U(e){return`/api/v1/modules/${M}${e}`}let Me=[{label:`7d`,value:`7`},{label:`14d`,value:`14`},{label:`30d`,value:`30`},{label:`90d`,value:`90`}];function W(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:Math.round(e).toString()}function Ne(e){return`${(e*100).toFixed(1)}%`}function Pe(e){let t=Math.floor(e/60),n=Math.round(e%60);return t>0?`${t}m ${n}s`:`${n}s`}let G={new:`#3b82f6`,returning:`#8b5cf6`},Fe={new:{label:`New Users`,color:G.new},returning:{label:`Returning Users`,color:G.returning}},K=(0,r.computed)(()=>L.value.find(e=>e.newVsReturning===`new`)?.totalUsers||0),q=(0,r.computed)(()=>L.value.find(e=>e.newVsReturning===`returning`)?.totalUsers||0),J=(0,r.computed)(()=>[{key:`new`,label:`New`,value:K.value,fill:G.new},{key:`returning`,label:`Returning`,value:q.value,fill:G.returning}]),Y=(0,r.computed)(()=>K.value+q.value),X=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],Ie=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],Z=(0,r.computed)(()=>{let e=Array.from({length:7},()=>Array(24).fill(0)),t=1;return B.value.forEach(n=>{let r=X.indexOf(n.dayOfWeekName),i=parseInt(n.hour,10);r>=0&&i>=0&&i<24&&(e[r][i]=n.sessions||0,n.sessions>t&&(t=n.sessions))}),{matrix:e,maxVal:t}});function Le(e,t){if(e===0)return`bg-muted`;let n=e/t;return n>.75?`bg-blue-600 dark:bg-blue-500`:n>.5?`bg-blue-500 dark:bg-blue-400`:n>.25?`bg-blue-400/70 dark:bg-blue-400/60`:`bg-blue-300/50 dark:bg-blue-300/30`}let Re=[{key:`browser`,label:`Browser`,icon:i.Chrome},{key:`operatingSystem`,label:`OS`,icon:i.Cpu},{key:`screenResolution`,label:`Screen`,icon:i.Monitor}];async function Q(){if(!H.value)return;N.value=!0,P.value=null;let e=`${F.value}daysAgo`;try{let[t,n,r,i,a]=await Promise.all([$fetch(U(`/audience/overview?startDate=${e}&endDate=today`)),$fetch(U(`/audience/technology?startDate=${e}&endDate=today&dimension=${I.value}`)),$fetch(U(`/audience/languages?startDate=${e}&endDate=today`)),$fetch(U(`/audience/hours?startDate=${e}&endDate=today`)),$fetch(U(`/audience/cities?startDate=${e}&endDate=today`))]);L.value=t.rows||[],R.value=n.rows||[],z.value=r.rows||[],B.value=i.rows||[],V.value=a.rows||[]}catch(e){P.value=e?.data?.statusMessage||e?.message||`Failed to load audience data`}finally{N.value=!1}}async function $(){let e=`${F.value}daysAgo`;try{R.value=(await $fetch(U(`/audience/technology?startDate=${e}&endDate=today&dimension=${I.value}`))).rows||[]}catch{}}return(0,r.watch)(F,()=>Q()),(0,r.watch)(I,()=>$()),(0,r.onMounted)(()=>{H.value?Q():N.value=!1}),(e,n)=>{let j=(0,r.resolveComponent)(`Button`),M=(0,r.resolveComponent)(`Card`),B=(0,r.resolveComponent)(`CardTitle`),U=(0,r.resolveComponent)(`CardHeader`),X=(0,r.resolveComponent)(`ChartContainer`),$=(0,r.resolveComponent)(`CardContent`);return(0,r.openBlock)(),(0,r.createElementBlock)(`div`,a,[(0,r.createElementVNode)(`div`,ee,[n[0]||=(0,r.createElementVNode)(`div`,null,[(0,r.createElementVNode)(`h1`,{class:`text-2xl font-semibold`},`Audience`),(0,r.createElementVNode)(`p`,{class:`text-muted-foreground text-sm mt-1`},`Who visits your site`)],-1),H.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,te,[(0,r.createElementVNode)(`div`,ne,[((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(Me,e=>(0,r.createElementVNode)(`button`,{key:e.value,class:(0,r.normalizeClass)([`px-3 py-1.5 text-xs font-medium transition-colors`,F.value===e.value?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground hover:bg-muted`]),onClick:t=>F.value=e.value},(0,r.toDisplayString)(e.label),11,re)),64))]),(0,r.createVNode)(j,{variant:`outline`,size:`icon`,onClick:Q,disabled:N.value},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.RefreshCw),{class:(0,r.normalizeClass)([`size-4`,{"animate-spin":N.value}])},null,8,[`class`])]),_:1},8,[`disabled`])])):(0,r.createCommentVNode)(``,!0)]),H.value?P.value?((0,r.openBlock)(),(0,r.createBlock)(M,{key:1,class:`p-6 border-destructive/50 bg-destructive/5`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`p`,ie,(0,r.toDisplayString)(P.value),1),(0,r.createVNode)(j,{variant:`outline`,size:`sm`,class:`mt-3`,onClick:Q},{default:(0,r.withCtx)(()=>[...n[2]||=[(0,r.createTextVNode)(`Retry`,-1)]]),_:1})]),_:1})):N.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,ae,[(0,r.createVNode)((0,r.unref)(i.Loader2),{class:`size-8 animate-spin text-muted-foreground`})])):((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:3},[(0,r.createElementVNode)(`div`,oe,[(0,r.createVNode)(M,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(U,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(B,{class:`text-base`},{default:(0,r.withCtx)(()=>[...n[3]||=[(0,r.createTextVNode)(`New vs Returning`,-1)]]),_:1})]),_:1}),(0,r.createVNode)($,{class:`flex flex-col items-center`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,se,[(0,r.createVNode)(X,{config:Fe,class:`mx-auto aspect-square max-h-[200px]`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(t.t),{data:J.value,margin:{top:16,bottom:16,left:16,right:16}},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(t.n),{value:e=>e.value,color:e=>e.fill,arcWidth:35,padAngle:.03,cornerRadius:4},null,8,[`value`,`color`])]),_:1},8,[`data`])]),_:1}),(0,r.createElementVNode)(`div`,ce,[(0,r.createElementVNode)(`div`,le,[(0,r.createElementVNode)(`p`,ue,(0,r.toDisplayString)(W(Y.value)),1),n[4]||=(0,r.createElementVNode)(`p`,{class:`text-xs text-muted-foreground`},`total users`,-1)])])]),(0,r.createElementVNode)(`div`,de,[(0,r.createElementVNode)(`div`,fe,[(0,r.createElementVNode)(`div`,{class:`size-2.5 rounded-full`,style:(0,r.normalizeStyle)({backgroundColor:G.new})},null,4),n[5]||=(0,r.createElementVNode)(`span`,{class:`text-sm`},`New`,-1),(0,r.createElementVNode)(`span`,pe,(0,r.toDisplayString)(W(K.value)),1),Y.value?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,me,(0,r.toDisplayString)(Math.round(K.value/Y.value*100))+`%`,1)):(0,r.createCommentVNode)(``,!0)]),(0,r.createElementVNode)(`div`,he,[(0,r.createElementVNode)(`div`,{class:`size-2.5 rounded-full`,style:(0,r.normalizeStyle)({backgroundColor:G.returning})},null,4),n[6]||=(0,r.createElementVNode)(`span`,{class:`text-sm`},`Returning`,-1),(0,r.createElementVNode)(`span`,ge,(0,r.toDisplayString)(W(q.value)),1),Y.value?((0,r.openBlock)(),(0,r.createElementBlock)(`span`,_e,(0,r.toDisplayString)(Math.round(q.value/Y.value*100))+`%`,1)):(0,r.createCommentVNode)(``,!0)])])]),_:1})]),_:1}),(0,r.createVNode)(M,{class:`@lg:col-span-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(U,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(B,{class:`text-base`},{default:(0,r.withCtx)(()=>[...n[7]||=[(0,r.createTextVNode)(`Engagement by Visitor Type`,-1)]]),_:1})]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,ve,[(0,r.createElementVNode)(`table`,ye,[n[8]||=(0,r.createElementVNode)(`thead`,null,[(0,r.createElementVNode)(`tr`,{class:`border-b text-left`},[(0,r.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground`},`Type`),(0,r.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Users`),(0,r.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Sessions`),(0,r.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Engagement Rate`),(0,r.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Avg Duration`),(0,r.createElementVNode)(`th`,{class:`px-4 py-3 font-medium text-muted-foreground text-right`},`Pages/Session`)])],-1),(0,r.createElementVNode)(`tbody`,be,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(L.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`tr`,{key:e.newVsReturning,class:`hover:bg-muted/50`},[(0,r.createElementVNode)(`td`,xe,[(0,r.createElementVNode)(`div`,Se,[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(e.newVsReturning===`new`?(0,r.unref)(i.UserPlus):(0,r.unref)(i.UserCheck)),{class:`size-4 text-muted-foreground`})),(0,r.createElementVNode)(`span`,Ce,(0,r.toDisplayString)(e.newVsReturning),1)])]),(0,r.createElementVNode)(`td`,o,(0,r.toDisplayString)(W(e.totalUsers)),1),(0,r.createElementVNode)(`td`,s,(0,r.toDisplayString)(W(e.sessions)),1),(0,r.createElementVNode)(`td`,c,(0,r.toDisplayString)(Ne(e.engagementRate||0)),1),(0,r.createElementVNode)(`td`,l,(0,r.toDisplayString)(Pe(e.averageSessionDuration||0)),1),(0,r.createElementVNode)(`td`,u,(0,r.toDisplayString)((e.screenPageViewsPerSession||0).toFixed(1)),1)]))),128))])])])]),_:1})]),_:1})]),(0,r.createVNode)(M,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(U,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(B,{class:`text-base flex items-center gap-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Clock),{class:`size-4`}),n[9]||=(0,r.createTextVNode)(` Peak Hours `,-1)]),_:1}),n[10]||=(0,r.createElementVNode)(`p`,{class:`text-xs text-muted-foreground mt-1`},`When your visitors are most active (based on sessions)`,-1)]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,d,[(0,r.createElementVNode)(`div`,f,[(0,r.createElementVNode)(`div`,p,[n[11]||=(0,r.createElementVNode)(`div`,{class:`w-10 shrink-0`},null,-1),(0,r.createElementVNode)(`div`,m,[((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(24,e=>(0,r.createElementVNode)(`div`,{key:e,class:`text-[10px] text-muted-foreground text-center`},(0,r.toDisplayString)(e-1),1)),64))])]),((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(Ie,(e,t)=>(0,r.createElementVNode)(`div`,{key:e,class:`flex items-center mb-0.5`},[(0,r.createElementVNode)(`div`,h,(0,r.toDisplayString)(e),1),(0,r.createElementVNode)(`div`,g,[((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(24,n=>(0,r.createElementVNode)(`div`,{key:n,class:(0,r.normalizeClass)([`aspect-square rounded-sm transition-colors`,Le(Z.value.matrix[t]?.[n-1]||0,Z.value.maxVal)]),title:`${e} ${n-1}:00 \u2014 ${Z.value.matrix[t]?.[n-1]||0} sessions`},null,10,_)),64))])])),64)),n[12]||=(0,r.createElementVNode)(`div`,{class:`flex items-center justify-end gap-1.5 mt-3`},[(0,r.createElementVNode)(`span`,{class:`text-[10px] text-muted-foreground`},`Less`),(0,r.createElementVNode)(`div`,{class:`size-3 rounded-sm bg-muted`}),(0,r.createElementVNode)(`div`,{class:`size-3 rounded-sm bg-blue-300/50 dark:bg-blue-300/30`}),(0,r.createElementVNode)(`div`,{class:`size-3 rounded-sm bg-blue-400/70 dark:bg-blue-400/60`}),(0,r.createElementVNode)(`div`,{class:`size-3 rounded-sm bg-blue-500 dark:bg-blue-400`}),(0,r.createElementVNode)(`div`,{class:`size-3 rounded-sm bg-blue-600 dark:bg-blue-500`}),(0,r.createElementVNode)(`span`,{class:`text-[10px] text-muted-foreground`},`More`)],-1)])])]),_:1})]),_:1}),(0,r.createElementVNode)(`div`,v,[(0,r.createVNode)(M,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(U,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,y,[(0,r.createVNode)(B,{class:`text-base`},{default:(0,r.withCtx)(()=>[...n[13]||=[(0,r.createTextVNode)(`Technology`,-1)]]),_:1}),(0,r.createElementVNode)(`div`,b,[((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(Re,e=>(0,r.createElementVNode)(`button`,{key:e.key,class:(0,r.normalizeClass)([`p-1.5 rounded-md transition-colors`,I.value===e.key?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:t=>I.value=e.key,title:e.label},[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(e.icon),{class:`size-3.5`}))],10,x)),64))])])]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,S,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(R.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e[I.value],class:`flex items-center gap-3`},[(0,r.createElementVNode)(`span`,C,(0,r.toDisplayString)(e[I.value]||`(not set)`),1),(0,r.createElementVNode)(`div`,w,[(0,r.createElementVNode)(`div`,{class:`h-full bg-primary rounded-full transition-all`,style:(0,r.normalizeStyle)({width:`${e.totalUsers/(R.value[0]?.totalUsers||1)*100}%`})},null,4)]),(0,r.createElementVNode)(`span`,T,(0,r.toDisplayString)(W(e.totalUsers)),1)]))),128)),R.value.length?(0,r.createCommentVNode)(``,!0):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,E,`No data`))])]),_:1})]),_:1}),(0,r.createVNode)(M,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(U,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(B,{class:`text-base flex items-center gap-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Languages),{class:`size-4`}),n[14]||=(0,r.createTextVNode)(` Languages `,-1)]),_:1})]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,D,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(z.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:e.language,class:`flex items-center gap-3`},[(0,r.createElementVNode)(`span`,O,(0,r.toDisplayString)(e.language),1),(0,r.createElementVNode)(`div`,k,[(0,r.createElementVNode)(`div`,{class:`h-full bg-primary rounded-full transition-all`,style:(0,r.normalizeStyle)({width:`${e.totalUsers/(z.value[0]?.totalUsers||1)*100}%`})},null,4)]),(0,r.createElementVNode)(`span`,A,(0,r.toDisplayString)(W(e.totalUsers)),1)]))),128)),z.value.length?(0,r.createCommentVNode)(``,!0):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,we,`No data`))])]),_:1})]),_:1}),(0,r.createVNode)(M,null,{default:(0,r.withCtx)(()=>[(0,r.createVNode)(U,{class:`pb-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)(B,{class:`text-base flex items-center gap-2`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.MapPin),{class:`size-4`}),n[15]||=(0,r.createTextVNode)(` Top Cities `,-1)]),_:1})]),_:1}),(0,r.createVNode)($,null,{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,Te,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(V.value,e=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:`${e.city}-${e.country}`,class:`flex items-center gap-3`},[(0,r.createElementVNode)(`div`,Ee,[(0,r.createElementVNode)(`span`,De,(0,r.toDisplayString)(e.city),1),(0,r.createElementVNode)(`span`,Oe,(0,r.toDisplayString)(e.country),1)]),(0,r.createElementVNode)(`div`,ke,[(0,r.createElementVNode)(`div`,{class:`h-full bg-primary rounded-full transition-all`,style:(0,r.normalizeStyle)({width:`${e.totalUsers/(V.value[0]?.totalUsers||1)*100}%`})},null,4)]),(0,r.createElementVNode)(`span`,Ae,(0,r.toDisplayString)(W(e.totalUsers)),1)]))),128)),V.value.length?(0,r.createCommentVNode)(``,!0):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,je,`No data`))])]),_:1})]),_:1})])],64)):((0,r.openBlock)(),(0,r.createBlock)(M,{key:0,class:`p-8 text-center`},{default:(0,r.withCtx)(()=>[...n[1]||=[(0,r.createElementVNode)(`p`,{class:`text-lg font-medium`},`Setup required`,-1)]]),_:1}))])}}}),M=e.t(j,[[`__scopeId`,`data-v-158a7e53`]]);exports.default=M;