ghost 6.16.0 → 6.16.1

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 (105) hide show
  1. package/components/tryghost-i18n-6.16.1.tgz +0 -0
  2. package/components/{tryghost-parse-email-address-6.16.0.tgz → tryghost-parse-email-address-6.16.1.tgz} +0 -0
  3. package/core/built/admin/assets/{PolarAngleAxis-xPy2tnwX.js → PolarAngleAxis-DUgbFtOk.js} +1 -1
  4. package/core/built/admin/assets/{_baseAssignValue-DyITDSi7.js → _baseAssignValue-DRkJyH0k.js} +1 -1
  5. package/core/built/admin/assets/{a-large-small-L2U_wPWJ.js → a-large-small-DeaMDhiq.js} +1 -1
  6. package/core/built/admin/assets/{at-sign-zn6VHHIb.js → at-sign-DpSvWaBL.js} +1 -1
  7. package/core/built/admin/assets/{audience-C5nYXN-z.js → audience-DyqogFKk.js} +1 -1
  8. package/core/built/admin/assets/{avatar-flipboard-D61vqpZi.js → avatar-flipboard-DUUQeCKh.js} +1 -1
  9. package/core/built/admin/assets/{bluesky-sharing-YNHtFCeH.js → bluesky-sharing-DDW1Nub2.js} +1 -1
  10. package/core/built/admin/assets/{chart-2aLRupgZ.js → chart-DKdadfuk.js} +1 -1
  11. package/core/built/admin/assets/{chunk.524.646bf523352edaa738e4.js → chunk.524.d561c6d103132c453611.js} +7 -7
  12. package/core/built/admin/assets/{chunk.582.9bda90fed502e6e1c3be.js → chunk.582.fbd6ac96278274d050d9.js} +9 -9
  13. package/core/built/admin/assets/{code-editor-view-8Hho-G3u.js → code-editor-view-lAF4hhO4.js} +1 -1
  14. package/core/built/admin/assets/{comments-CtogcEO1.js → comments-DtPXetSc.js} +1 -1
  15. package/core/built/admin/assets/{copy-Bm8UN6-f.js → copy-DdFJ2rqh.js} +1 -1
  16. package/core/built/admin/assets/{data-list-C6hL1gtO.js → data-list-DxMYpFN2.js} +1 -1
  17. package/core/built/admin/assets/{deleted-feed-item-CwkvAbyU.js → deleted-feed-item-CFiQ2QmG.js} +1 -1
  18. package/core/built/admin/assets/{edit-profile-mtuPrl5U.js → edit-profile-DGrB1iyq.js} +1 -1
  19. package/core/built/admin/assets/{empty-indicator-STQxMsTH.js → empty-indicator-3LXlr_8k.js} +1 -1
  20. package/core/built/admin/assets/{en-DP-4OPPt.js → en-W8EN-kc6.js} +1 -1
  21. package/core/built/admin/assets/{feed-Eo5LuGaJ.js → feed-DDLXNcGg.js} +1 -1
  22. package/core/built/admin/assets/{filters-stQv1t2Q.js → filters-DJ9IfdqI.js} +1 -1
  23. package/core/built/admin/assets/{gh-chart-BWmTwsXH.js → gh-chart-CTNejk4b.js} +1 -1
  24. package/core/built/admin/assets/{growth-CTfPUXNh.js → growth-CYRGfktJ.js} +1 -1
  25. package/core/built/admin/assets/{hash-Bydeiaa9.js → hash-DqdFciUO.js} +1 -1
  26. package/core/built/admin/assets/{inbox-Ion97X3-.js → inbox-BvEfoBsw.js} +1 -1
  27. package/core/built/admin/assets/{index-CR1X4uHr.js → index-BDtDeIk7.js} +1 -1
  28. package/core/built/admin/assets/{index-DkdzYzw_.js → index-BZgoelCE.js} +1 -1
  29. package/core/built/admin/assets/{index-fW_jLZOq.js → index-BZqobMDm.js} +1 -1
  30. package/core/built/admin/assets/{index-GwDp7cne.js → index-Byclwr0r.js} +1 -1
  31. package/core/built/admin/assets/{index-DD-rVvO7.js → index-C9DrFLgj.js} +1 -1
  32. package/core/built/admin/assets/{index-mFLKOVzo.js → index-CvBG2BMA.js} +1 -1
  33. package/core/built/admin/assets/{index-CI2E0Omu.js → index-DAWuNQ5w.js} +1 -1
  34. package/core/built/admin/assets/{index-D5TMbQVo.js → index-DM_AXvZ2.js} +1 -1
  35. package/core/built/admin/assets/{index-DpFOl82I.js → index-DN0lnLj_.js} +1 -1
  36. package/core/built/admin/assets/{index-Cb1bmBmK.js → index-DRKV2w8e.js} +3 -3
  37. package/core/built/admin/assets/{index-CCPvhqfN.js → index-DcH37nFw.js} +1 -1
  38. package/core/built/admin/assets/{index-xYoJrUpW.js → index-U4HnwjaT.js} +1 -1
  39. package/core/built/admin/assets/{index-CBtTUuJD.js → index-U6n3pegZ.js} +1 -1
  40. package/core/built/admin/assets/{index-DR46F9P3.js → index-V6YnSoDg.js} +1 -1
  41. package/core/built/admin/assets/{koenig-lexical--bOXjfhF.js → koenig-lexical-CUBpynl8.js} +1 -1
  42. package/core/built/admin/assets/{kpi-card-D4XD3Q8u.js → kpi-card-B6Rn7bqN.js} +1 -1
  43. package/core/built/admin/assets/{kpis-sGrWOljw.js → kpis-BcrivX9l.js} +1 -1
  44. package/core/built/admin/assets/{links-D7bU3bf9.js → links-riUbeEgg.js} +1 -1
  45. package/core/built/admin/assets/{lucide-react-BXPXAfiK.js → lucide-react-BtdIj8wV.js} +1 -1
  46. package/core/built/admin/assets/{main-layout-BungCBHk.js → main-layout-5-bO8zds.js} +1 -1
  47. package/core/built/admin/assets/{message-square-text-Cl7f2tbO.js → message-square-text-CAxBZ_19.js} +1 -1
  48. package/core/built/admin/assets/{minus-C6PAFjHJ.js → minus-CkijqNoR.js} +1 -1
  49. package/core/built/admin/assets/{modals-C3u2jQgI.js → modals-0SenZkXa.js} +1 -1
  50. package/core/built/admin/assets/{moderation-Dq51J7FU.js → moderation-HKkI8Sxh.js} +1 -1
  51. package/core/built/admin/assets/{newsletter-IlWRVsHS.js → newsletter-DKF9Mp-n.js} +1 -1
  52. package/core/built/admin/assets/{newsletters-DuR8KKD7.js → newsletters-Cbw9jVdg.js} +1 -1
  53. package/core/built/admin/assets/{note-pOWzgRq4.js → note-ogkcCZSR.js} +1 -1
  54. package/core/built/admin/assets/{overview-1aw3_iYw.js → overview-CiiVNdYO.js} +1 -1
  55. package/core/built/admin/assets/{pagemenu-CaoSRAM6.js → pagemenu-CyAPL2jR.js} +1 -1
  56. package/core/built/admin/assets/{post-analytics-DemICx0T.js → post-analytics-D18eSSAi.js} +1 -1
  57. package/core/built/admin/assets/{post-analytics-context-BAVa6pkz.js → post-analytics-context-Q5WH1OnQ.js} +1 -1
  58. package/core/built/admin/assets/{post-analytics-header-BJ1wQ3zm.js → post-analytics-header-D9ypJ8U0.js} +1 -1
  59. package/core/built/admin/assets/{post-share-modal-Dki8ifFg.js → post-share-modal-FoeSNnKZ.js} +1 -1
  60. package/core/built/admin/assets/{posts-BnlRx8vs.js → posts-DjtbHmIO.js} +1 -1
  61. package/core/built/admin/assets/{repeat-DidFh0Da.js → repeat-B8wqzbtG.js} +1 -1
  62. package/core/built/admin/assets/{reply-CSbAYEM2.js → reply-B5bZTNpu.js} +1 -1
  63. package/core/built/admin/assets/{select-DjnPV9qj.js → select-DOWPuNp3.js} +1 -1
  64. package/core/built/admin/assets/{settings-Cws6_k-O.js → settings-BtfI1H6K.js} +1 -1
  65. package/core/built/admin/assets/{settings-BUwtf2g_.js → settings-CRoQOSBR.js} +4 -4
  66. package/core/built/admin/assets/{sort-button-CZTvB1vb.js → sort-button--2hLal4K.js} +1 -1
  67. package/core/built/admin/assets/{source-icon-BiiFDIy-.js → source-icon-B4Vu6UAT.js} +1 -1
  68. package/core/built/admin/assets/{sprout-CrEApBZc.js → sprout-DdSwjAnU.js} +1 -1
  69. package/core/built/admin/assets/{square-BoXJyuwE.js → square-CIGK666V.js} +1 -1
  70. package/core/built/admin/assets/stats/{audience-BjmWFjxw.mjs → audience-BcaCq-Fd.mjs} +3 -3
  71. package/core/built/admin/assets/stats/{index-yub8Kwor.mjs → index-BGGBMIln.mjs} +55 -55
  72. package/core/built/admin/assets/stats/{index-BxbeiQvY.mjs → index-CVZw5m-6.mjs} +5 -5
  73. package/core/built/admin/assets/stats/{index-BrfRXwHV.mjs → index-Cki6EmBM.mjs} +6 -6
  74. package/core/built/admin/assets/stats/{index-Brz-om_L.mjs → index-CntWQWvw.mjs} +8 -8
  75. package/core/built/admin/assets/stats/{index-Bh1sPDPK.mjs → index-ZpNYGQ3X.mjs} +5 -5
  76. package/core/built/admin/assets/stats/{sort-button-D282Qcym.mjs → sort-button-BmNuHcpY.mjs} +3 -3
  77. package/core/built/admin/assets/stats/{stats-CtTAHMmO.mjs → stats-CguVnNF1.mjs} +2 -2
  78. package/core/built/admin/assets/stats/stats.js +1 -1
  79. package/core/built/admin/assets/stats/{tabs-BmbSUTvo.mjs → tabs-Bg2EDT_5.mjs} +3 -3
  80. package/core/built/admin/assets/stats/{url-helpers-lInkyUAU.mjs → url-helpers-BRedk_Wi.mjs} +4 -4
  81. package/core/built/admin/assets/stats/{use-growth-stats-BWm__o-y.mjs → use-growth-stats-BGYDivJD.mjs} +3 -3
  82. package/core/built/admin/assets/{stats-Dw3ZL_6y.js → stats-6tjwXr7z.js} +1 -1
  83. package/core/built/admin/assets/{stats-view-_b1cFjiO.js → stats-view-DnjRNHBG.js} +1 -1
  84. package/core/built/admin/assets/{step-1-19iQ9zfQ.js → step-1-CA4uyLlu.js} +1 -1
  85. package/core/built/admin/assets/{step-2-Bm58XNFW.js → step-2-O7Xt_jes.js} +1 -1
  86. package/core/built/admin/assets/{step-3-CpwBi-6n.js → step-3-qS8gvQIT.js} +1 -1
  87. package/core/built/admin/assets/{table-BCNL2H8K.js → table-OQrUez6I.js} +1 -1
  88. package/core/built/admin/assets/{tabs-CO6vVNPx.js → tabs-ViFVsWFd.js} +1 -1
  89. package/core/built/admin/assets/{tags-dQNmC1sJ.js → tags-FYRO3JRl.js} +1 -1
  90. package/core/built/admin/assets/{tags-CgR3Ypcp.js → tags-tIPIuOOB.js} +1 -1
  91. package/core/built/admin/assets/{tiers-fc-_DxMc.js → tiers-DtX0it9j.js} +1 -1
  92. package/core/built/admin/assets/{toggle-group-XS6-nm1Q.js → toggle-group-CBcpMWEr.js} +1 -1
  93. package/core/built/admin/assets/{topic-filter-CKAqg69m.js → topic-filter-DM673fsL.js} +1 -1
  94. package/core/built/admin/assets/{trash-Cud6S0eh.js → trash-VI9DRMRe.js} +1 -1
  95. package/core/built/admin/assets/{url-helpers-DC2N8g7b.js → url-helpers-BpGl4uFV.js} +1 -1
  96. package/core/built/admin/assets/{use-growth-stats-DjrWrGR0.js → use-growth-stats-DJmJniVR.js} +1 -1
  97. package/core/built/admin/assets/{use-infinite-virtual-scroll-BzrtTHt0.js → use-infinite-virtual-scroll-CDpt_LdL.js} +1 -1
  98. package/core/built/admin/assets/{use-simple-pagination-CycwbYmf.js → use-simple-pagination-CeXU8p97.js} +1 -1
  99. package/core/built/admin/assets/{user-round-check-C27cgk4d.js → user-round-check-C4hZJ4Qo.js} +1 -1
  100. package/core/built/admin/assets/{wallet-cards-BZPIYDeM.js → wallet-cards-BXHaaW90.js} +1 -1
  101. package/core/built/admin/assets/{web-BxHOEYyW.js → web-DETqckpf.js} +1 -1
  102. package/core/built/admin/index.html +3 -3
  103. package/core/server/services/members/members-api/controllers/router-controller.js +1 -1
  104. package/package.json +5 -5
  105. package/components/tryghost-i18n-6.16.0.tgz +0 -0
@@ -1 +1 @@
1
- import{aM as Y,r as _,bR as C,bS as W,j as e,S as j,bU as se,B as T,aQ as M,aj as u,y as $,ai as P,cz as te,aN as oe,cA as O,e as le,cB as q,cC as ce,bN as de,cD as J,bQ as me,cE as ue,af as pe,ag as z,aT as I,_ as xe,b2 as he}from"./index-Cb1bmBmK.js";import{g as H,S as ge,a as fe,D as be,b as je}from"./stats-view-_b1cFjiO.js";import{C as D,a as E,b as F,h as R,c as U,E as ve,K as Ne,d as we,e as ye,u as ke,j as _e}from"./pagemenu-CaoSRAM6.js";import{E as Q}from"./empty-indicator-STQxMsTH.js";import{P as Ce}from"./post-share-modal-Dki8ifFg.js";import{g as Ae,c as Te}from"./post-helpers-gInwAwEv.js";import{S as Le,U as ae}from"./wallet-cards-BZPIYDeM.js";import{C as ze,h as K,d as Me,i as We,L as $e,j as X,k as Z,l as De}from"./lucide-react-BXPXAfiK.js";import{G as S}from"./gh-chart-BWmTwsXH.js";import{g as Ee}from"./audience-C5nYXN-z.js";import{u as Fe}from"./use-growth-stats-DjrWrGR0.js";import{u as Re}from"./posts-BnlRx8vs.js";import{h as Ue,i as Ve}from"./stats-Dw3ZL_6y.js";import"./select-DjnPV9qj.js";import"./message-square-text-Cl7f2tbO.js";import"./sprout-CrEApBZc.js";import"./a-large-small-L2U_wPWJ.js";import"./at-sign-zn6VHHIb.js";import"./copy-Bm8UN6-f.js";import"./hash-Bydeiaa9.js";import"./inbox-Ion97X3-.js";import"./minus-C6PAFjHJ.js";import"./tags-dQNmC1sJ.js";import"./square-BoXJyuwE.js";import"./user-round-check-C27cgk4d.js";import"./repeat-DidFh0Da.js";import"./reply-CSbAYEM2.js";import"./trash-Cud6S0eh.js";import"./chart-2aLRupgZ.js";import"./_baseAssignValue-DyITDSi7.js";import"./currency-fEUUCkj0.js";const Ie=s=>s.email_only?"Sent":s.email?"Published and sent":"Published",Se=({latestPostStats:s,isLoading:o})=>{const t=Y(),[r,i]=_.useState(!1),{site:n,settings:x}=C(),{appSettings:l}=W(),{emailTrackClicks:c,emailTrackOpens:h}=l?.analytics||{},m=n.title||String(x.find(g=>g.key==="title")?.value||"Ghost Site"),a=String(x.find(g=>g.key==="timezone")?.value||"Etc/UTC"),d=s?Ae(s,{membersTrackSources:l?.analytics.membersTrackSources}):null,b="group mr-2 flex flex-col gap-1.5 hover:cursor-pointer";return e.jsxs(D,{className:"group/card bg-gradient-to-tr from-muted/40 to-muted/0 to-50%","data-testid":"latest-post",children:[e.jsxs(E,{children:[e.jsx(F,{className:"flex items-baseline justify-between font-medium leading-snug text-muted-foreground",children:"Latest post performance"}),e.jsx(R,{className:"hidden",children:"How your last post did"})]}),e.jsxs(U,{className:"flex flex-col gap-6 px-0 lg:flex-row xl:grid xl:grid-cols-3",children:[o&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex w-full items-center gap-6 px-6 xl:col-span-2",children:[e.jsx("div",{className:"w-full max-w-[232px] grow",children:e.jsx(j,{className:"aspect-[16/10] rounded-md"})}),e.jsxs("div",{className:"w-full grow",children:[e.jsx(j,{className:"w-full max-w-[420px]"}),e.jsx(j,{className:"w-1/2"})]})]}),e.jsx("div",{className:"flex flex-col items-stretch gap-2 px-6 text-sm",children:e.jsxs("div",{className:"grid grid-cols-2 gap-5",children:[e.jsxs("div",{children:[e.jsx(j,{className:"w-3/4"}),e.jsx(j,{className:"h-10 w-1/3"})]}),e.jsxs("div",{children:[e.jsx(j,{className:"w-3/4"}),e.jsx(j,{className:"h-10 w-1/3"})]}),e.jsxs("div",{children:[e.jsx(j,{className:"w-3/4"}),e.jsx(j,{className:"h-10 w-1/3"})]}),e.jsxs("div",{children:[e.jsx(j,{className:"w-3/4"}),e.jsx(j,{className:"h-10 w-1/3"})]})]})})]}),!o&&s&&d?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-6 px-6 transition-all md:flex-row md:items-start xl:col-span-2",children:[s.feature_image&&e.jsx("div",{className:"aspect-[16/10] w-full min-w-[100px] rounded-sm bg-cover bg-center sm:max-w-[170px] lg:max-w-[170px] xl:max-w-[232px]",style:{backgroundImage:`url(${s.feature_image})`}}),e.jsxs("div",{className:"flex grow flex-col items-start justify-center self-stretch",children:[e.jsx("div",{className:"text-lg font-semibold leading-tighter tracking-tight hover:cursor-pointer hover:opacity-75",onClick:()=>{!o&&s&&t(`/posts/analytics/${s.id}`,{crossApp:!0})},children:s.title}),e.jsxs("div",{className:"mt-0.5 text-sm text-muted-foreground",children:[s.authors&&s.authors.length>0&&e.jsxs("div",{children:["By ",s.authors.map(g=>g.name).join(", ")," – ",se(s.published_at,a)]}),e.jsx("div",{className:"mt-0.5",children:Ie(s)})]}),e.jsxs("div",{className:"mt-6 flex items-center gap-2",children:[!s.email_only&&e.jsx(Ce,{author:s.authors?.map(g=>g.name).join(", ")||"",description:"",faviconURL:n.icon||"",featureImageURL:s.feature_image||"",open:r,postExcerpt:s.excerpt||"",postTitle:s.title,postURL:s.url||"",siteTitle:m,onClose:()=>i(!1),onOpenChange:i,children:e.jsxs(T,{onClick:()=>i(!0),children:[e.jsx(Le,{})," Share post"]})}),e.jsxs(T,{className:s.email_only?"w-full":"",variant:"outline",onClick:()=>{t(`/posts/analytics/${s.id}`,{crossApp:!0})},children:[e.jsx(ze,{}),e.jsx("span",{className:"hidden md:!visible md:!block",children:s.email_only?"Post analytics":"Analytics"})]})]})]})]}),e.jsx("div",{className:"-ml-4 flex w-full flex-col items-stretch gap-2 pr-6 text-sm xl:h-full xl:max-w-none",children:e.jsxs("div",{className:"grid grid-cols-2 gap-6 pl-10 lg:border-l xl:h-full",children:[d.showWebMetrics&&l?.analytics.webAnalytics&&e.jsxs("div",{className:b,"data-testid":"latest-post-visitors",onClick:()=>{t(`/posts/analytics/${s.id}/web`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground",children:[e.jsx(M,{size:16,strokeWidth:1.25}),e.jsx("span",{className:"hidden md:!visible md:!block",children:"Visitors"})]}),e.jsx("span",{className:"text-[2.2rem] font-semibold leading-none tracking-tighter",children:u(s.visitors)})]}),d.showMemberGrowth&&e.jsxs("div",{className:$(b,d.showEmailMetrics&&(!d.showWebMetrics||!l?.analytics.webAnalytics)&&"row-[2/3] col-[1/2]"),"data-testid":"latest-post-members",onClick:()=>{t(`/posts/analytics/${s.id}/growth`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground",children:[e.jsx(ae,{size:16,strokeWidth:1.25}),e.jsx("span",{className:"hidden md:!visible md:!block",children:"Members"})]}),e.jsx("span",{className:"text-[2.2rem] font-semibold leading-none tracking-tighter",children:s.member_delta?e.jsxs(e.Fragment,{children:["+",u(s.member_delta)]}):0})]}),d.showEmailMetrics&&s.email&&e.jsxs(e.Fragment,{children:[h&&e.jsxs("div",{className:b,onClick:()=>{t(`/posts/analytics/${s.id}/newsletter`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground",children:[e.jsx(K,{size:16,strokeWidth:1.25}),e.jsx("span",{className:"hidden whitespace-nowrap md:!visible md:!block",children:"Opens"})]}),e.jsx("span",{className:"text-[2.2rem] font-semibold leading-none tracking-tighter",children:s.email.email_count?P((s.email.opened_count||0)/s.email.email_count):"0%"})]}),c&&e.jsxs("div",{className:b,onClick:()=>{t(`/posts/analytics/${s.id}/newsletter`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground",children:[e.jsx(Me,{size:16,strokeWidth:1.25}),e.jsx("span",{className:"hidden whitespace-nowrap md:!visible md:!block",children:"Clicks"})]}),e.jsx("span",{className:"text-[2.2rem] font-semibold leading-none tracking-tighter",children:s.email.email_count&&s.count?.clicks?P((s.count.clicks||0)/s.email.email_count):"0%"})]})]})]})})]}):!o&&e.jsx(Q,{actions:e.jsx(T,{variant:"secondary",onClick:()=>{t("/editor/post",{crossApp:!0})},children:"New post"}),className:"w-full pb-10 xl:col-span-3",description:"Once it's live, you can track performance here",title:"Publish your first post",children:e.jsx(te,{strokeWidth:1.5})})]})]})},Be=()=>{const{data:s}=C();return{isLimited:t=>{const r=s?.config;return r?.hostSettings?.limits&&t==="limitAnalytics"?r.hostSettings.limits.limitAnalytics?.disabled===!0:!1}}},B=({title:s,iconName:o,description:t,color:r,diffDirection:i,diffValue:n,formattedValue:x,trendingFromValue:l,children:c,onClick:h})=>{const{range:m}=C(),a=o&&$e[o],d=le.useMemo(()=>{if(!i||i==="empty"||m===q.allTime.value||!n)return"";const b=i==="up"?"up":i==="down"?"down":"at",N=H(m).replace("in the ","").replace(/^\(|\)$/g,"");return i==="same"?e.jsxs("span",{children:["You're trending at the same level as ",e.jsx("span",{className:"font-semibold",children:x})," compared to the ",e.jsx("span",{className:"font-semibold",children:N})]}):e.jsxs("span",{children:["You're trending ",e.jsxs("span",{className:"font-semibold",children:[b," ",n]})," from ",e.jsx("span",{className:"font-semibold",children:l})," compared to the ",N]})},[i,n,l,x,m]);return e.jsxs(D,{className:"group","data-testid":s,children:[e.jsxs(E,{className:"hidden",children:[e.jsx(F,{children:s}),e.jsx(R,{children:t})]}),e.jsxs(Ne,{className:"relative flex grow flex-row items-start justify-between gap-5 border-none pb-2 xl:pb-4",children:[e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsxs(we,{className:h&&"transition-all group-hover:text-foreground",children:[r&&e.jsx("span",{className:"inline-block size-2 rounded-full opacity-50",style:{backgroundColor:r}}),a&&e.jsx(a,{size:16,strokeWidth:1.5}),s]}),e.jsx(ye,{diffDirection:m===q.allTime.value?"hidden":i,diffTooltip:d,diffValue:n,value:x})]}),h&&e.jsx(T,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100",size:"sm",variant:"outline",onClick:h,children:"View more"})]}),e.jsx(U,{children:c})]})},Ge=({kpiValues:s,visitorsChartData:o,visitorsYRange:t,growthTotals:r,membersChartData:i,mrrChartData:n,currencySymbol:x,isLoading:l})=>{const c=Y(),{range:h}=C(),{appSettings:m}=W(),d=Be().isLimited("limitAnalytics"),b="-mb-3 h-[10vw] max-h-[200px] min-h-[100px] hover:!cursor-pointer";if(l)return e.jsx(ve,{className:"flex h-[calc(10vw+116px)] max-h-[416px] min-h-20 items-center justify-center hover:!cursor-pointer",children:e.jsx(oe,{})});const g=m?.analytics.webAnalytics,N=d&&!g,y=!0,L=m?.paidMembersEnabled,w=[g,N,y,L].filter(Boolean).length;let A="lg:grid-cols-3";w===2?A="lg:grid-cols-2":w===1&&(A="lg:grid-cols-1");const V=`flex flex-col lg:grid ${A} gap-6`;return e.jsxs("div",{className:V,children:[g&&!N&&e.jsx(B,{description:"Number of individual people who visited your website",diffDirection:"empty",formattedValue:s.visits,iconName:"Globe",linkto:"/analytics/web/",title:"Unique visitors",onClick:()=>{c("/analytics/web/")},children:e.jsx(S,{className:b,color:"hsl(var(--chart-blue))",data:o,id:"visitors",range:h,showHorizontalLines:!0,showYAxisValues:!1,syncId:"overview-charts",yAxisRange:t})}),N&&e.jsxs(D,{children:[e.jsxs(E,{className:"hidden",children:[e.jsx(F,{children:"Unlock web analytics"}),e.jsx(R,{children:"Get the full picture of what's working with detailed, cookie-free traffic analytics."})]}),e.jsx(U,{className:"flex h-full items-center justify-center p-6",children:e.jsx(Q,{actions:e.jsx(T,{variant:"outline",onClick:()=>c("/pro",{crossApp:!0}),children:"Upgrade now"}),className:"py-10",description:"Get the full picture of what's working with detailed, cookie-free traffic analytics.",title:"Unlock web analytics",children:e.jsx(We,{})})})]}),e.jsx(B,{description:"How number of members of your publication changed over time",diffDirection:r.directions.total,diffValue:r.percentChanges.total,formattedValue:u(r.totalMembers),iconName:"User",linkto:"/analytics/growth/",title:"Members",trendingFromValue:`${u(i[0].value)}`,onClick:()=>{c("/analytics/growth/?tab=total-members")},children:e.jsx(S,{className:b,color:"hsl(var(--chart-darkblue))",data:i,id:"members",range:h,showHorizontalLines:!0,showYAxisValues:!1,syncId:"overview-charts"})}),L&&e.jsx(B,{description:"Monthly recurring revenue changes over time",diffDirection:r.directions.mrr,diffValue:r.percentChanges.mrr,formattedValue:`${x}${u(O(r.mrr))}`,iconName:"Coins",linkto:"/analytics/growth/",title:"MRR",trendingFromValue:`${x}${u(n[0].value)}`,onClick:()=>{c("/analytics/growth/?tab=mrr")},children:e.jsx(S,{className:b,color:"hsl(var(--chart-teal))",data:n,id:"mrr",range:h,showHorizontalLines:!0,showYAxisValues:!1,syncId:"overview-charts"})})]})},Oe=({className:s})=>e.jsx("div",{className:$("rounded-sm bg-muted dark:bg-[#36373a] flex flex-col items-center justify-center gap-1 p-6",s),children:e.jsx(ce,{className:"text-muted-foreground/50",size:18,strokeWidth:1.5})}),G=({className:s,metrics:o,title:t})=>e.jsx(e.Fragment,{children:e.jsxs("div",{className:$("pointer-events-none absolute bottom-[calc(100%+2px)] left-1/2 z-50 min-w-[160px] -translate-x-1/2 rounded-md bg-background p-3 text-sm opacity-0 shadow-md transition-all group-hover/tooltip:bottom-[calc(100%+12px)] group-hover/tooltip:opacity-100",s),children:[e.jsx("div",{className:"mb-1.5 whitespace-nowrap border-b pb-1.5 pr-10 font-medium text-muted-foreground",children:t}),e.jsx("div",{className:"flex flex-col gap-1.5",children:o?.map(r=>e.jsxs("div",{className:"flex items-center justify-between gap-5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 whitespace-nowrap",children:[r.icon,r.label]}),e.jsx("span",{className:"font-mono",children:r.metric})]},r.label))})]})}),He=({topPostsData:s,isLoading:o})=>{const t=Y(),{range:r,settings:i}=C(),{appSettings:n}=W(),x=String(i.find(a=>a.key==="timezone")?.value||"Etc/UTC"),l=n?.analytics.webAnalytics,c=n?.analytics.emailTrackClicks,h=n?.analytics.emailTrackOpens,m="flex items-center justify-end gap-1 rounded-md px-2 py-1 font-mono text-gray-800 hover:bg-muted-foreground/10 group-hover:text-foreground";return e.jsxs(D,{className:"group/card w-full lg:col-span-2","data-testid":"top-posts-card",children:[e.jsxs(E,{children:[e.jsxs(F,{className:"flex items-baseline justify-between font-medium leading-snug text-muted-foreground",children:["Top posts ",H(r)]}),e.jsx(R,{className:"hidden",children:"Most viewed posts in this period"})]}),e.jsx(U,{children:o?e.jsx(de,{className:"mt-6"}):e.jsxs(e.Fragment,{children:[s?.stats?.map(a=>e.jsxs("div",{className:'group relative flex w-full items-start justify-between gap-5 border-t border-border/50 py-4 before:absolute before:-inset-x-4 before:inset-y-0 before:z-0 before:hidden before:rounded-md before:bg-accent before:opacity-80 before:content-[""] first:!border-border hover:cursor-pointer hover:border-transparent hover:before:block md:items-center dark:before:bg-accent/50 [&+div]:hover:border-transparent',children:[e.jsxs("div",{className:"z-10 flex min-w-[160px] grow items-start gap-4 md:items-center lg:min-w-[320px]",onClick:()=>{t(`/posts/analytics/${a.post_id}`,{crossApp:!0})},children:[a.feature_image?e.jsx("div",{className:"hidden aspect-[16/10] w-[80px] shrink-0 rounded-sm bg-cover bg-center sm:!visible sm:!block lg:w-[100px]",style:{backgroundImage:`url(${a.feature_image})`}}):e.jsx(Oe,{className:"hidden aspect-[16/10] w-[80px] shrink-0 group-hover:bg-muted-foreground/10 sm:!visible sm:!flex lg:w-[100px]"}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"line-clamp-2 text-lg font-semibold leading-[1.35em]",children:a.title}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["By ",a.authors," – ",se(a.published_at,x)]}),e.jsx("span",{className:"text-sm text-muted-foreground",children:Te(a)})]})]}),e.jsxs("div",{className:"z-10 flex flex-col items-end justify-center gap-0.5 text-sm md:flex-row md:items-center md:justify-end md:gap-3",children:[l&&e.jsxs("div",{className:"group/tooltip relative flex w-[66px] lg:w-[92px]","data-testid":"statistics-visitors",onClick:d=>{d.stopPropagation(),t(`/posts/analytics/${a.post_id}/web`,{crossApp:!0})},children:[e.jsx(G,{metrics:[{icon:e.jsx(M,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Unique visitors",metric:u(a.views)}],title:"Web traffic"}),e.jsxs("div",{className:m,children:[e.jsx(M,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),J(a.views)]})]}),a.sent_count!==null&&e.jsxs("div",{className:"group/tooltip relative flex w-[66px] lg:w-[92px]",onClick:d=>{d.stopPropagation(),t(`/posts/analytics/${a.post_id}/newsletter`,{crossApp:!0})},children:[e.jsx(G,{className:`${n?.analytics.membersTrackSources?"":"left-auto right-0 translate-x-0"}`,metrics:[{icon:e.jsx(X,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Sent",metric:u(a.sent_count||0)},...h?[{icon:e.jsx(K,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Opens",metric:u(a.opened_count||0)}]:[],...c?[{icon:e.jsx(Z,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Clicks",metric:u(a.clicked_count||0)}]:[]],title:"Newsletter performance"}),e.jsx("div",{className:m,children:h?e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),a.open_rate?`${Math.round(a.open_rate)}%`:"0%"]}):c?e.jsxs(e.Fragment,{children:[e.jsx(Z,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),a.click_rate?`${Math.round(a.click_rate)}%`:"0%"]}):e.jsxs(e.Fragment,{children:[e.jsx(X,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),J(a.sent_count||0)]})})]}),n?.analytics.membersTrackSources&&e.jsxs("div",{className:"group/tooltip relative flex w-[66px] lg:w-[92px]","data-testid":"statistics-members",onClick:d=>{d.stopPropagation(),t(`/posts/analytics/${a.post_id}/growth`,{crossApp:!0})},children:[e.jsx(G,{className:"left-auto right-0 translate-x-0",metrics:[{icon:e.jsx(me,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Free",metric:a.free_members>0?`+${u(a.free_members)}`:"0"},...n?.paidMembersEnabled?[{icon:e.jsx(ue,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Paid",metric:a.paid_members>0?`+${u(a.paid_members)}`:"0"}]:[]],title:"New members"}),e.jsxs("div",{className:m,children:[e.jsx(ae,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),a.members>0?`+${u(a.members)}`:"0"]})]})]})]},a.post_id)),(!s?.stats||s.stats.length===0)&&e.jsx(Q,{className:"w-full pb-10",title:`No posts ${H(r)}`,children:e.jsx(te,{strokeWidth:1.5})})]})})]})},Ke=()=>{const{data:{posts:[s]}={posts:[]},isLoading:o}=Re({searchParams:{filter:"status:[published,sent]",order:"published_at DESC",limit:"1",include:"authors,email,count.clicks"}}),t=s,r=Ue(t?.id||"",{enabled:!!t?.id}),{data:i,isLoading:n}=r;return{data:_.useMemo(()=>{if(!t)return null;const l=i?.stats?.[0]||{id:t.id,recipient_count:null,opened_count:null,open_rate:null,member_delta:0,free_members:0,paid_members:0,visitors:0};return{id:t.id,uuid:t.uuid,title:t.title||"",slug:t.slug||"",feature_image:t.feature_image||null,published_at:t.published_at||"",url:t.url||"",excerpt:t.excerpt||"",email_only:t.email_only||!1,status:t.status,email:t.email,count:t.count,authors:t.authors||[],recipient_count:l.recipient_count,opened_count:l.opened_count,open_rate:l.open_rate,member_delta:l.member_delta,free_members:l.free_members,paid_members:l.paid_members,visitors:l.visitors,click_rate:null}},[t,i]),isLoading:o||!!t?.id&&n}},ee=({className:s,title:o,description:t,url:r,children:i})=>e.jsx("a",{className:$("block rounded-xl border bg-card p-6 transition-all hover:shadow-xs hover:bg-accent/50 group/card",s),href:r,rel:"noreferrer",target:"_blank",children:e.jsxs("div",{className:"flex items-center gap-6",children:[i,e.jsxs("div",{className:"flex flex-col gap-0.5 leading-tight",children:[e.jsx("span",{className:"text-base font-semibold",children:o}),e.jsx("span",{className:"text-sm font-normal text-gray-700",children:t})]})]})}),ks=()=>{const{appSettings:s}=W(),{statsConfig:o,isLoading:t,range:r}=C(),{startDate:i,endDate:n,timezone:x}=pe(r),{isLoading:l,chartData:c,totals:h,currencySymbol:m}=Fe(r),{data:a,isLoading:d}=Ke(),{data:b,isLoading:g}=Ve({searchParams:{date_from:z(i),date_to:z(n),limit:"5",timezone:x}}),N={site_uuid:o?.id||"",date_from:z(i),date_to:z(n),timezone:x,member_status:Ee(he)},{data:y,loading:L}=ke({endpoint:"api_kpis",statsConfig:o,params:N}),w=_.useMemo(()=>I(y||[],r,"visits","sum")?.map(f=>{const v=Number(f.visits),k=isNaN(v)?0:v;return{date:String(f.date),value:k,formattedValue:u(k),label:"Visitors"}}),[y,r]),A=_.useMemo(()=>{const f=[0,1];if(!w||w.length===0)return f;const v=w.map(p=>p.value).filter(p=>p>=0);return v.length===0?f:[0,Math.max(...v)||f[1]]},[w]),V=_.useMemo(()=>{if(!c||c.length===0)return[];let f=[];return f=I(c,r,"value","exact"),f.map(p=>({date:p.date,value:p.free+p.paid,formattedValue:u(p.free+p.paid),label:"Members"}))},[c,r]),re=_.useMemo(()=>{if(!s?.paidMembersEnabled||!c||c.length===0)return[];let f=[];return f=I(c,r,"mrr","exact"),f.map(p=>({date:p.date,value:O(p.mrr),formattedValue:`${m}${u(O(p.mrr))}`,label:"MRR"}))},[c,r,m,s]),ie=_.useMemo(()=>{if(!y?.length)return{visits:"0"};const f=y.reduce((v,k)=>{const p=Number(k.visits);return v+(isNaN(p)?0:p)},0);return{visits:u(f)}},[y]),ne=t;return e.jsxs(ge,{children:[e.jsx(fe,{children:e.jsx(_e,{children:e.jsx(be,{excludeRanges:["today"]})})}),e.jsxs(je,{isLoading:ne,loadingComponent:e.jsx(e.Fragment,{}),children:[e.jsx(Ge,{currencySymbol:m,growthTotals:h,isLoading:L||l,kpiValues:ie,membersChartData:V,mrrChartData:re,visitorsChartData:w,visitorsYRange:A}),e.jsx(Se,{isLoading:d,latestPostStats:a}),e.jsx(He,{isLoading:g,topPostsData:b}),e.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[e.jsx(xe,{className:"-mb-4 mt-4 lg:col-span-2",children:"Grow your audience"}),e.jsx(ee,{description:"Find out how to review the performance of your content and get the most out of post analytics in Ghost.",title:"Understanding analytics in Ghost",url:"https://ghost.org/help/native-analytics",children:e.jsx("div",{className:"flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md bg-gradient-to-tr from-[#14B8FF]/20 to-[#00BBA7]/20 p-4 opacity-80 transition-all group-hover/card:opacity-100",children:e.jsx(De,{className:"text-[#00BBA7]",size:20,strokeWidth:1.5})})}),e.jsx(ee,{description:"Use these content distribution tactics to get more people to discover your work and increase engagement.",title:"How to get your content seen online",url:"https://ghost.org/resources/content-distribution/",children:e.jsx("div",{className:"flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md bg-gradient-to-tl from-[#FDC700]/20 to-[#FF2056]/20 p-4 opacity-80 transition-all group-hover/card:opacity-100",children:e.jsx(M,{className:"text-[#FE9A00]",size:20,strokeWidth:1.5})})})]})]})]})};export{ks as default};
1
+ import{aM as Y,r as _,bR as C,bS as W,j as e,S as j,bU as se,B as T,aQ as M,aj as u,y as $,ai as P,cz as te,aN as oe,cA as O,e as le,cB as q,cC as ce,bN as de,cD as J,bQ as me,cE as ue,af as pe,ag as z,aT as I,_ as xe,b2 as he}from"./index-DRKV2w8e.js";import{g as H,S as ge,a as fe,D as be,b as je}from"./stats-view-DnjRNHBG.js";import{C as D,a as E,b as F,h as R,c as U,E as ve,K as Ne,d as we,e as ye,u as ke,j as _e}from"./pagemenu-CyAPL2jR.js";import{E as Q}from"./empty-indicator-3LXlr_8k.js";import{P as Ce}from"./post-share-modal-FoeSNnKZ.js";import{g as Ae,c as Te}from"./post-helpers-gInwAwEv.js";import{S as Le,U as ae}from"./wallet-cards-BXHaaW90.js";import{C as ze,h as K,d as Me,i as We,L as $e,j as X,k as Z,l as De}from"./lucide-react-BtdIj8wV.js";import{G as S}from"./gh-chart-CTNejk4b.js";import{g as Ee}from"./audience-DyqogFKk.js";import{u as Fe}from"./use-growth-stats-DJmJniVR.js";import{u as Re}from"./posts-DjtbHmIO.js";import{h as Ue,i as Ve}from"./stats-6tjwXr7z.js";import"./select-DOWPuNp3.js";import"./message-square-text-CAxBZ_19.js";import"./sprout-DdSwjAnU.js";import"./a-large-small-DeaMDhiq.js";import"./at-sign-DpSvWaBL.js";import"./copy-DdFJ2rqh.js";import"./hash-DqdFciUO.js";import"./inbox-BvEfoBsw.js";import"./minus-CkijqNoR.js";import"./tags-FYRO3JRl.js";import"./square-CIGK666V.js";import"./user-round-check-C4hZJ4Qo.js";import"./repeat-B8wqzbtG.js";import"./reply-B5bZTNpu.js";import"./trash-VI9DRMRe.js";import"./chart-DKdadfuk.js";import"./_baseAssignValue-DRkJyH0k.js";import"./currency-fEUUCkj0.js";const Ie=s=>s.email_only?"Sent":s.email?"Published and sent":"Published",Se=({latestPostStats:s,isLoading:o})=>{const t=Y(),[r,i]=_.useState(!1),{site:n,settings:x}=C(),{appSettings:l}=W(),{emailTrackClicks:c,emailTrackOpens:h}=l?.analytics||{},m=n.title||String(x.find(g=>g.key==="title")?.value||"Ghost Site"),a=String(x.find(g=>g.key==="timezone")?.value||"Etc/UTC"),d=s?Ae(s,{membersTrackSources:l?.analytics.membersTrackSources}):null,b="group mr-2 flex flex-col gap-1.5 hover:cursor-pointer";return e.jsxs(D,{className:"group/card bg-gradient-to-tr from-muted/40 to-muted/0 to-50%","data-testid":"latest-post",children:[e.jsxs(E,{children:[e.jsx(F,{className:"flex items-baseline justify-between font-medium leading-snug text-muted-foreground",children:"Latest post performance"}),e.jsx(R,{className:"hidden",children:"How your last post did"})]}),e.jsxs(U,{className:"flex flex-col gap-6 px-0 lg:flex-row xl:grid xl:grid-cols-3",children:[o&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex w-full items-center gap-6 px-6 xl:col-span-2",children:[e.jsx("div",{className:"w-full max-w-[232px] grow",children:e.jsx(j,{className:"aspect-[16/10] rounded-md"})}),e.jsxs("div",{className:"w-full grow",children:[e.jsx(j,{className:"w-full max-w-[420px]"}),e.jsx(j,{className:"w-1/2"})]})]}),e.jsx("div",{className:"flex flex-col items-stretch gap-2 px-6 text-sm",children:e.jsxs("div",{className:"grid grid-cols-2 gap-5",children:[e.jsxs("div",{children:[e.jsx(j,{className:"w-3/4"}),e.jsx(j,{className:"h-10 w-1/3"})]}),e.jsxs("div",{children:[e.jsx(j,{className:"w-3/4"}),e.jsx(j,{className:"h-10 w-1/3"})]}),e.jsxs("div",{children:[e.jsx(j,{className:"w-3/4"}),e.jsx(j,{className:"h-10 w-1/3"})]}),e.jsxs("div",{children:[e.jsx(j,{className:"w-3/4"}),e.jsx(j,{className:"h-10 w-1/3"})]})]})})]}),!o&&s&&d?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-6 px-6 transition-all md:flex-row md:items-start xl:col-span-2",children:[s.feature_image&&e.jsx("div",{className:"aspect-[16/10] w-full min-w-[100px] rounded-sm bg-cover bg-center sm:max-w-[170px] lg:max-w-[170px] xl:max-w-[232px]",style:{backgroundImage:`url(${s.feature_image})`}}),e.jsxs("div",{className:"flex grow flex-col items-start justify-center self-stretch",children:[e.jsx("div",{className:"text-lg font-semibold leading-tighter tracking-tight hover:cursor-pointer hover:opacity-75",onClick:()=>{!o&&s&&t(`/posts/analytics/${s.id}`,{crossApp:!0})},children:s.title}),e.jsxs("div",{className:"mt-0.5 text-sm text-muted-foreground",children:[s.authors&&s.authors.length>0&&e.jsxs("div",{children:["By ",s.authors.map(g=>g.name).join(", ")," – ",se(s.published_at,a)]}),e.jsx("div",{className:"mt-0.5",children:Ie(s)})]}),e.jsxs("div",{className:"mt-6 flex items-center gap-2",children:[!s.email_only&&e.jsx(Ce,{author:s.authors?.map(g=>g.name).join(", ")||"",description:"",faviconURL:n.icon||"",featureImageURL:s.feature_image||"",open:r,postExcerpt:s.excerpt||"",postTitle:s.title,postURL:s.url||"",siteTitle:m,onClose:()=>i(!1),onOpenChange:i,children:e.jsxs(T,{onClick:()=>i(!0),children:[e.jsx(Le,{})," Share post"]})}),e.jsxs(T,{className:s.email_only?"w-full":"",variant:"outline",onClick:()=>{t(`/posts/analytics/${s.id}`,{crossApp:!0})},children:[e.jsx(ze,{}),e.jsx("span",{className:"hidden md:!visible md:!block",children:s.email_only?"Post analytics":"Analytics"})]})]})]})]}),e.jsx("div",{className:"-ml-4 flex w-full flex-col items-stretch gap-2 pr-6 text-sm xl:h-full xl:max-w-none",children:e.jsxs("div",{className:"grid grid-cols-2 gap-6 pl-10 lg:border-l xl:h-full",children:[d.showWebMetrics&&l?.analytics.webAnalytics&&e.jsxs("div",{className:b,"data-testid":"latest-post-visitors",onClick:()=>{t(`/posts/analytics/${s.id}/web`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground",children:[e.jsx(M,{size:16,strokeWidth:1.25}),e.jsx("span",{className:"hidden md:!visible md:!block",children:"Visitors"})]}),e.jsx("span",{className:"text-[2.2rem] font-semibold leading-none tracking-tighter",children:u(s.visitors)})]}),d.showMemberGrowth&&e.jsxs("div",{className:$(b,d.showEmailMetrics&&(!d.showWebMetrics||!l?.analytics.webAnalytics)&&"row-[2/3] col-[1/2]"),"data-testid":"latest-post-members",onClick:()=>{t(`/posts/analytics/${s.id}/growth`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground",children:[e.jsx(ae,{size:16,strokeWidth:1.25}),e.jsx("span",{className:"hidden md:!visible md:!block",children:"Members"})]}),e.jsx("span",{className:"text-[2.2rem] font-semibold leading-none tracking-tighter",children:s.member_delta?e.jsxs(e.Fragment,{children:["+",u(s.member_delta)]}):0})]}),d.showEmailMetrics&&s.email&&e.jsxs(e.Fragment,{children:[h&&e.jsxs("div",{className:b,onClick:()=>{t(`/posts/analytics/${s.id}/newsletter`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground",children:[e.jsx(K,{size:16,strokeWidth:1.25}),e.jsx("span",{className:"hidden whitespace-nowrap md:!visible md:!block",children:"Opens"})]}),e.jsx("span",{className:"text-[2.2rem] font-semibold leading-none tracking-tighter",children:s.email.email_count?P((s.email.opened_count||0)/s.email.email_count):"0%"})]}),c&&e.jsxs("div",{className:b,onClick:()=>{t(`/posts/analytics/${s.id}/newsletter`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground",children:[e.jsx(Me,{size:16,strokeWidth:1.25}),e.jsx("span",{className:"hidden whitespace-nowrap md:!visible md:!block",children:"Clicks"})]}),e.jsx("span",{className:"text-[2.2rem] font-semibold leading-none tracking-tighter",children:s.email.email_count&&s.count?.clicks?P((s.count.clicks||0)/s.email.email_count):"0%"})]})]})]})})]}):!o&&e.jsx(Q,{actions:e.jsx(T,{variant:"secondary",onClick:()=>{t("/editor/post",{crossApp:!0})},children:"New post"}),className:"w-full pb-10 xl:col-span-3",description:"Once it's live, you can track performance here",title:"Publish your first post",children:e.jsx(te,{strokeWidth:1.5})})]})]})},Be=()=>{const{data:s}=C();return{isLimited:t=>{const r=s?.config;return r?.hostSettings?.limits&&t==="limitAnalytics"?r.hostSettings.limits.limitAnalytics?.disabled===!0:!1}}},B=({title:s,iconName:o,description:t,color:r,diffDirection:i,diffValue:n,formattedValue:x,trendingFromValue:l,children:c,onClick:h})=>{const{range:m}=C(),a=o&&$e[o],d=le.useMemo(()=>{if(!i||i==="empty"||m===q.allTime.value||!n)return"";const b=i==="up"?"up":i==="down"?"down":"at",N=H(m).replace("in the ","").replace(/^\(|\)$/g,"");return i==="same"?e.jsxs("span",{children:["You're trending at the same level as ",e.jsx("span",{className:"font-semibold",children:x})," compared to the ",e.jsx("span",{className:"font-semibold",children:N})]}):e.jsxs("span",{children:["You're trending ",e.jsxs("span",{className:"font-semibold",children:[b," ",n]})," from ",e.jsx("span",{className:"font-semibold",children:l})," compared to the ",N]})},[i,n,l,x,m]);return e.jsxs(D,{className:"group","data-testid":s,children:[e.jsxs(E,{className:"hidden",children:[e.jsx(F,{children:s}),e.jsx(R,{children:t})]}),e.jsxs(Ne,{className:"relative flex grow flex-row items-start justify-between gap-5 border-none pb-2 xl:pb-4",children:[e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsxs(we,{className:h&&"transition-all group-hover:text-foreground",children:[r&&e.jsx("span",{className:"inline-block size-2 rounded-full opacity-50",style:{backgroundColor:r}}),a&&e.jsx(a,{size:16,strokeWidth:1.5}),s]}),e.jsx(ye,{diffDirection:m===q.allTime.value?"hidden":i,diffTooltip:d,diffValue:n,value:x})]}),h&&e.jsx(T,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100",size:"sm",variant:"outline",onClick:h,children:"View more"})]}),e.jsx(U,{children:c})]})},Ge=({kpiValues:s,visitorsChartData:o,visitorsYRange:t,growthTotals:r,membersChartData:i,mrrChartData:n,currencySymbol:x,isLoading:l})=>{const c=Y(),{range:h}=C(),{appSettings:m}=W(),d=Be().isLimited("limitAnalytics"),b="-mb-3 h-[10vw] max-h-[200px] min-h-[100px] hover:!cursor-pointer";if(l)return e.jsx(ve,{className:"flex h-[calc(10vw+116px)] max-h-[416px] min-h-20 items-center justify-center hover:!cursor-pointer",children:e.jsx(oe,{})});const g=m?.analytics.webAnalytics,N=d&&!g,y=!0,L=m?.paidMembersEnabled,w=[g,N,y,L].filter(Boolean).length;let A="lg:grid-cols-3";w===2?A="lg:grid-cols-2":w===1&&(A="lg:grid-cols-1");const V=`flex flex-col lg:grid ${A} gap-6`;return e.jsxs("div",{className:V,children:[g&&!N&&e.jsx(B,{description:"Number of individual people who visited your website",diffDirection:"empty",formattedValue:s.visits,iconName:"Globe",linkto:"/analytics/web/",title:"Unique visitors",onClick:()=>{c("/analytics/web/")},children:e.jsx(S,{className:b,color:"hsl(var(--chart-blue))",data:o,id:"visitors",range:h,showHorizontalLines:!0,showYAxisValues:!1,syncId:"overview-charts",yAxisRange:t})}),N&&e.jsxs(D,{children:[e.jsxs(E,{className:"hidden",children:[e.jsx(F,{children:"Unlock web analytics"}),e.jsx(R,{children:"Get the full picture of what's working with detailed, cookie-free traffic analytics."})]}),e.jsx(U,{className:"flex h-full items-center justify-center p-6",children:e.jsx(Q,{actions:e.jsx(T,{variant:"outline",onClick:()=>c("/pro",{crossApp:!0}),children:"Upgrade now"}),className:"py-10",description:"Get the full picture of what's working with detailed, cookie-free traffic analytics.",title:"Unlock web analytics",children:e.jsx(We,{})})})]}),e.jsx(B,{description:"How number of members of your publication changed over time",diffDirection:r.directions.total,diffValue:r.percentChanges.total,formattedValue:u(r.totalMembers),iconName:"User",linkto:"/analytics/growth/",title:"Members",trendingFromValue:`${u(i[0].value)}`,onClick:()=>{c("/analytics/growth/?tab=total-members")},children:e.jsx(S,{className:b,color:"hsl(var(--chart-darkblue))",data:i,id:"members",range:h,showHorizontalLines:!0,showYAxisValues:!1,syncId:"overview-charts"})}),L&&e.jsx(B,{description:"Monthly recurring revenue changes over time",diffDirection:r.directions.mrr,diffValue:r.percentChanges.mrr,formattedValue:`${x}${u(O(r.mrr))}`,iconName:"Coins",linkto:"/analytics/growth/",title:"MRR",trendingFromValue:`${x}${u(n[0].value)}`,onClick:()=>{c("/analytics/growth/?tab=mrr")},children:e.jsx(S,{className:b,color:"hsl(var(--chart-teal))",data:n,id:"mrr",range:h,showHorizontalLines:!0,showYAxisValues:!1,syncId:"overview-charts"})})]})},Oe=({className:s})=>e.jsx("div",{className:$("rounded-sm bg-muted dark:bg-[#36373a] flex flex-col items-center justify-center gap-1 p-6",s),children:e.jsx(ce,{className:"text-muted-foreground/50",size:18,strokeWidth:1.5})}),G=({className:s,metrics:o,title:t})=>e.jsx(e.Fragment,{children:e.jsxs("div",{className:$("pointer-events-none absolute bottom-[calc(100%+2px)] left-1/2 z-50 min-w-[160px] -translate-x-1/2 rounded-md bg-background p-3 text-sm opacity-0 shadow-md transition-all group-hover/tooltip:bottom-[calc(100%+12px)] group-hover/tooltip:opacity-100",s),children:[e.jsx("div",{className:"mb-1.5 whitespace-nowrap border-b pb-1.5 pr-10 font-medium text-muted-foreground",children:t}),e.jsx("div",{className:"flex flex-col gap-1.5",children:o?.map(r=>e.jsxs("div",{className:"flex items-center justify-between gap-5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 whitespace-nowrap",children:[r.icon,r.label]}),e.jsx("span",{className:"font-mono",children:r.metric})]},r.label))})]})}),He=({topPostsData:s,isLoading:o})=>{const t=Y(),{range:r,settings:i}=C(),{appSettings:n}=W(),x=String(i.find(a=>a.key==="timezone")?.value||"Etc/UTC"),l=n?.analytics.webAnalytics,c=n?.analytics.emailTrackClicks,h=n?.analytics.emailTrackOpens,m="flex items-center justify-end gap-1 rounded-md px-2 py-1 font-mono text-gray-800 hover:bg-muted-foreground/10 group-hover:text-foreground";return e.jsxs(D,{className:"group/card w-full lg:col-span-2","data-testid":"top-posts-card",children:[e.jsxs(E,{children:[e.jsxs(F,{className:"flex items-baseline justify-between font-medium leading-snug text-muted-foreground",children:["Top posts ",H(r)]}),e.jsx(R,{className:"hidden",children:"Most viewed posts in this period"})]}),e.jsx(U,{children:o?e.jsx(de,{className:"mt-6"}):e.jsxs(e.Fragment,{children:[s?.stats?.map(a=>e.jsxs("div",{className:'group relative flex w-full items-start justify-between gap-5 border-t border-border/50 py-4 before:absolute before:-inset-x-4 before:inset-y-0 before:z-0 before:hidden before:rounded-md before:bg-accent before:opacity-80 before:content-[""] first:!border-border hover:cursor-pointer hover:border-transparent hover:before:block md:items-center dark:before:bg-accent/50 [&+div]:hover:border-transparent',children:[e.jsxs("div",{className:"z-10 flex min-w-[160px] grow items-start gap-4 md:items-center lg:min-w-[320px]",onClick:()=>{t(`/posts/analytics/${a.post_id}`,{crossApp:!0})},children:[a.feature_image?e.jsx("div",{className:"hidden aspect-[16/10] w-[80px] shrink-0 rounded-sm bg-cover bg-center sm:!visible sm:!block lg:w-[100px]",style:{backgroundImage:`url(${a.feature_image})`}}):e.jsx(Oe,{className:"hidden aspect-[16/10] w-[80px] shrink-0 group-hover:bg-muted-foreground/10 sm:!visible sm:!flex lg:w-[100px]"}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"line-clamp-2 text-lg font-semibold leading-[1.35em]",children:a.title}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["By ",a.authors," – ",se(a.published_at,x)]}),e.jsx("span",{className:"text-sm text-muted-foreground",children:Te(a)})]})]}),e.jsxs("div",{className:"z-10 flex flex-col items-end justify-center gap-0.5 text-sm md:flex-row md:items-center md:justify-end md:gap-3",children:[l&&e.jsxs("div",{className:"group/tooltip relative flex w-[66px] lg:w-[92px]","data-testid":"statistics-visitors",onClick:d=>{d.stopPropagation(),t(`/posts/analytics/${a.post_id}/web`,{crossApp:!0})},children:[e.jsx(G,{metrics:[{icon:e.jsx(M,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Unique visitors",metric:u(a.views)}],title:"Web traffic"}),e.jsxs("div",{className:m,children:[e.jsx(M,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),J(a.views)]})]}),a.sent_count!==null&&e.jsxs("div",{className:"group/tooltip relative flex w-[66px] lg:w-[92px]",onClick:d=>{d.stopPropagation(),t(`/posts/analytics/${a.post_id}/newsletter`,{crossApp:!0})},children:[e.jsx(G,{className:`${n?.analytics.membersTrackSources?"":"left-auto right-0 translate-x-0"}`,metrics:[{icon:e.jsx(X,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Sent",metric:u(a.sent_count||0)},...h?[{icon:e.jsx(K,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Opens",metric:u(a.opened_count||0)}]:[],...c?[{icon:e.jsx(Z,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Clicks",metric:u(a.clicked_count||0)}]:[]],title:"Newsletter performance"}),e.jsx("div",{className:m,children:h?e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),a.open_rate?`${Math.round(a.open_rate)}%`:"0%"]}):c?e.jsxs(e.Fragment,{children:[e.jsx(Z,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),a.click_rate?`${Math.round(a.click_rate)}%`:"0%"]}):e.jsxs(e.Fragment,{children:[e.jsx(X,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),J(a.sent_count||0)]})})]}),n?.analytics.membersTrackSources&&e.jsxs("div",{className:"group/tooltip relative flex w-[66px] lg:w-[92px]","data-testid":"statistics-members",onClick:d=>{d.stopPropagation(),t(`/posts/analytics/${a.post_id}/growth`,{crossApp:!0})},children:[e.jsx(G,{className:"left-auto right-0 translate-x-0",metrics:[{icon:e.jsx(me,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Free",metric:a.free_members>0?`+${u(a.free_members)}`:"0"},...n?.paidMembersEnabled?[{icon:e.jsx(ue,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),label:"Paid",metric:a.paid_members>0?`+${u(a.paid_members)}`:"0"}]:[]],title:"New members"}),e.jsxs("div",{className:m,children:[e.jsx(ae,{className:"text-muted-foreground group-hover:text-foreground",size:16,strokeWidth:1.5}),a.members>0?`+${u(a.members)}`:"0"]})]})]})]},a.post_id)),(!s?.stats||s.stats.length===0)&&e.jsx(Q,{className:"w-full pb-10",title:`No posts ${H(r)}`,children:e.jsx(te,{strokeWidth:1.5})})]})})]})},Ke=()=>{const{data:{posts:[s]}={posts:[]},isLoading:o}=Re({searchParams:{filter:"status:[published,sent]",order:"published_at DESC",limit:"1",include:"authors,email,count.clicks"}}),t=s,r=Ue(t?.id||"",{enabled:!!t?.id}),{data:i,isLoading:n}=r;return{data:_.useMemo(()=>{if(!t)return null;const l=i?.stats?.[0]||{id:t.id,recipient_count:null,opened_count:null,open_rate:null,member_delta:0,free_members:0,paid_members:0,visitors:0};return{id:t.id,uuid:t.uuid,title:t.title||"",slug:t.slug||"",feature_image:t.feature_image||null,published_at:t.published_at||"",url:t.url||"",excerpt:t.excerpt||"",email_only:t.email_only||!1,status:t.status,email:t.email,count:t.count,authors:t.authors||[],recipient_count:l.recipient_count,opened_count:l.opened_count,open_rate:l.open_rate,member_delta:l.member_delta,free_members:l.free_members,paid_members:l.paid_members,visitors:l.visitors,click_rate:null}},[t,i]),isLoading:o||!!t?.id&&n}},ee=({className:s,title:o,description:t,url:r,children:i})=>e.jsx("a",{className:$("block rounded-xl border bg-card p-6 transition-all hover:shadow-xs hover:bg-accent/50 group/card",s),href:r,rel:"noreferrer",target:"_blank",children:e.jsxs("div",{className:"flex items-center gap-6",children:[i,e.jsxs("div",{className:"flex flex-col gap-0.5 leading-tight",children:[e.jsx("span",{className:"text-base font-semibold",children:o}),e.jsx("span",{className:"text-sm font-normal text-gray-700",children:t})]})]})}),ks=()=>{const{appSettings:s}=W(),{statsConfig:o,isLoading:t,range:r}=C(),{startDate:i,endDate:n,timezone:x}=pe(r),{isLoading:l,chartData:c,totals:h,currencySymbol:m}=Fe(r),{data:a,isLoading:d}=Ke(),{data:b,isLoading:g}=Ve({searchParams:{date_from:z(i),date_to:z(n),limit:"5",timezone:x}}),N={site_uuid:o?.id||"",date_from:z(i),date_to:z(n),timezone:x,member_status:Ee(he)},{data:y,loading:L}=ke({endpoint:"api_kpis",statsConfig:o,params:N}),w=_.useMemo(()=>I(y||[],r,"visits","sum")?.map(f=>{const v=Number(f.visits),k=isNaN(v)?0:v;return{date:String(f.date),value:k,formattedValue:u(k),label:"Visitors"}}),[y,r]),A=_.useMemo(()=>{const f=[0,1];if(!w||w.length===0)return f;const v=w.map(p=>p.value).filter(p=>p>=0);return v.length===0?f:[0,Math.max(...v)||f[1]]},[w]),V=_.useMemo(()=>{if(!c||c.length===0)return[];let f=[];return f=I(c,r,"value","exact"),f.map(p=>({date:p.date,value:p.free+p.paid,formattedValue:u(p.free+p.paid),label:"Members"}))},[c,r]),re=_.useMemo(()=>{if(!s?.paidMembersEnabled||!c||c.length===0)return[];let f=[];return f=I(c,r,"mrr","exact"),f.map(p=>({date:p.date,value:O(p.mrr),formattedValue:`${m}${u(O(p.mrr))}`,label:"MRR"}))},[c,r,m,s]),ie=_.useMemo(()=>{if(!y?.length)return{visits:"0"};const f=y.reduce((v,k)=>{const p=Number(k.visits);return v+(isNaN(p)?0:p)},0);return{visits:u(f)}},[y]),ne=t;return e.jsxs(ge,{children:[e.jsx(fe,{children:e.jsx(_e,{children:e.jsx(be,{excludeRanges:["today"]})})}),e.jsxs(je,{isLoading:ne,loadingComponent:e.jsx(e.Fragment,{}),children:[e.jsx(Ge,{currencySymbol:m,growthTotals:h,isLoading:L||l,kpiValues:ie,membersChartData:V,mrrChartData:re,visitorsChartData:w,visitorsYRange:A}),e.jsx(Se,{isLoading:d,latestPostStats:a}),e.jsx(He,{isLoading:g,topPostsData:b}),e.jsxs("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-2",children:[e.jsx(xe,{className:"-mb-4 mt-4 lg:col-span-2",children:"Grow your audience"}),e.jsx(ee,{description:"Find out how to review the performance of your content and get the most out of post analytics in Ghost.",title:"Understanding analytics in Ghost",url:"https://ghost.org/help/native-analytics",children:e.jsx("div",{className:"flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md bg-gradient-to-tr from-[#14B8FF]/20 to-[#00BBA7]/20 p-4 opacity-80 transition-all group-hover/card:opacity-100",children:e.jsx(De,{className:"text-[#00BBA7]",size:20,strokeWidth:1.5})})}),e.jsx(ee,{description:"Use these content distribution tactics to get more people to discover your work and increase engagement.",title:"How to get your content seen online",url:"https://ghost.org/resources/content-distribution/",children:e.jsx("div",{className:"flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md bg-gradient-to-tl from-[#FDC700]/20 to-[#FF2056]/20 p-4 opacity-80 transition-all group-hover/card:opacity-100",children:e.jsx(M,{className:"text-[#FE9A00]",size:20,strokeWidth:1.5})})})]})]})]})};export{ks as default};