ghost 6.40.0 → 6.41.0

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 (184) hide show
  1. package/core/boot.js +8 -8
  2. package/core/built/admin/assets/{PolarAngleAxis-D7m1zwVk.js → PolarAngleAxis-Bh28wbPV.js} +1 -1
  3. package/core/built/admin/assets/{_baseAssignValue-BDsvYKNK.js → _baseAssignValue-hdDG700N.js} +1 -1
  4. package/core/built/admin/assets/{a-large-small-DxRNdz0F.js → a-large-small-BiK5_5LV.js} +1 -1
  5. package/core/built/admin/assets/{account-migration-SYnE1jBW.js → account-migration-DsSHanIB.js} +1 -1
  6. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  7. package/core/built/admin/assets/admin-x-settings/{code-editor-view-Bj9rgbLw.mjs → code-editor-view-BEIdFhw3.mjs} +2 -2
  8. package/core/built/admin/assets/admin-x-settings/{index-BrZ9YAzd.mjs → index-BEh3nFEy.mjs} +3 -3
  9. package/core/built/admin/assets/admin-x-settings/{index-DRndIh9T.mjs → index-BLF2n6YB.mjs} +2 -2
  10. package/core/built/admin/assets/admin-x-settings/{index-CIl25Teq.mjs → index-BmPIWs5F.mjs} +3 -3
  11. package/core/built/admin/assets/admin-x-settings/{index-CNyNY3Wh.mjs → index-CP9YnNzc.mjs} +3 -3
  12. package/core/built/admin/assets/admin-x-settings/{index-SGr5sE2h.mjs → index-Cd2Ns-D2.mjs} +2 -2
  13. package/core/built/admin/assets/admin-x-settings/{index-PGoLP2kh.mjs → index-CjqAcKpK.mjs} +5 -5
  14. package/core/built/admin/assets/admin-x-settings/{index-pCIv_7bB.mjs → index-CnMcD9aj.mjs} +6212 -6158
  15. package/core/built/admin/assets/admin-x-settings/{index-CPCcgad-.mjs → index-LzsrZC40.mjs} +3 -3
  16. package/core/built/admin/assets/admin-x-settings/{index-DPqY4h5h.mjs → index-ZYW0UW7I.mjs} +3 -3
  17. package/core/built/admin/assets/admin-x-settings/{modals-lo32WZLi.mjs → modals-C48Tq1rW.mjs} +9 -9
  18. package/core/built/admin/assets/{arrow-right-BixoEua4.js → arrow-right-Bk43nMGd.js} +1 -1
  19. package/core/built/admin/assets/{at-sign-BsHNViA_.js → at-sign-DWOf36uj.js} +1 -1
  20. package/core/built/admin/assets/{audience-0RCWjbIK.js → audience-CvP78Gug.js} +1 -1
  21. package/core/built/admin/assets/{automations-DTUfYvf6.js → automations-BBWZhrha.js} +1 -1
  22. package/core/built/admin/assets/{automations-DiGkcVt-.js → automations-CmulGWwu.js} +1 -1
  23. package/core/built/admin/assets/{avatar-flipboard-BgoH-wIq.js → avatar-flipboard-CVf-N6wp.js} +1 -1
  24. package/core/built/admin/assets/{bluesky-sharing-C2xwSoS-.js → bluesky-sharing-DVC3I9Um.js} +1 -1
  25. package/core/built/admin/assets/{chart-X5cLIH1X.js → chart-CUKSNmKY.js} +1 -1
  26. package/core/built/admin/assets/{checkbox-DMamS4oG.js → checkbox-B_yDSM8z.js} +1 -1
  27. package/core/built/admin/assets/{chevron-up-CVgBkTk5.js → chevron-up-DuaKtE_M.js} +1 -1
  28. package/core/built/admin/assets/{chunk.941.f47098cbbce89a049e03.js → chunk.331.2ec2e2702eda02de96cd.js} +3 -3
  29. package/core/built/admin/assets/{chunk.524.a1d668dcc84709a5d702.js → chunk.524.49cc01002e1a5dba8ef9.js} +4 -4
  30. package/core/built/admin/assets/{chunk.582.180bf2525cf552f5ac5f.js → chunk.582.4bbc54c5f7d3dfb93288.js} +6 -6
  31. package/core/built/admin/assets/{circle-alert-Dg3UkvRP.js → circle-alert-bcK_Yqap.js} +1 -1
  32. package/core/built/admin/assets/{code-editor-view-CAICoZJe.js → code-editor-view-Bl4Jzjhk.js} +1 -1
  33. package/core/built/admin/assets/{comments-BHru9ZQ8.js → comments-DMea0nul.js} +1 -1
  34. package/core/built/admin/assets/{content-helpers-BByMp-Y5.js → content-helpers-B2yRzdvJ.js} +1 -1
  35. package/core/built/admin/assets/{copy-D7jqplrv.js → copy-DVtQi_VJ.js} +1 -1
  36. package/core/built/admin/assets/{data-list-DUaY9nlT.js → data-list-BF4GeUmt.js} +1 -1
  37. package/core/built/admin/assets/{deleted-feed-item-jLcSKuul.js → deleted-feed-item-DO2u3qmi.js} +1 -1
  38. package/core/built/admin/assets/{dropzone-DSPf3N_o.js → dropzone-Cs4DrURS.js} +1 -1
  39. package/core/built/admin/assets/{edit-profile-BvU2-lW5.js → edit-profile-CnuBNQhO.js} +1 -1
  40. package/core/built/admin/assets/{editor-D3fcjt_F.js → editor-CTO9FIUW.js} +1 -1
  41. package/core/built/admin/assets/{empty-indicator-2Pjmce3n.js → empty-indicator-BvyaMcmw.js} +1 -1
  42. package/core/built/admin/assets/{en-Bu-6PYn5.js → en-CjPXRj8j.js} +1 -1
  43. package/core/built/admin/assets/{feed-CygLK1Ad.js → feed-D2wk4cCS.js} +1 -1
  44. package/core/built/admin/assets/{filter-query-core-a0PNU2EO.js → filter-query-core-VEnwTCyO.js} +1 -1
  45. package/core/built/admin/assets/{filters-jiyRsLMH.js → filters-DtIsuqv5.js} +1 -1
  46. package/core/built/admin/assets/{gh-chart-CEhBBu3F.js → gh-chart-JxzKqaoO.js} +1 -1
  47. package/core/built/admin/assets/{ghost-0ab96884815339963364804ab266c99f.js → ghost-30c3dedbe1cca943b92efa7efd2710e4.js} +36 -21
  48. package/core/built/admin/assets/{growth-Fz3Oatml.js → growth-CPNrBpHK.js} +1 -1
  49. package/core/built/admin/assets/{hash-CeFrjo3C.js → hash-CJzbTA5k.js} +1 -1
  50. package/core/built/admin/assets/{inbox-CCirPaG2.js → inbox-CVVAkCmd.js} +1 -1
  51. package/core/built/admin/assets/{index-Dd2BJRZH.js → index-AkQJUr1z.js} +1 -1
  52. package/core/built/admin/assets/{index-CYPN5csJ.js → index-BLWOUf31.js} +1 -1
  53. package/core/built/admin/assets/{index-D7Ui3Fih.js → index-BRBRkRqa.js} +1 -1
  54. package/core/built/admin/assets/{index-CFEzD2_M.js → index-BkbhBpVC.js} +3 -3
  55. package/core/built/admin/assets/{index-BYwL7gFN.js → index-BxFFWYdP.js} +1 -1
  56. package/core/built/admin/assets/{index-D3LfHeBl.js → index-C5_ZKpC1.js} +1 -1
  57. package/core/built/admin/assets/{index-Bjw2qAph.js → index-Cdbufdfy.js} +1 -1
  58. package/core/built/admin/assets/{index-BTf6YUBb.js → index-Cq5vsvxE.js} +1 -1
  59. package/core/built/admin/assets/{index-DPbi4ie_.js → index-CuGoX8Ub.js} +1 -1
  60. package/core/built/admin/assets/{index-CsaU9dfl.js → index-CuH5raTz.js} +1 -1
  61. package/core/built/admin/assets/{index-Bf83suMc.js → index-D3A8RTi0.js} +1 -1
  62. package/core/built/admin/assets/{index-Dskrbhv3.js → index-DIyK69JM.js} +1 -1
  63. package/core/built/admin/assets/{index-GExKMpy_.js → index-DLFVpwt3.js} +1 -1
  64. package/core/built/admin/assets/{index-BOMdiHRG.js → index-DQZp_NsL.js} +1 -1
  65. package/core/built/admin/assets/{index-2qcjFCQs.js → index-DR74ulj2.js} +1 -1
  66. package/core/built/admin/assets/{index-WKMARia9.js → index-DYE2untj.js} +1 -1
  67. package/core/built/admin/assets/{index-DNZUJQ8v.js → index-DssW7xhk.js} +1 -1
  68. package/core/built/admin/assets/{index-Cq4mS7QK.js → index-DvyNqFct.js} +1 -1
  69. package/core/built/admin/assets/{index-C7xLyJVb.js → index-DxB7NHpG.js} +1 -1
  70. package/core/built/admin/assets/{index-Bw4DM4Pr.js → index-IDaHqjnu.js} +1 -1
  71. package/core/built/admin/assets/{index-ClOB5u8L.js → index-TtBMzSeP.js} +1 -1
  72. package/core/built/admin/assets/{index-takfwHSn.js → index-UMWVIyz7.js} +1 -1
  73. package/core/built/admin/assets/{koenig-lexical-BJM9wAwQ.js → koenig-lexical-DVAmevhl.js} +1 -1
  74. package/core/built/admin/assets/{kpi-card-BP-2yicn.js → kpi-card-D3CzvsrI.js} +1 -1
  75. package/core/built/admin/assets/{kpi-card-DOplXdDT.js → kpi-card-DV-nN7xT.js} +1 -1
  76. package/core/built/admin/assets/{kpi-tabs-Rq5jJW2Z.js → kpi-tabs-B3NkaTwb.js} +1 -1
  77. package/core/built/admin/assets/{kpis-yHgME_iy.js → kpis-CVwF08QL.js} +1 -1
  78. package/core/built/admin/assets/{label-fijjy1Mb.js → label-BiPpMny2.js} +1 -1
  79. package/core/built/admin/assets/{links-s3IeAkbo.js → links-BY0Uo6O5.js} +1 -1
  80. package/core/built/admin/assets/{list-page-CUcB5ebB.js → list-page-COHNMpOi.js} +1 -1
  81. package/core/built/admin/assets/{loader-circle-C7mWzo52.js → loader-circle-B1uEfpbZ.js} +1 -1
  82. package/core/built/admin/assets/{mail-9TFkAaAh.js → mail-ccQhEr7k.js} +1 -1
  83. package/core/built/admin/assets/{main-layout-XtviVkg1.js → main-layout-BYKdA6Z1.js} +1 -1
  84. package/core/built/admin/assets/{members-XkHao5Yf.js → members-DkpEnvG5.js} +1 -1
  85. package/core/built/admin/assets/minus-C68D81nx.js +1 -0
  86. package/core/built/admin/assets/{modals-B6R7oqvb.js → modals-X6RSWn5Y.js} +3 -3
  87. package/core/built/admin/assets/{moderation-B2Tixfce.js → moderation-BFrrwfvx.js} +1 -1
  88. package/core/built/admin/assets/{newsletter-CbESXhxf.js → newsletter-n7kc6cxR.js} +1 -1
  89. package/core/built/admin/assets/{newsletters-DOIL_cOY.js → newsletters-CSCa3QdE.js} +1 -1
  90. package/core/built/admin/assets/{note-mUikaB-p.js → note-CMZjeK8e.js} +1 -1
  91. package/core/built/admin/assets/{onboarding-route-Dqv2nP7b.js → onboarding-route-BaX0a-pu.js} +1 -1
  92. package/core/built/admin/assets/{overview-yZ-7KJdx.js → overview-CS9dmE_6.js} +1 -1
  93. package/core/built/admin/assets/{pagemenu-TxGvHwRO.js → pagemenu-O_y8Jm4v.js} +1 -1
  94. package/core/built/admin/assets/{pencil-CKTgzafp.js → pencil-BcymGPnE.js} +1 -1
  95. package/core/built/admin/assets/{pin-BU_u-xRX.js → pin-Bl3nSr7I.js} +1 -1
  96. package/core/built/admin/assets/{post-analytics-CWA8invj.js → post-analytics-DW-TKu-t.js} +1 -1
  97. package/core/built/admin/assets/{post-analytics-context-BWDhMRq_.js → post-analytics-context-D7PgEMo8.js} +1 -1
  98. package/core/built/admin/assets/{post-analytics-header-Bm0mcxjK.js → post-analytics-header-B8C0vA5Y.js} +1 -1
  99. package/core/built/admin/assets/{post-share-modal-D8BtRD2u.js → post-share-modal-D0OlASBQ.js} +1 -1
  100. package/core/built/admin/assets/{posts-u-CAKddc.js → posts-BZaw4-dc.js} +1 -1
  101. package/core/built/admin/assets/{power-DR9gpiQR.js → power-DWm6pts5.js} +1 -1
  102. package/core/built/admin/assets/{referrers-DV_Ihg9y.js → referrers-BsZ85Z0a.js} +1 -1
  103. package/core/built/admin/assets/{repeat-uXmOJ6y8.js → repeat-DQay9e22.js} +1 -1
  104. package/core/built/admin/assets/{reply-9ZyqaxI-.js → reply-CoNqmExw.js} +1 -1
  105. package/core/built/admin/assets/{rocket-DMOr1OCt.js → rocket-Dne6P_8f.js} +1 -1
  106. package/core/built/admin/assets/{select-CPSy44ld.js → select-BfWJkrKc.js} +1 -1
  107. package/core/built/admin/assets/{settings-krk0432u.js → settings-BoXzKMhL.js} +1 -1
  108. package/core/built/admin/assets/{settings-66Zv8QvL.js → settings-rRY210wx.js} +25 -25
  109. package/core/built/admin/assets/{share-modal-BRmGllZq.js → share-modal-CtdLQbnQ.js} +1 -1
  110. package/core/built/admin/assets/{sort-button-5fyeViQL.js → sort-button-7pVgpa0d.js} +1 -1
  111. package/core/built/admin/assets/{source-icon-DeeHyZRn.js → source-icon-Dtua85oN.js} +1 -1
  112. package/core/built/admin/assets/{sprout-956Q4On2.js → sprout-CpwUJAPT.js} +1 -1
  113. package/core/built/admin/assets/{square-BaCvbKJY.js → square-CDrQjv8R.js} +1 -1
  114. package/core/built/admin/assets/{stats-BVKNZJO6.js → stats-Yo9Gco0_.js} +1 -1
  115. package/core/built/admin/assets/{stats-view-gtyaqudG.js → stats-view-DubukX9V.js} +1 -1
  116. package/core/built/admin/assets/{step-1-09wdjzdX.js → step-1-CH8jWKi7.js} +1 -1
  117. package/core/built/admin/assets/{step-2-8iaQ0efq.js → step-2-CWy7Qi0Q.js} +1 -1
  118. package/core/built/admin/assets/{step-3-BuHAZbdD.js → step-3-CNiDFH17.js} +1 -1
  119. package/core/built/admin/assets/{table-DTofVyjA.js → table-qQi9EXB1.js} +1 -1
  120. package/core/built/admin/assets/{tabs-CL5eaCGL.js → tabs-M6kFEqPE.js} +1 -1
  121. package/core/built/admin/assets/{tags-DJrbEw5-.js → tags-74U6lgwY.js} +1 -1
  122. package/core/built/admin/assets/{tags-U3lciBmd.js → tags-DuMshkTz.js} +1 -1
  123. package/core/built/admin/assets/{textarea-DdDuNixZ.js → textarea-CGBp9nOo.js} +1 -1
  124. package/core/built/admin/assets/{tiers-DXKbghdk.js → tiers-D2DYHaeO.js} +1 -1
  125. package/core/built/admin/assets/{toggle-group-DaZKTYDS.js → toggle-group-GYp_w6Po.js} +1 -1
  126. package/core/built/admin/assets/{topic-filter-BzqiVOAU.js → topic-filter-N3CzJ01P.js} +1 -1
  127. package/core/built/admin/assets/{trash-CKK_p9G5.js → trash-CUqAK3SQ.js} +1 -1
  128. package/core/built/admin/assets/{underline-Bq0P-5Zy.js → underline-CwuJG-Ql.js} +1 -1
  129. package/core/built/admin/assets/{undo-2-CcBtw-tW.js → undo-2-D6ZRqONE.js} +1 -1
  130. package/core/built/admin/assets/{upload-BcylHEMw.js → upload-BLiT66bJ.js} +1 -1
  131. package/core/built/admin/assets/{use-growth-stats-Ci0gymWp.js → use-growth-stats-u18So4Gq.js} +1 -1
  132. package/core/built/admin/assets/{use-simple-pagination-ByaFwxfZ.js → use-simple-pagination-Dp2sTt2S.js} +1 -1
  133. package/core/built/admin/assets/{user-round-check-D0I7NO1g.js → user-round-check-BDomHaso.js} +1 -1
  134. package/core/built/admin/assets/{user-round-x-DeGVH29o.js → user-round-x-Cc0RL-V9.js} +1 -1
  135. package/core/built/admin/assets/{virtual-list-window-S0xZxQAf.js → virtual-list-window-BnjCoNIr.js} +1 -1
  136. package/core/built/admin/assets/{wallet-cards-B9TQg4x3.js → wallet-cards-CVZ99Nm3.js} +1 -1
  137. package/core/built/admin/assets/{web-BRN2mUpo.js → web-B_MLxGxZ.js} +1 -1
  138. package/core/built/admin/index.html +5 -5
  139. package/core/server/{services/custom-redirects/file-store.js → adapters/redirects/FileStore.js} +6 -5
  140. package/core/server/{services/custom-redirects/file-store.ts → adapters/redirects/FileStore.ts} +6 -4
  141. package/core/server/adapters/redirects/RedirectsStoreBase.d.ts +9 -0
  142. package/core/server/adapters/redirects/RedirectsStoreBase.js +8 -0
  143. package/core/server/{services/custom-redirects/gcs-store.js → adapters/redirects/S3RedirectsStore.js} +50 -18
  144. package/core/server/adapters/redirects/S3RedirectsStore.ts +163 -0
  145. package/core/server/adapters/scheduling/scheduling-base.js +41 -0
  146. package/core/server/adapters/scheduling/types.js +2 -0
  147. package/core/server/adapters/scheduling/types.ts +36 -0
  148. package/core/server/api/endpoints/authentication.js +26 -5
  149. package/core/server/api/endpoints/schedules.js +0 -30
  150. package/core/server/api/endpoints/utils/serializers/output/authentication.js +10 -0
  151. package/core/server/data/migrations/versions/6.41/2026-05-13-12-00-00-rename-reset-all-passwords-permission.js +21 -0
  152. package/core/server/data/schema/fixtures/fixtures.json +3 -3
  153. package/core/server/models/api-key.js +18 -0
  154. package/core/server/models/user.js +18 -0
  155. package/core/server/services/adapter-manager/config.js +6 -0
  156. package/core/server/services/adapter-manager/index.js +1 -0
  157. package/core/server/services/auth/index.js +4 -0
  158. package/core/server/services/auth/reset-authentication.js +50 -0
  159. package/core/server/services/auth/reset-authentication.ts +75 -0
  160. package/core/server/services/automations/index.js +21 -15
  161. package/core/server/services/custom-redirects/index.js +2 -4
  162. package/core/server/services/gifts/gift-bookshelf-repository.js +7 -0
  163. package/core/server/services/gifts/gift-bookshelf-repository.ts +10 -0
  164. package/core/server/services/gifts/gift-reminder-scheduler.js +94 -0
  165. package/core/server/services/gifts/gift-reminder-scheduler.ts +109 -0
  166. package/core/server/services/gifts/gift-repository.ts +1 -0
  167. package/core/server/services/gifts/gift-service-wrapper.js +10 -7
  168. package/core/server/services/gifts/gift-service.js +1 -32
  169. package/core/server/services/gifts/gift-service.ts +3 -59
  170. package/core/server/services/internal-keys/index.js +1 -3
  171. package/core/server/services/internal-keys/index.ts +11 -3
  172. package/core/server/services/post-scheduling/index.js +16 -28
  173. package/core/server/services/post-scheduling/index.ts +14 -0
  174. package/core/server/services/post-scheduling/post-scheduling.js +115 -0
  175. package/core/server/services/post-scheduling/post-scheduling.ts +138 -0
  176. package/core/server/services/users.js +29 -16
  177. package/core/server/web/api/endpoints/admin/middleware.js +8 -4
  178. package/core/server/web/api/endpoints/admin/routes.js +1 -1
  179. package/core/shared/config/defaults.json +5 -0
  180. package/core/shared/labs.js +2 -1
  181. package/package.json +1 -1
  182. package/core/built/admin/assets/minus-DPrXh11r.js +0 -1
  183. package/core/server/services/custom-redirects/gcs-store.ts +0 -117
  184. package/core/server/services/post-scheduling/post-scheduler-service.js +0 -126
@@ -1 +1 @@
1
- import{J as T,K as F,M as _,N as E,r as d,O as V,Q as W,b as H,j as e,L as R,R as $,T as b,U as j,V as p,P as J,W as v,A as K,S as n,B as c,h as O,Y as i}from"./index-CFEzD2_M.js";import{T as Q,a as Y,b as w,c as f}from"./tabs-CL5eaCGL.js";const G=()=>{const{data:N,isLoading:t}=T("index"),{data:g,isLoading:o}=F("index"),u=t?Array(5).fill({apId:"",name:"",handle:"",avatarUrl:""}):N?.pages.flatMap(s=>s.accounts)??[],x=o?Array(5).fill({apId:"",name:""}):g?.pages.flatMap(s=>s.domains)??[],U=_("index"),I=E("index"),[M,m]=d.useState(new Set),B=V("index"),D=W("index"),[S,h]=d.useState(new Set),[k,r]=d.useState(null),y=H(),A=s=>{m(l=>{const a=new Set([...l]);return a.add(s.apId),a}),I.mutate(s),i.success("User unblocked")},L=s=>{m(l=>{const a=new Set([...l]);return a.delete(s.apId),a}),U.mutate(s),i.success("User blocked")},C=s=>{h(l=>{const a=new Set([...l]);return a.add(s.url),a}),D.mutate({url:s.url}),i.success("Domain unblocked")},P=s=>{h(l=>{const a=new Set([...l]);return a.delete(s.url),a}),B.mutate({url:s.url}),i.success("Domain blocked")};return e.jsx(R,{children:e.jsxs("div",{className:"mx-auto max-w-[620px] py-[min(4vh,48px)]",children:[e.jsx("div",{className:"flex items-center justify-between gap-8",children:e.jsx($,{children:"Moderation"})}),e.jsx("div",{className:"mt-6",children:e.jsxs(Q,{defaultValue:"blocked_users",variant:"underline",children:[e.jsxs(Y,{children:[e.jsx(w,{value:"blocked_users",children:"Blocked users"}),e.jsx(w,{value:"blocked_domains",children:"Blocked domains"})]}),e.jsx(f,{className:"mt-2",value:"blocked_users",children:!t&&u.length===0?e.jsxs(b,{children:[e.jsx(j,{children:e.jsx(p,{})}),e.jsx("div",{className:"mt-2 flex max-w-[400px] flex-col items-center gap-1 text-center",children:e.jsx("p",{children:"When you block someone, they won't be able to follow you or interact with your content on the social web."})})]}):u.map((s,l)=>e.jsx(J,{actor:s,isCurrentUser:!0,children:e.jsx("div",{children:e.jsxs(v,{onClick:t?void 0:()=>O(s.handle,y),children:[e.jsx(K,{author:{icon:{url:s.avatarUrl},name:s.name,handle:s.handle}}),e.jsxs("div",{className:"flex min-w-0 flex-col",children:[e.jsx("span",{className:"block truncate font-semibold text-black dark:text-white",children:t?e.jsx(n,{className:"w-24"}):s.name}),e.jsx("span",{className:"block truncate text-sm text-gray-600",children:t?e.jsx(n,{className:"w-40"}):s.handle})]}),M.has(s.apId)?e.jsx(c,{className:"ml-auto min-w-[90px] text-red hover:bg-red/5! hover:text-red-400",variant:"outline",onClick:a=>{a.stopPropagation(),L(s)},children:"Block"}):t?e.jsx("div",{className:"ml-auto w-16",children:e.jsx(n,{})}):e.jsx(c,{className:"ml-auto min-w-[90px]",variant:"destructive",onClick:a=>{a.stopPropagation(),A(s)},onMouseEnter:()=>r(s.apId),onMouseLeave:()=>r(null),children:k===s.apId?"Unblock":"Blocked"})]})})},s.apId?s.apId:`loading-${l}`))}),e.jsx(f,{className:"mt-[11px]",value:"blocked_domains",children:!o&&x.length===0?e.jsxs(b,{children:[e.jsx(j,{children:e.jsx(p,{})}),e.jsx("div",{className:"mt-2 flex max-w-[400px] flex-col items-center gap-1 text-center",children:e.jsx("p",{children:"When you block a domain, all users from that domain won't be able to follow you or interact with your content."})})]}):x.map((s,l)=>e.jsxs(v,{children:[e.jsx("div",{className:"flex min-w-0 flex-col",children:e.jsx("span",{className:"block truncate font-semibold text-black dark:text-white",children:o?e.jsx(n,{className:"w-48"}):new URL(s.url).hostname})}),S.has(s.url)?e.jsx(c,{className:"ml-auto min-w-[90px] text-red hover:bg-red/5! hover:text-red-400",variant:"outline",onClick:()=>P(s),children:"Block"}):o?e.jsx("div",{className:"ml-auto w-16",children:e.jsx(n,{})}):e.jsx(c,{className:"ml-auto min-w-[90px]",variant:"destructive",onClick:()=>C(s),onMouseEnter:()=>r(s.url),onMouseLeave:()=>r(null),children:k===s.url?"Unblock":"Blocked"})]},s.url?s.url:`loading-${l}`))})]})})]})})};export{G as default};
1
+ import{J as T,K as F,M as _,N as E,r as d,O as V,Q as W,b as H,j as e,L as R,R as $,T as b,U as j,V as p,P as J,W as v,A as K,S as n,B as c,h as O,Y as i}from"./index-BkbhBpVC.js";import{T as Q,a as Y,b as w,c as f}from"./tabs-M6kFEqPE.js";const G=()=>{const{data:N,isLoading:t}=T("index"),{data:g,isLoading:o}=F("index"),u=t?Array(5).fill({apId:"",name:"",handle:"",avatarUrl:""}):N?.pages.flatMap(s=>s.accounts)??[],x=o?Array(5).fill({apId:"",name:""}):g?.pages.flatMap(s=>s.domains)??[],U=_("index"),I=E("index"),[M,m]=d.useState(new Set),B=V("index"),D=W("index"),[S,h]=d.useState(new Set),[k,r]=d.useState(null),y=H(),A=s=>{m(l=>{const a=new Set([...l]);return a.add(s.apId),a}),I.mutate(s),i.success("User unblocked")},L=s=>{m(l=>{const a=new Set([...l]);return a.delete(s.apId),a}),U.mutate(s),i.success("User blocked")},C=s=>{h(l=>{const a=new Set([...l]);return a.add(s.url),a}),D.mutate({url:s.url}),i.success("Domain unblocked")},P=s=>{h(l=>{const a=new Set([...l]);return a.delete(s.url),a}),B.mutate({url:s.url}),i.success("Domain blocked")};return e.jsx(R,{children:e.jsxs("div",{className:"mx-auto max-w-[620px] py-[min(4vh,48px)]",children:[e.jsx("div",{className:"flex items-center justify-between gap-8",children:e.jsx($,{children:"Moderation"})}),e.jsx("div",{className:"mt-6",children:e.jsxs(Q,{defaultValue:"blocked_users",variant:"underline",children:[e.jsxs(Y,{children:[e.jsx(w,{value:"blocked_users",children:"Blocked users"}),e.jsx(w,{value:"blocked_domains",children:"Blocked domains"})]}),e.jsx(f,{className:"mt-2",value:"blocked_users",children:!t&&u.length===0?e.jsxs(b,{children:[e.jsx(j,{children:e.jsx(p,{})}),e.jsx("div",{className:"mt-2 flex max-w-[400px] flex-col items-center gap-1 text-center",children:e.jsx("p",{children:"When you block someone, they won't be able to follow you or interact with your content on the social web."})})]}):u.map((s,l)=>e.jsx(J,{actor:s,isCurrentUser:!0,children:e.jsx("div",{children:e.jsxs(v,{onClick:t?void 0:()=>O(s.handle,y),children:[e.jsx(K,{author:{icon:{url:s.avatarUrl},name:s.name,handle:s.handle}}),e.jsxs("div",{className:"flex min-w-0 flex-col",children:[e.jsx("span",{className:"block truncate font-semibold text-black dark:text-white",children:t?e.jsx(n,{className:"w-24"}):s.name}),e.jsx("span",{className:"block truncate text-sm text-gray-600",children:t?e.jsx(n,{className:"w-40"}):s.handle})]}),M.has(s.apId)?e.jsx(c,{className:"ml-auto min-w-[90px] text-red hover:bg-red/5! hover:text-red-400",variant:"outline",onClick:a=>{a.stopPropagation(),L(s)},children:"Block"}):t?e.jsx("div",{className:"ml-auto w-16",children:e.jsx(n,{})}):e.jsx(c,{className:"ml-auto min-w-[90px]",variant:"destructive",onClick:a=>{a.stopPropagation(),A(s)},onMouseEnter:()=>r(s.apId),onMouseLeave:()=>r(null),children:k===s.apId?"Unblock":"Blocked"})]})})},s.apId?s.apId:`loading-${l}`))}),e.jsx(f,{className:"mt-[11px]",value:"blocked_domains",children:!o&&x.length===0?e.jsxs(b,{children:[e.jsx(j,{children:e.jsx(p,{})}),e.jsx("div",{className:"mt-2 flex max-w-[400px] flex-col items-center gap-1 text-center",children:e.jsx("p",{children:"When you block a domain, all users from that domain won't be able to follow you or interact with your content."})})]}):x.map((s,l)=>e.jsxs(v,{children:[e.jsx("div",{className:"flex min-w-0 flex-col",children:e.jsx("span",{className:"block truncate font-semibold text-black dark:text-white",children:o?e.jsx(n,{className:"w-48"}):new URL(s.url).hostname})}),S.has(s.url)?e.jsx(c,{className:"ml-auto min-w-[90px] text-red hover:bg-red/5! hover:text-red-400",variant:"outline",onClick:()=>P(s),children:"Block"}):o?e.jsx("div",{className:"ml-auto w-16",children:e.jsx(n,{})}):e.jsx(c,{className:"ml-auto min-w-[90px]",variant:"destructive",onClick:()=>C(s),onMouseEnter:()=>r(s.url),onMouseLeave:()=>r(null),children:k===s.url?"Unblock":"Blocked"})]},s.url?s.url:`loading-${l}`))})]})})]})})};export{G as default};
@@ -1 +1 @@
1
- import{ah as Re,r as i,u as Te,aZ as ne,j as e,an as N,b0 as re,a$ as K,b_ as le,bR as Fe,bT as Se,cA as ze,cB as Me,cC as ee,cD as $e,B as q,b2 as Ae,a_ as Ee,ao as A,aJ as De,C as Ie}from"./index-CFEzD2_M.js";import{C as Y,a as J,b as Q,g as Z,c as F,h as ce,T as Be,P as Ve}from"./pagemenu-TxGvHwRO.js";import{u as oe,S as de,a as me,b as pe,c as ue}from"./use-simple-pagination-ByaFwxfZ.js";import{T as Ue,a as Oe,b as se}from"./tabs-CL5eaCGL.js";import{T as We,w as Ge,x as He}from"./chart-X5cLIH1X.js";import{K as B,d as V,a as U,b as O,c as W}from"./kpi-card-BP-2yicn.js";import{P as Ke,a as qe}from"./post-analytics-header-Bm0mcxjK.js";import{D as Ye,a as Je,b as Qe,c as Ze,d as Xe,e as es,f as ss,g as ts}from"./data-list-DUaY9nlT.js";import{a as as,u as is,p as ns,g as G,N as H}from"./links-s3IeAkbo.js";import{u as rs}from"./post-analytics-context-BWDhMRq_.js";import{b as ls}from"./member-route-ZLy3opLv.js";import{h as cs}from"./post-helpers-DR3PcyZg.js";import{f as os,g as ds}from"./stats-BVKNZJO6.js";import{g as te}from"./posts-u-CAKddc.js";import"./arrow-right-BixoEua4.js";import"./_baseAssignValue-BDsvYKNK.js";import"./index-WKMARia9.js";import"./value-BGBiTkF3.js";import"./post-share-modal-D8BtRD2u.js";import"./share-modal-BRmGllZq.js";import"./copy-D7jqplrv.js";import"./get-site-timezone-BDBAcjmq.js";import"./trash-CKK_p9G5.js";import"./mail-9TFkAaAh.js";import"./sprout-956Q4On2.js";import"./PolarAngleAxis-D7m1zwVk.js";const ms="FeedbackResponseType",ps=Re({dataType:ms,path:t=>`/feedback/${t}/`}),us=(t,s)=>{const{data:c,isLoading:o,error:p}=ps(t,{searchParams:{limit:"50",...s!==void 0?{score:s.toString()}:{}}});return{feedback:i.useMemo(()=>c?.feedback?c.feedback:[],[c]),isLoading:o,error:p}},xs=({feedbackStats:t})=>{const{postId:s}=Te(),c=ne(),[o,p]=i.useState("positive"),n=9,f=o==="positive"?1:0,{feedback:S,isLoading:_}=us(s||"",f),{totalPages:k,paginatedData:a,nextPage:v,previousPage:R,hasNextPage:y,hasPreviousPage:u}=oe({data:S,itemsPerPage:n}),g=_;return e.jsxs(Y,{children:[e.jsxs(J,{className:"pb-5",children:[e.jsx(Q,{children:"Feedback"}),e.jsx(Z,{children:"What did your readers think?"})]}),t.totalFeedback>0?e.jsxs(F,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx(Ue,{className:"pb-3",defaultValue:"positive",value:o,variant:"button",onValueChange:r=>p(r),children:e.jsxs(Oe,{className:"gap-1",children:[e.jsx(se,{className:"h-7",value:"positive",children:e.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[e.jsx(We,{size:14,strokeWidth:1.25}),e.jsx("span",{className:"hidden font-medium sm:visible! sm:inline!",children:"More like this"}),e.jsx("span",{className:"font-semibold tracking-tight",children:N(t.positiveFeedback/t.totalFeedback)})]})}),e.jsx(se,{className:"h-7",value:"negative",children:e.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[e.jsx(Ge,{size:14,strokeWidth:1.25}),e.jsx("span",{className:"hidden font-medium sm:visible! sm:inline!",children:"Less like this"}),e.jsx("span",{className:"font-semibold tracking-tight",children:N(t.negativeFeedback/t.totalFeedback)})]})})]})}),e.jsx(re,{className:"mr-2 mb-3 lg:hidden xl:visible! xl:block!",children:"Date"})]}),e.jsx(K,{}),g?e.jsx(le,{className:"mt-3",lines:3}):a&&a.length>0?e.jsx("div",{className:"flex w-full flex-col py-3",children:a.map(r=>e.jsxs("div",{className:"flex h-10 w-full items-center justify-between gap-3 rounded-sm border-none px-2 text-sm hover:cursor-pointer hover:bg-accent",onClick:()=>{c(`/members/${r.member.id}`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-2 font-medium",children:[e.jsxs(Fe,{className:"size-7",children:[r.member?.avatar_image&&e.jsx("img",{className:"absolute aspect-square size-full",src:r.member?.avatar_image}),e.jsx(Se,{className:"text-white",style:{backgroundColor:`${Me(ee(r.member),"75","55")}`},children:ze(r.member)})]}),ee(r.member)]}),e.jsx("div",{className:"whitespace-nowrap text-muted-foreground",children:$e(r.created_at)})]},r.id))}):e.jsx("div",{className:"flex h-full items-center justify-center py-8 text-center text-sm text-muted-foreground",children:e.jsxs("div",{children:["No ",o==="positive"?"positive":"negative"," feedback yet"]})})]}):e.jsxs(F,{className:"flex grow flex-col items-center justify-center text-center text-sm text-muted-foreground",children:[e.jsx("div",{children:"No members have given feedback yet"}),e.jsx("div",{children:"When someone does, you'll see their response here."})]}),t.totalFeedback>0&&e.jsx(ce,{className:"grow-0",children:e.jsxs("div",{className:"flex w-full items-center justify-between gap-3",children:[e.jsxs(q,{variant:"outline",onClick:()=>{const r=`(feedback.post_id:'${s}'+feedback.score:1)`,T=`(feedback.post_id:'${s}'+feedback.score:0)`,d=`${encodeURIComponent(r)}&post=${s}`,L=`${encodeURIComponent(T)}&post=${s}`;c(`/members?filter=${o==="positive"?d:L}`,{crossApp:!0})},children:["View all",e.jsx(Be,{})]}),k>1&&e.jsx(de,{className:"pb-0",children:e.jsxs(me,{children:[e.jsx(pe,{disabled:!u,onClick:R}),e.jsx(ue,{disabled:!y,onClick:v})]})})]})})]})},gs=()=>{const{mutateAsync:t,isLoading:s}=as();return{editLinks:t,isEditLinksLoading:s}},hs=t=>{const{data:s,isLoading:c}=te(t),{data:o,isLoading:p}=te(t,{searchParams:{include:"count.positive_feedback,count.negative_feedback"}}),n=i.useMemo(()=>s?.posts[0],[s]),f=i.useMemo(()=>o?.posts[0],[o]),S=i.useMemo(()=>n?{sent:n.email?.email_count||0,opened:n.email?.opened_count||0,clicked:n.count?.clicks||0,openedRate:n.email?.opened_count?n.email.opened_count/n.email.email_count:0,clickedRate:n.count?.clicks&&n.email?.email_count?n.count.clicks/n.email.email_count:0}:{sent:0,opened:0,clicked:0,openedRate:0,clickedRate:0},[n]),_=i.useMemo(()=>{if(!f?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};const x=f.count.positive_feedback||0,j=f.count.negative_feedback||0,w=x+j;return{positiveFeedback:x,negativeFeedback:j,totalFeedback:w}},[f]),k=i.useMemo(()=>n?.newsletter?.id,[n]),{data:a,isLoading:v}=os({searchParams:k?{newsletter_id:k}:{},enabled:!!k}),R=i.useMemo(()=>a?.stats?a.stats.map(x=>x.post_id):[],[a]),{data:y,isLoading:u}=ds({searchParams:k&&R.length>0?{newsletter_id:k,post_ids:R.join(",")}:{},enabled:!!k&&R.length>0}),g=i.useMemo(()=>{if(!a?.stats)return;const x=a.stats,j=y?.stats||[],w=new Map;j.forEach(b=>{w.set(b.post_id,b)});const C=x.map(b=>{const $=w.get(b.post_id);return{...b,total_clicks:$?.total_clicks||0,click_rate:$?.click_rate||0}});return{...a,stats:C}},[a,y]),r=v||u,{data:T,isLoading:d,refetch:L}=is({searchParams:{filter:`post_id:'${t}'`}}),h=i.useMemo(()=>{if(!g||!g.stats)return{openRate:0,clickRate:0};const x=g.stats;if(x.length===0)return{openRate:0,clickRate:0};const j=x.reduce((C,b)=>C+(b.open_rate||0),0),w=x.reduce((C,b)=>C+(b.click_rate||0),0);return{openRate:Number((j/x.length).toFixed(2)),clickRate:Number((w/x.length).toFixed(2))}},[g]),E=i.useMemo(()=>ns(T),[T]),D=i.useMemo(()=>({openedRate:h.openRate,clickedRate:h.clickRate}),[h]);return{post:n,stats:S,feedbackStats:_,averageStats:D,topLinks:E,refetchTopLinks:L,isLoading:c||p||r||d}},bs=({breakpoints:t={sm:1080,md:1280,lg:1360}}={})=>{const[s,c]=i.useState("md");return i.useEffect(()=>{const o=()=>{const p=window.innerWidth;p<t.sm?c("sm"):p<t.md?c("md"):c("lg")};return o(),window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[t]),{chartSize:s,isSmall:s==="sm",isMedium:s==="md",isLarge:s==="lg"}},ae=()=>e.jsx("div",{className:"absolute top-1/2 -right-4 z-10 hidden size-8 -translate-y-1/2 items-center justify-center rounded-full border bg-background text-muted-foreground md:visible! md:flex!",children:e.jsx(Ie,{className:"ml-0.5",size:16,strokeWidth:1.5})}),ie=({dataColor:t,value:s,avgValue:c})=>e.jsxs("div",{className:"absolute top-6 left-1/2 z-50 flex w-[200px] -translate-x-1/2 flex-col items-stretch gap-1.5 rounded-md bg-background px-4 py-2 text-sm opacity-0 shadow-md transition-all group-hover/block:top-3 group-hover/block:opacity-100",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx("div",{className:"size-2 rounded-full bg-chart-blue opacity-50",style:{backgroundColor:t}}),"This newsletter"]}),e.jsx("div",{className:"text-right font-mono",children:s})]}),e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx("div",{className:"size-2 rounded-full bg-chart-gray opacity-80"}),"Average"]}),e.jsx("div",{className:"text-right font-mono",children:c})]})]}),Ws=()=>{const t=ne(),[s,c]=i.useState(null),[o,p]=i.useState(""),n=i.useRef(null),f=i.useRef(null),S=10,{chartSize:_}=bs(),{appSettings:k}=Ae(),{emailTrackClicks:a,emailTrackOpens:v}=k?.analytics||{},{post:R,isPostLoading:y,postId:u}=rs(),g=l=>t(ls({filter:l}),{crossApp:!0}),r=R,T=cs(r);i.useEffect(()=>{!y&&!T&&t(`/posts/analytics/${u}`)},[t,u,y,T]);const{stats:d,averageStats:L,topLinks:h,isLoading:E,refetchTopLinks:D}=hs(u),{editLinks:x}=gs(),j=i.useMemo(()=>{if(!r?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};const l=r.count.positive_feedback||0,m=r.count.negative_feedback||0,P=l+m;return{positiveFeedback:l,negativeFeedback:m,totalFeedback:P}},[r]),w=i.useMemo(()=>r?.newsletter?.feedback_enabled===!0,[r]),C=i.useMemo(()=>j.totalFeedback>0?!0:w,[j.totalFeedback,w]),b=l=>{const m=G(h,l);m&&(c(l),p(m.link.to))},$=()=>{if(!s)return;const l=G(h,s);if(!l)return;const m=o.trim();if(m===""||m===l.link.to){c(null),p("");return}x({originalUrl:l.link.originalTo,editedUrl:o,postId:u},{onSuccess:()=>{c(null),p(""),D()}})},{totalPages:xe,paginatedData:ge,nextPage:he,previousPage:be,hasNextPage:fe,hasPreviousPage:ke}=oe({data:h,itemsPerPage:S});i.useEffect(()=>{if(s&&n.current){n.current.focus();const l=G(h,s),m=P=>{f.current&&!f.current.contains(P.target)&&o===l?.link.to&&(c(null),p(""))};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m)}}},[s,o,h]);const I=E||y,ve=[{datatype:"Sent",value:1,fill:"url(#gradientPurple)",color:"var(--chart-purple)"}],je={percentage:{label:"O"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}},Ne=[{datatype:"Average",value:L.openedRate,fill:"url(#gradientGray)",color:"var(--chart-gray)"},{datatype:"This newsletter",value:d.openedRate,fill:"url(#gradientBlue)",color:"var(--chart-blue)"}],we={percentage:{label:"Opened"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}},Ce=[{datatype:"Average",value:L.clickedRate,fill:"url(#gradientGray)",color:"var(--chart-gray)"},{datatype:"This newsletter",value:d.clickedRate,fill:"url(#gradientTeal)",color:"var(--chart-teal)"}],ye={percentage:{label:"Clicked"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}};let z="grid-cols-3",M="aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-[10/14] md:max-w-none lg:aspect-square";return(!a||!v)&&(z="grid-cols-2",M="aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-square md:max-w-none lg:aspect-[15/10]"),!a&&!v&&(z="grid-cols-1",M="aspect-square w-full sm:aspect-[16/10] md:max-w-[320px] md:max-h-[320px] lg:aspect-[12/10]"),e.jsxs(e.Fragment,{children:[e.jsx(Ke,{currentTab:"Newsletter"}),e.jsx(qe,{children:e.jsxs("div",{className:`grid grid-cols-1 gap-6 ${C&&a&&"lg:grid-cols-2"}`,children:[e.jsxs(Y,{className:C&&a?"lg:col-span-2":"",children:[e.jsxs(J,{className:"hidden",children:[e.jsx(Q,{children:"Newsletters"}),e.jsx(Z,{children:"How did this post perform"})]}),I?e.jsx(F,{className:"h-[25vw] p-6",children:e.jsx(Ee,{})}):e.jsxs(F,{className:"p-0",children:[e.jsxs("div",{className:`grid ${z} items-stretch border-b`,children:[e.jsxs(B,{className:"group relative isolate grow p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`emails.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`emails.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-purple opacity-50"}),"Sent"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:A(d.sent)})})]}),v&&e.jsxs(B,{className:"p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`opened_emails.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`opened_emails.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-blue opacity-50"}),"Opened"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:A(d.opened)})})]}),a&&e.jsxs(B,{className:"group relative isolate grow p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`clicked_links.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`clicked_links.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-teal opacity-50"}),"Clicked"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:A(d.clicked)})})]})]}),e.jsxs("div",{className:`$ mx-auto grid grid-cols-1 items-center justify-center gap-4 transition-all md:gap-0 ${z==="grid-cols-2"&&"md:grid-cols-2"} ${z==="grid-cols-3"&&"md:grid-cols-3"}`,children:[e.jsxs("div",{className:`relative border-r-0 px-6 ${(v||a)&&"md:border-r"}`,children:[e.jsx(H,{className:M,config:je,data:ve,percentageLabel:"Sent",percentageValue:N(1),size:_,tooltip:!1}),(v||a)&&e.jsx(ae,{})]}),v&&e.jsxs("div",{className:`group/block relative border-r-0 px-6 transition-all hover:bg-muted/25 ${a&&"md:border-r"}`,children:[e.jsx(ie,{avgValue:N(L.openedRate),dataColor:"var(--chart-blue)",value:N(d.openedRate)}),e.jsx(H,{className:M,config:we,data:Ne,percentageLabel:"Open rate",percentageValue:N(d.openedRate),size:_,tooltip:!1}),a&&e.jsx(ae,{})]}),a&&e.jsxs("div",{className:"group/block relative px-6 transition-all hover:bg-muted/25",children:[e.jsx(ie,{avgValue:N(L.clickedRate),dataColor:"var(--chart-teal)",value:N(d.clickedRate)}),e.jsx(H,{className:M,config:ye,data:Ce,percentageLabel:"Click rate",percentageValue:N(d.clickedRate),size:_,tooltip:!1})]})]})]})]}),C&&e.jsx(xs,{feedbackStats:j}),a&&e.jsxs(Y,{className:"group/datalist overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-6",children:[e.jsxs(J,{className:"p-0",children:[e.jsx(Q,{children:"Newsletter clicks"}),e.jsx(Z,{children:"Which links resonated with your readers"})]}),e.jsx(re,{className:"mr-2",children:"Members"})]}),I?e.jsxs(F,{className:"p-6 pt-0",children:[e.jsx(K,{}),e.jsx(le,{className:"mt-6"})]}):e.jsxs(F,{className:"pb-0",children:[e.jsx(K,{}),h.length>0?e.jsx(Ye,{className:"",children:e.jsx(Je,{children:ge?.map(l=>{const m=d.clicked>0?l.count/d.clicked:0,P=l.link.link_id,X=l.link.title,Le=l.link.to,Pe=l.link.edited;return e.jsxs(Qe,{children:[s!==P&&e.jsx(Ze,{style:{width:`${m?Math.round(m*100):0}%`}}),e.jsx(Xe,{className:"w-full",children:s===P?e.jsxs("div",{ref:f,className:"flex w-full items-center gap-2",children:[e.jsx(De,{ref:n,className:"z-50 h-7 w-full border-border bg-background text-sm",value:o,onChange:_e=>p(_e.target.value)}),e.jsx(q,{size:"sm",onClick:$,children:"Update"})]}):e.jsxs(e.Fragment,{children:[e.jsx(q,{className:"mr-2 shrink-0 bg-background",size:"sm",variant:"outline",onClick:()=>b(P),children:e.jsx(Ve,{})}),e.jsx("a",{className:"block truncate font-medium hover:underline",href:Le,rel:"noreferrer",target:"_blank",title:X,children:X}),Pe&&e.jsx("span",{className:"ml-1 text-gray-500",children:"(edited)"})]})}),e.jsxs(es,{children:[e.jsx(ss,{children:A(l.count||0)}),e.jsx(ts,{children:N(m)})]})]},P)})})}):e.jsx("div",{className:"py-20 text-center text-sm text-gray-700",children:"You have no links in your post."})]}),!I&&h.length>1&&e.jsx(ce,{children:e.jsxs("div",{className:"flex w-full items-start justify-between gap-3",children:[e.jsxs("div",{className:"mt-2 flex items-start gap-2 pl-4 text-sm text-green",children:[e.jsx(He,{size:20,strokeWidth:1.5}),"Sent a broken link? You can update it!"]}),xe>1&&e.jsx(de,{className:"pb-0",children:e.jsxs(me,{children:[e.jsx(pe,{disabled:!ke,onClick:be}),e.jsx(ue,{disabled:!fe,onClick:he})]})})]})})]})]})})]})};export{Ws as default};
1
+ import{ah as Re,r as i,u as Te,aZ as ne,j as e,an as N,b0 as re,a$ as K,b_ as le,bR as Fe,bT as Se,cA as ze,cB as Me,cC as ee,cD as $e,B as q,b2 as Ae,a_ as Ee,ao as A,aJ as De,C as Ie}from"./index-BkbhBpVC.js";import{C as Y,a as J,b as Q,g as Z,c as F,h as ce,T as Be,P as Ve}from"./pagemenu-O_y8Jm4v.js";import{u as oe,S as de,a as me,b as pe,c as ue}from"./use-simple-pagination-Dp2sTt2S.js";import{T as Ue,a as Oe,b as se}from"./tabs-M6kFEqPE.js";import{T as We,w as Ge,x as He}from"./chart-CUKSNmKY.js";import{K as B,d as V,a as U,b as O,c as W}from"./kpi-card-D3CzvsrI.js";import{P as Ke,a as qe}from"./post-analytics-header-B8C0vA5Y.js";import{D as Ye,a as Je,b as Qe,c as Ze,d as Xe,e as es,f as ss,g as ts}from"./data-list-BF4GeUmt.js";import{a as as,u as is,p as ns,g as G,N as H}from"./links-BY0Uo6O5.js";import{u as rs}from"./post-analytics-context-D7PgEMo8.js";import{b as ls}from"./member-route-ZLy3opLv.js";import{h as cs}from"./post-helpers-DR3PcyZg.js";import{f as os,g as ds}from"./stats-Yo9Gco0_.js";import{g as te}from"./posts-BZaw4-dc.js";import"./arrow-right-Bk43nMGd.js";import"./_baseAssignValue-hdDG700N.js";import"./index-DYE2untj.js";import"./value-BGBiTkF3.js";import"./post-share-modal-D0OlASBQ.js";import"./share-modal-CtdLQbnQ.js";import"./copy-DVtQi_VJ.js";import"./get-site-timezone-BDBAcjmq.js";import"./trash-CUqAK3SQ.js";import"./mail-ccQhEr7k.js";import"./sprout-CpwUJAPT.js";import"./PolarAngleAxis-Bh28wbPV.js";const ms="FeedbackResponseType",ps=Re({dataType:ms,path:t=>`/feedback/${t}/`}),us=(t,s)=>{const{data:c,isLoading:o,error:p}=ps(t,{searchParams:{limit:"50",...s!==void 0?{score:s.toString()}:{}}});return{feedback:i.useMemo(()=>c?.feedback?c.feedback:[],[c]),isLoading:o,error:p}},xs=({feedbackStats:t})=>{const{postId:s}=Te(),c=ne(),[o,p]=i.useState("positive"),n=9,f=o==="positive"?1:0,{feedback:S,isLoading:_}=us(s||"",f),{totalPages:k,paginatedData:a,nextPage:v,previousPage:R,hasNextPage:y,hasPreviousPage:u}=oe({data:S,itemsPerPage:n}),g=_;return e.jsxs(Y,{children:[e.jsxs(J,{className:"pb-5",children:[e.jsx(Q,{children:"Feedback"}),e.jsx(Z,{children:"What did your readers think?"})]}),t.totalFeedback>0?e.jsxs(F,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx(Ue,{className:"pb-3",defaultValue:"positive",value:o,variant:"button",onValueChange:r=>p(r),children:e.jsxs(Oe,{className:"gap-1",children:[e.jsx(se,{className:"h-7",value:"positive",children:e.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[e.jsx(We,{size:14,strokeWidth:1.25}),e.jsx("span",{className:"hidden font-medium sm:visible! sm:inline!",children:"More like this"}),e.jsx("span",{className:"font-semibold tracking-tight",children:N(t.positiveFeedback/t.totalFeedback)})]})}),e.jsx(se,{className:"h-7",value:"negative",children:e.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[e.jsx(Ge,{size:14,strokeWidth:1.25}),e.jsx("span",{className:"hidden font-medium sm:visible! sm:inline!",children:"Less like this"}),e.jsx("span",{className:"font-semibold tracking-tight",children:N(t.negativeFeedback/t.totalFeedback)})]})})]})}),e.jsx(re,{className:"mr-2 mb-3 lg:hidden xl:visible! xl:block!",children:"Date"})]}),e.jsx(K,{}),g?e.jsx(le,{className:"mt-3",lines:3}):a&&a.length>0?e.jsx("div",{className:"flex w-full flex-col py-3",children:a.map(r=>e.jsxs("div",{className:"flex h-10 w-full items-center justify-between gap-3 rounded-sm border-none px-2 text-sm hover:cursor-pointer hover:bg-accent",onClick:()=>{c(`/members/${r.member.id}`,{crossApp:!0})},children:[e.jsxs("div",{className:"flex items-center gap-2 font-medium",children:[e.jsxs(Fe,{className:"size-7",children:[r.member?.avatar_image&&e.jsx("img",{className:"absolute aspect-square size-full",src:r.member?.avatar_image}),e.jsx(Se,{className:"text-white",style:{backgroundColor:`${Me(ee(r.member),"75","55")}`},children:ze(r.member)})]}),ee(r.member)]}),e.jsx("div",{className:"whitespace-nowrap text-muted-foreground",children:$e(r.created_at)})]},r.id))}):e.jsx("div",{className:"flex h-full items-center justify-center py-8 text-center text-sm text-muted-foreground",children:e.jsxs("div",{children:["No ",o==="positive"?"positive":"negative"," feedback yet"]})})]}):e.jsxs(F,{className:"flex grow flex-col items-center justify-center text-center text-sm text-muted-foreground",children:[e.jsx("div",{children:"No members have given feedback yet"}),e.jsx("div",{children:"When someone does, you'll see their response here."})]}),t.totalFeedback>0&&e.jsx(ce,{className:"grow-0",children:e.jsxs("div",{className:"flex w-full items-center justify-between gap-3",children:[e.jsxs(q,{variant:"outline",onClick:()=>{const r=`(feedback.post_id:'${s}'+feedback.score:1)`,T=`(feedback.post_id:'${s}'+feedback.score:0)`,d=`${encodeURIComponent(r)}&post=${s}`,L=`${encodeURIComponent(T)}&post=${s}`;c(`/members?filter=${o==="positive"?d:L}`,{crossApp:!0})},children:["View all",e.jsx(Be,{})]}),k>1&&e.jsx(de,{className:"pb-0",children:e.jsxs(me,{children:[e.jsx(pe,{disabled:!u,onClick:R}),e.jsx(ue,{disabled:!y,onClick:v})]})})]})})]})},gs=()=>{const{mutateAsync:t,isLoading:s}=as();return{editLinks:t,isEditLinksLoading:s}},hs=t=>{const{data:s,isLoading:c}=te(t),{data:o,isLoading:p}=te(t,{searchParams:{include:"count.positive_feedback,count.negative_feedback"}}),n=i.useMemo(()=>s?.posts[0],[s]),f=i.useMemo(()=>o?.posts[0],[o]),S=i.useMemo(()=>n?{sent:n.email?.email_count||0,opened:n.email?.opened_count||0,clicked:n.count?.clicks||0,openedRate:n.email?.opened_count?n.email.opened_count/n.email.email_count:0,clickedRate:n.count?.clicks&&n.email?.email_count?n.count.clicks/n.email.email_count:0}:{sent:0,opened:0,clicked:0,openedRate:0,clickedRate:0},[n]),_=i.useMemo(()=>{if(!f?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};const x=f.count.positive_feedback||0,j=f.count.negative_feedback||0,w=x+j;return{positiveFeedback:x,negativeFeedback:j,totalFeedback:w}},[f]),k=i.useMemo(()=>n?.newsletter?.id,[n]),{data:a,isLoading:v}=os({searchParams:k?{newsletter_id:k}:{},enabled:!!k}),R=i.useMemo(()=>a?.stats?a.stats.map(x=>x.post_id):[],[a]),{data:y,isLoading:u}=ds({searchParams:k&&R.length>0?{newsletter_id:k,post_ids:R.join(",")}:{},enabled:!!k&&R.length>0}),g=i.useMemo(()=>{if(!a?.stats)return;const x=a.stats,j=y?.stats||[],w=new Map;j.forEach(b=>{w.set(b.post_id,b)});const C=x.map(b=>{const $=w.get(b.post_id);return{...b,total_clicks:$?.total_clicks||0,click_rate:$?.click_rate||0}});return{...a,stats:C}},[a,y]),r=v||u,{data:T,isLoading:d,refetch:L}=is({searchParams:{filter:`post_id:'${t}'`}}),h=i.useMemo(()=>{if(!g||!g.stats)return{openRate:0,clickRate:0};const x=g.stats;if(x.length===0)return{openRate:0,clickRate:0};const j=x.reduce((C,b)=>C+(b.open_rate||0),0),w=x.reduce((C,b)=>C+(b.click_rate||0),0);return{openRate:Number((j/x.length).toFixed(2)),clickRate:Number((w/x.length).toFixed(2))}},[g]),E=i.useMemo(()=>ns(T),[T]),D=i.useMemo(()=>({openedRate:h.openRate,clickedRate:h.clickRate}),[h]);return{post:n,stats:S,feedbackStats:_,averageStats:D,topLinks:E,refetchTopLinks:L,isLoading:c||p||r||d}},bs=({breakpoints:t={sm:1080,md:1280,lg:1360}}={})=>{const[s,c]=i.useState("md");return i.useEffect(()=>{const o=()=>{const p=window.innerWidth;p<t.sm?c("sm"):p<t.md?c("md"):c("lg")};return o(),window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[t]),{chartSize:s,isSmall:s==="sm",isMedium:s==="md",isLarge:s==="lg"}},ae=()=>e.jsx("div",{className:"absolute top-1/2 -right-4 z-10 hidden size-8 -translate-y-1/2 items-center justify-center rounded-full border bg-background text-muted-foreground md:visible! md:flex!",children:e.jsx(Ie,{className:"ml-0.5",size:16,strokeWidth:1.5})}),ie=({dataColor:t,value:s,avgValue:c})=>e.jsxs("div",{className:"absolute top-6 left-1/2 z-50 flex w-[200px] -translate-x-1/2 flex-col items-stretch gap-1.5 rounded-md bg-background px-4 py-2 text-sm opacity-0 shadow-md transition-all group-hover/block:top-3 group-hover/block:opacity-100",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx("div",{className:"size-2 rounded-full bg-chart-blue opacity-50",style:{backgroundColor:t}}),"This newsletter"]}),e.jsx("div",{className:"text-right font-mono",children:s})]}),e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx("div",{className:"size-2 rounded-full bg-chart-gray opacity-80"}),"Average"]}),e.jsx("div",{className:"text-right font-mono",children:c})]})]}),Ws=()=>{const t=ne(),[s,c]=i.useState(null),[o,p]=i.useState(""),n=i.useRef(null),f=i.useRef(null),S=10,{chartSize:_}=bs(),{appSettings:k}=Ae(),{emailTrackClicks:a,emailTrackOpens:v}=k?.analytics||{},{post:R,isPostLoading:y,postId:u}=rs(),g=l=>t(ls({filter:l}),{crossApp:!0}),r=R,T=cs(r);i.useEffect(()=>{!y&&!T&&t(`/posts/analytics/${u}`)},[t,u,y,T]);const{stats:d,averageStats:L,topLinks:h,isLoading:E,refetchTopLinks:D}=hs(u),{editLinks:x}=gs(),j=i.useMemo(()=>{if(!r?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};const l=r.count.positive_feedback||0,m=r.count.negative_feedback||0,P=l+m;return{positiveFeedback:l,negativeFeedback:m,totalFeedback:P}},[r]),w=i.useMemo(()=>r?.newsletter?.feedback_enabled===!0,[r]),C=i.useMemo(()=>j.totalFeedback>0?!0:w,[j.totalFeedback,w]),b=l=>{const m=G(h,l);m&&(c(l),p(m.link.to))},$=()=>{if(!s)return;const l=G(h,s);if(!l)return;const m=o.trim();if(m===""||m===l.link.to){c(null),p("");return}x({originalUrl:l.link.originalTo,editedUrl:o,postId:u},{onSuccess:()=>{c(null),p(""),D()}})},{totalPages:xe,paginatedData:ge,nextPage:he,previousPage:be,hasNextPage:fe,hasPreviousPage:ke}=oe({data:h,itemsPerPage:S});i.useEffect(()=>{if(s&&n.current){n.current.focus();const l=G(h,s),m=P=>{f.current&&!f.current.contains(P.target)&&o===l?.link.to&&(c(null),p(""))};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m)}}},[s,o,h]);const I=E||y,ve=[{datatype:"Sent",value:1,fill:"url(#gradientPurple)",color:"var(--chart-purple)"}],je={percentage:{label:"O"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}},Ne=[{datatype:"Average",value:L.openedRate,fill:"url(#gradientGray)",color:"var(--chart-gray)"},{datatype:"This newsletter",value:d.openedRate,fill:"url(#gradientBlue)",color:"var(--chart-blue)"}],we={percentage:{label:"Opened"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}},Ce=[{datatype:"Average",value:L.clickedRate,fill:"url(#gradientGray)",color:"var(--chart-gray)"},{datatype:"This newsletter",value:d.clickedRate,fill:"url(#gradientTeal)",color:"var(--chart-teal)"}],ye={percentage:{label:"Clicked"},Average:{label:"Average"},"This newsletter":{label:"This newsletter"}};let z="grid-cols-3",M="aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-[10/14] md:max-w-none lg:aspect-square";return(!a||!v)&&(z="grid-cols-2",M="aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-square md:max-w-none lg:aspect-[15/10]"),!a&&!v&&(z="grid-cols-1",M="aspect-square w-full sm:aspect-[16/10] md:max-w-[320px] md:max-h-[320px] lg:aspect-[12/10]"),e.jsxs(e.Fragment,{children:[e.jsx(Ke,{currentTab:"Newsletter"}),e.jsx(qe,{children:e.jsxs("div",{className:`grid grid-cols-1 gap-6 ${C&&a&&"lg:grid-cols-2"}`,children:[e.jsxs(Y,{className:C&&a?"lg:col-span-2":"",children:[e.jsxs(J,{className:"hidden",children:[e.jsx(Q,{children:"Newsletters"}),e.jsx(Z,{children:"How did this post perform"})]}),I?e.jsx(F,{className:"h-[25vw] p-6",children:e.jsx(Ee,{})}):e.jsxs(F,{className:"p-0",children:[e.jsxs("div",{className:`grid ${z} items-stretch border-b`,children:[e.jsxs(B,{className:"group relative isolate grow p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`emails.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`emails.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-purple opacity-50"}),"Sent"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:A(d.sent)})})]}),v&&e.jsxs(B,{className:"p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`opened_emails.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`opened_emails.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-blue opacity-50"}),"Opened"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:A(d.opened)})})]}),a&&e.jsxs(B,{className:"group relative isolate grow p-3 md:px-6 md:py-5",children:[e.jsx(V,{onClick:()=>{g(`clicked_links.post_id:${u}`)},children:"View members →"}),e.jsxs(U,{onClick:()=>{g(`clicked_links.post_id:${u}`)},children:[e.jsx("div",{className:"ml-0.5 size-[9px] rounded-full bg-chart-teal opacity-50"}),"Clicked"]}),e.jsx(O,{children:e.jsx(W,{className:"text-xl leading-none sm:text-2xl md:text-[2.6rem]",children:A(d.clicked)})})]})]}),e.jsxs("div",{className:`$ mx-auto grid grid-cols-1 items-center justify-center gap-4 transition-all md:gap-0 ${z==="grid-cols-2"&&"md:grid-cols-2"} ${z==="grid-cols-3"&&"md:grid-cols-3"}`,children:[e.jsxs("div",{className:`relative border-r-0 px-6 ${(v||a)&&"md:border-r"}`,children:[e.jsx(H,{className:M,config:je,data:ve,percentageLabel:"Sent",percentageValue:N(1),size:_,tooltip:!1}),(v||a)&&e.jsx(ae,{})]}),v&&e.jsxs("div",{className:`group/block relative border-r-0 px-6 transition-all hover:bg-muted/25 ${a&&"md:border-r"}`,children:[e.jsx(ie,{avgValue:N(L.openedRate),dataColor:"var(--chart-blue)",value:N(d.openedRate)}),e.jsx(H,{className:M,config:we,data:Ne,percentageLabel:"Open rate",percentageValue:N(d.openedRate),size:_,tooltip:!1}),a&&e.jsx(ae,{})]}),a&&e.jsxs("div",{className:"group/block relative px-6 transition-all hover:bg-muted/25",children:[e.jsx(ie,{avgValue:N(L.clickedRate),dataColor:"var(--chart-teal)",value:N(d.clickedRate)}),e.jsx(H,{className:M,config:ye,data:Ce,percentageLabel:"Click rate",percentageValue:N(d.clickedRate),size:_,tooltip:!1})]})]})]})]}),C&&e.jsx(xs,{feedbackStats:j}),a&&e.jsxs(Y,{className:"group/datalist overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-6",children:[e.jsxs(J,{className:"p-0",children:[e.jsx(Q,{children:"Newsletter clicks"}),e.jsx(Z,{children:"Which links resonated with your readers"})]}),e.jsx(re,{className:"mr-2",children:"Members"})]}),I?e.jsxs(F,{className:"p-6 pt-0",children:[e.jsx(K,{}),e.jsx(le,{className:"mt-6"})]}):e.jsxs(F,{className:"pb-0",children:[e.jsx(K,{}),h.length>0?e.jsx(Ye,{className:"",children:e.jsx(Je,{children:ge?.map(l=>{const m=d.clicked>0?l.count/d.clicked:0,P=l.link.link_id,X=l.link.title,Le=l.link.to,Pe=l.link.edited;return e.jsxs(Qe,{children:[s!==P&&e.jsx(Ze,{style:{width:`${m?Math.round(m*100):0}%`}}),e.jsx(Xe,{className:"w-full",children:s===P?e.jsxs("div",{ref:f,className:"flex w-full items-center gap-2",children:[e.jsx(De,{ref:n,className:"z-50 h-7 w-full border-border bg-background text-sm",value:o,onChange:_e=>p(_e.target.value)}),e.jsx(q,{size:"sm",onClick:$,children:"Update"})]}):e.jsxs(e.Fragment,{children:[e.jsx(q,{className:"mr-2 shrink-0 bg-background",size:"sm",variant:"outline",onClick:()=>b(P),children:e.jsx(Ve,{})}),e.jsx("a",{className:"block truncate font-medium hover:underline",href:Le,rel:"noreferrer",target:"_blank",title:X,children:X}),Pe&&e.jsx("span",{className:"ml-1 text-gray-500",children:"(edited)"})]})}),e.jsxs(es,{children:[e.jsx(ss,{children:A(l.count||0)}),e.jsx(ts,{children:N(m)})]})]},P)})})}):e.jsx("div",{className:"py-20 text-center text-sm text-gray-700",children:"You have no links in your post."})]}),!I&&h.length>1&&e.jsx(ce,{children:e.jsxs("div",{className:"flex w-full items-start justify-between gap-3",children:[e.jsxs("div",{className:"mt-2 flex items-start gap-2 pl-4 text-sm text-green",children:[e.jsx(He,{size:20,strokeWidth:1.5}),"Sent a broken link? You can update it!"]}),xe>1&&e.jsx(de,{className:"pb-0",children:e.jsxs(me,{children:[e.jsx(pe,{disabled:!ke,onClick:be}),e.jsx(ue,{disabled:!fe,onClick:he})]})})]})})]})]})})]})};export{Ws as default};
@@ -1 +1 @@
1
- import{ai as p,ag as r,ap as c,aj as n}from"./index-CFEzD2_M.js";const a="NewslettersResponseType",d=a,l=p({dataType:a,path:"/newsletters/",defaultSearchParams:{include:"count.active_members,count.posts",limit:"50"},defaultNextPageParams:(e,t)=>({...t,page:(e.meta?.pagination.next||1).toString()}),returnData:e=>{const{pages:t}=e,i=t.flatMap(o=>o.newsletters),s=t[t.length-1].meta;return{newsletters:i,meta:s,isEnd:s?s.pagination.pages===s.pagination.page:!0}}}),m=r({method:"POST",path:()=>"/newsletters/",body:({opt_in_existing:e,...t})=>({newsletters:[t]}),searchParams:e=>({opt_in_existing:e.opt_in_existing.toString(),include:"count.active_members,count.posts"}),updateQueries:{dataType:a,emberUpdateType:"createOrUpdate",update:c("newsletters")}}),w=r({method:"PUT",path:e=>`/newsletters/${e.id}/`,body:e=>({newsletters:[e]}),defaultSearchParams:{include:"count.active_members,count.posts"},updateQueries:{dataType:a,emberUpdateType:"createOrUpdate",update:n("newsletters")}}),g=r({method:"PUT",path:()=>"/newsletters/verifications/",body:({token:e})=>({token:e}),defaultSearchParams:{include:"count.active_members,count.posts"},updateQueries:{dataType:a,emberUpdateType:"createOrUpdate",update:n("newsletters")}});export{m as a,w as b,g as c,d as n,l as u};
1
+ import{ai as p,ag as r,ap as c,aj as n}from"./index-BkbhBpVC.js";const a="NewslettersResponseType",d=a,l=p({dataType:a,path:"/newsletters/",defaultSearchParams:{include:"count.active_members,count.posts",limit:"50"},defaultNextPageParams:(e,t)=>({...t,page:(e.meta?.pagination.next||1).toString()}),returnData:e=>{const{pages:t}=e,i=t.flatMap(o=>o.newsletters),s=t[t.length-1].meta;return{newsletters:i,meta:s,isEnd:s?s.pagination.pages===s.pagination.page:!0}}}),m=r({method:"POST",path:()=>"/newsletters/",body:({opt_in_existing:e,...t})=>({newsletters:[t]}),searchParams:e=>({opt_in_existing:e.opt_in_existing.toString(),include:"count.active_members,count.posts"}),updateQueries:{dataType:a,emberUpdateType:"createOrUpdate",update:c("newsletters")}}),w=r({method:"PUT",path:e=>`/newsletters/${e.id}/`,body:e=>({newsletters:[e]}),defaultSearchParams:{include:"count.active_members,count.posts"},updateQueries:{dataType:a,emberUpdateType:"createOrUpdate",update:n("newsletters")}}),g=r({method:"PUT",path:()=>"/newsletters/verifications/",body:({token:e})=>({token:e}),defaultSearchParams:{include:"count.active_members,count.posts"},updateQueries:{dataType:a,emberUpdateType:"createOrUpdate",update:n("newsletters")}});export{m as a,w as b,g as c,d as n,l as u};
@@ -1 +1 @@
1
- import{u as Z,a as _,r as a,b as G,j as e,L as N,S as r,E as ee,c as te,P as se,A as ne,g as ae,d as oe,h as le,F as j,t as ce,i as y,e as ie}from"./index-CFEzD2_M.js";import{u as re,D as de,A as ue,S as A}from"./deleted-feed-item-jLcSKuul.js";import{H as xe}from"./hash-CeFrjo3C.js";import"./trash-CKK_p9G5.js";const C=()=>e.jsx("div",{className:"h-px w-full bg-gray-200 dark:bg-gray-950"}),Ce=()=>{const{postId:$}=Z(),{canGoBack:R}=_(),[U,z]=a.useState(new Set),[B,T]=a.useState(new Set),[k,S]=a.useState(new Set),[p,P]=a.useState(!1),H=a.useRef(null),w=a.useRef(null),d=a.useRef(null),v=a.useRef(null),m=G(),{threadParents:u,post:n,processedReplies:E,isLoading:I,loadMoreChildren:D,loadMoreChildReplies:F,hasMoreChildren:b,hasMoreChildReplies:f}=re(decodeURIComponent($??""),{includeAncestors:!0}),o=n?.object,V=o?.replyCount??0,[L,q]=a.useState(!1);if(a.useEffect(()=>{w.current&&u.length>0&&!L&&(w.current.scrollIntoView({behavior:"instant",block:"start"}),q(!0))},[u,L]),a.useEffect(()=>{d.current&&d.current.disconnect();const t=document.querySelector("[data-scrollable-container]");if(t)return d.current=new IntersectionObserver(async l=>{if(l[0].isIntersecting&&b&&!p){P(!0);try{await D()}catch(s){console.error("Failed to load more top-level replies:",s)}finally{P(!1)}}},{root:t,rootMargin:"200px"}),v.current&&d.current.observe(v.current),()=>{d.current&&d.current.disconnect()}},[b,p,D]),I)return e.jsx(N,{children:e.jsxs("div",{className:"mx-auto flex max-w-[620px] flex-col items-center gap-3 pt-9 lg:px-8",children:[e.jsxs("div",{className:"flex w-full items-center gap-3",children:[e.jsx(r,{className:"size-10 rounded-full"}),e.jsxs("div",{className:"grow pt-1",children:[e.jsx(r,{className:"w-24"}),e.jsx(r,{className:"w-3/5"})]})]}),e.jsxs("div",{className:"mb-7 w-full",children:[e.jsx(r,{}),e.jsx(r,{className:"w-4/5"}),e.jsx(r,{})]}),e.jsx(C,{}),e.jsxs("div",{className:"flex w-full items-center gap-3 py-3",children:[e.jsx(r,{className:"block size-full",containerClassName:"size-10 rounded-full overflow-hidden"}),e.jsxs("div",{children:[e.jsx(r,{className:"w-52"}),e.jsx(r,{className:"w-28"})]})]}),e.jsx(C,{})]})});if(!n)return e.jsx(N,{children:e.jsx("div",{className:"mx-auto mt-4 flex w-full max-w-[620px] flex-col items-center",children:e.jsxs(ee,{children:[e.jsx(te,{children:e.jsx(xe,{})}),e.jsx("div",{children:"Error loading note."})]})})});function g(){}function O(t){z(l=>{const s=new Set(l);return s.has(t)?s.delete(t):(s.add(t),T(c=>{const x=new Set(c);return x.add(t),x})),s})}async function W(t,l){if(!k.has(t)){S(s=>new Set(s).add(t));try{F&&await F(l)}catch(s){console.error("Failed to load more replies for chain:",s)}finally{S(s=>{const c=new Set(s);return c.delete(t),c})}}}return e.jsx(N,{children:e.jsx("div",{className:"mx-auto flex h-full max-w-[620px] flex-col",children:e.jsx("div",{className:"relative flex-1",children:e.jsx("div",{className:"grow overflow-y-auto",children:e.jsxs("div",{className:"mx-auto px-8 pt-5 pb-10 max-lg:px-0",children:[!u.length&&e.jsx(se,{actor:n.actor,isCurrentUser:n.object.authored,children:e.jsxs("div",{className:`col-[2/3] mx-auto flex w-full cursor-pointer items-center gap-3 ${R?"pt-10 max-md:pt-5":"pt-5"}`,children:[e.jsx("div",{className:"relative z-10",children:e.jsx(ne,{author:n.actor,showFollowButton:!n.object.authored&&!n.actor.followedByMe})}),e.jsxs("div",{className:"relative z-10 flex w-full min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]",onClick:t=>{le(n.actor,m,t)},children:[e.jsx("div",{className:"flex w-full",children:e.jsx("span",{className:"min-w-0 truncate font-semibold whitespace-nowrap hover:underline",children:n.actor.name})}),e.jsxs("div",{className:"flex w-full",children:[e.jsx("span",{className:'truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]',children:ae(n.actor)}),e.jsx("span",{className:"text-gray-700",children:oe(o,!o.authored)})]})]})]})}),u.map(t=>t.object.type==="Tombstone"?e.jsx(de,{last:!1}):e.jsx(j,{actor:t.actor,allowDelete:!1,commentCount:t.object.replyCount??0,last:!1,layout:"reply",likeCount:t.object.likeCount??0,object:t.object,repostCount:t.object.repostCount??0,type:"Note",onClick:()=>{m(`/${t.object.type==="Article"?"reader":"notes"}/${encodeURIComponent(t.object.id)}`)}})),e.jsx("div",{ref:w,className:`${R?"scroll-mt-[12px]":"scroll-mt-[124px]"}`,children:e.jsxs("div",{className:`${u.length>0&&"min-h-[calc(100vh-52px)]"}`,children:[e.jsx(j,{actor:n.actor,allowDelete:!1,commentCount:V,last:!0,layout:"modal",likeCount:o.likeCount??0,object:o,repostCount:o.repostCount,showHeader:u.length>0,showStats:!0,type:"Note"}),e.jsx(ue,{object:o}),e.jsx(C,{}),e.jsxs("div",{ref:H,children:[E.map((t,l)=>{const s=l===E.length-1,c=t.mainReply.id,x=U.has(c),J=B.has(c),K=k.has(c),h=t.chain.length>0;return e.jsxs(ce.Fragment,{children:[e.jsx(j,{actor:t.mainReply.actor,allowDelete:t.mainReply.object.authored,commentCount:t.mainReply.object.replyCount??0,isChainParent:h,isPending:y(t.mainReply.id),last:!h,layout:"reply",likeCount:t.mainReply.object.likeCount??0,object:t.mainReply.object,parentId:o.id,repostCount:t.mainReply.object.repostCount??0,type:"Note",onClick:()=>{m(`/notes/${encodeURIComponent(t.mainReply.id)}`)},onDelete:g}),h&&t.chain[0]&&e.jsx(j,{actor:t.chain[0].actor,allowDelete:t.chain[0].object.authored,commentCount:t.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:y(t.chain[0].id),last:t.chain.length===1,layout:"reply",likeCount:t.chain[0].object.likeCount??0,object:t.chain[0].object,parentId:o.id,repostCount:t.chain[0].object.repostCount??0,type:"Note",onClick:()=>{m(`/notes/${encodeURIComponent(t.chain[0].id)}`)},onDelete:g},t.chain[0].id),h&&x&&t.chain.slice(1).map((i,Q)=>{const M=Q===t.chain.slice(1).length-1,X=f&&f(l),Y=M&&X;return e.jsx(j,{actor:i.actor,allowDelete:i.object.authored,commentCount:i.object.replyCount??0,isChainContinuation:!0,isPending:y(i.id),last:M&&!Y,layout:"reply",likeCount:i.object.likeCount??0,object:i.object,parentId:o.id,repostCount:i.object.repostCount??0,type:"Note",onClick:()=>{m(`/notes/${encodeURIComponent(i.id)}`)},onDelete:g},i.id)}),h&&t.chain.length>1&&!x&&e.jsx(A,{variant:"expand",onClick:()=>O(c)}),h&&x&&J&&f&&f(l)&&e.jsx(A,{loading:K,variant:"loadMore",onClick:()=>W(c,l)}),!s&&e.jsx(C,{})]},t.mainReply.id)}),p&&e.jsx("div",{className:"flex flex-col items-center justify-center text-center",children:e.jsx(ie,{size:"md"})})]}),b&&e.jsx("div",{ref:v,className:"h-1"})]})})]})})})})})};export{Ce as default};
1
+ import{u as Z,a as _,r as a,b as G,j as e,L as N,S as r,E as ee,c as te,P as se,A as ne,g as ae,d as oe,h as le,F as j,t as ce,i as y,e as ie}from"./index-BkbhBpVC.js";import{u as re,D as de,A as ue,S as A}from"./deleted-feed-item-DO2u3qmi.js";import{H as xe}from"./hash-CJzbTA5k.js";import"./trash-CUqAK3SQ.js";const C=()=>e.jsx("div",{className:"h-px w-full bg-gray-200 dark:bg-gray-950"}),Ce=()=>{const{postId:$}=Z(),{canGoBack:R}=_(),[U,z]=a.useState(new Set),[B,T]=a.useState(new Set),[k,S]=a.useState(new Set),[p,P]=a.useState(!1),H=a.useRef(null),w=a.useRef(null),d=a.useRef(null),v=a.useRef(null),m=G(),{threadParents:u,post:n,processedReplies:E,isLoading:I,loadMoreChildren:D,loadMoreChildReplies:F,hasMoreChildren:b,hasMoreChildReplies:f}=re(decodeURIComponent($??""),{includeAncestors:!0}),o=n?.object,V=o?.replyCount??0,[L,q]=a.useState(!1);if(a.useEffect(()=>{w.current&&u.length>0&&!L&&(w.current.scrollIntoView({behavior:"instant",block:"start"}),q(!0))},[u,L]),a.useEffect(()=>{d.current&&d.current.disconnect();const t=document.querySelector("[data-scrollable-container]");if(t)return d.current=new IntersectionObserver(async l=>{if(l[0].isIntersecting&&b&&!p){P(!0);try{await D()}catch(s){console.error("Failed to load more top-level replies:",s)}finally{P(!1)}}},{root:t,rootMargin:"200px"}),v.current&&d.current.observe(v.current),()=>{d.current&&d.current.disconnect()}},[b,p,D]),I)return e.jsx(N,{children:e.jsxs("div",{className:"mx-auto flex max-w-[620px] flex-col items-center gap-3 pt-9 lg:px-8",children:[e.jsxs("div",{className:"flex w-full items-center gap-3",children:[e.jsx(r,{className:"size-10 rounded-full"}),e.jsxs("div",{className:"grow pt-1",children:[e.jsx(r,{className:"w-24"}),e.jsx(r,{className:"w-3/5"})]})]}),e.jsxs("div",{className:"mb-7 w-full",children:[e.jsx(r,{}),e.jsx(r,{className:"w-4/5"}),e.jsx(r,{})]}),e.jsx(C,{}),e.jsxs("div",{className:"flex w-full items-center gap-3 py-3",children:[e.jsx(r,{className:"block size-full",containerClassName:"size-10 rounded-full overflow-hidden"}),e.jsxs("div",{children:[e.jsx(r,{className:"w-52"}),e.jsx(r,{className:"w-28"})]})]}),e.jsx(C,{})]})});if(!n)return e.jsx(N,{children:e.jsx("div",{className:"mx-auto mt-4 flex w-full max-w-[620px] flex-col items-center",children:e.jsxs(ee,{children:[e.jsx(te,{children:e.jsx(xe,{})}),e.jsx("div",{children:"Error loading note."})]})})});function g(){}function O(t){z(l=>{const s=new Set(l);return s.has(t)?s.delete(t):(s.add(t),T(c=>{const x=new Set(c);return x.add(t),x})),s})}async function W(t,l){if(!k.has(t)){S(s=>new Set(s).add(t));try{F&&await F(l)}catch(s){console.error("Failed to load more replies for chain:",s)}finally{S(s=>{const c=new Set(s);return c.delete(t),c})}}}return e.jsx(N,{children:e.jsx("div",{className:"mx-auto flex h-full max-w-[620px] flex-col",children:e.jsx("div",{className:"relative flex-1",children:e.jsx("div",{className:"grow overflow-y-auto",children:e.jsxs("div",{className:"mx-auto px-8 pt-5 pb-10 max-lg:px-0",children:[!u.length&&e.jsx(se,{actor:n.actor,isCurrentUser:n.object.authored,children:e.jsxs("div",{className:`col-[2/3] mx-auto flex w-full cursor-pointer items-center gap-3 ${R?"pt-10 max-md:pt-5":"pt-5"}`,children:[e.jsx("div",{className:"relative z-10",children:e.jsx(ne,{author:n.actor,showFollowButton:!n.object.authored&&!n.actor.followedByMe})}),e.jsxs("div",{className:"relative z-10 flex w-full min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]",onClick:t=>{le(n.actor,m,t)},children:[e.jsx("div",{className:"flex w-full",children:e.jsx("span",{className:"min-w-0 truncate font-semibold whitespace-nowrap hover:underline",children:n.actor.name})}),e.jsxs("div",{className:"flex w-full",children:[e.jsx("span",{className:'truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]',children:ae(n.actor)}),e.jsx("span",{className:"text-gray-700",children:oe(o,!o.authored)})]})]})]})}),u.map(t=>t.object.type==="Tombstone"?e.jsx(de,{last:!1}):e.jsx(j,{actor:t.actor,allowDelete:!1,commentCount:t.object.replyCount??0,last:!1,layout:"reply",likeCount:t.object.likeCount??0,object:t.object,repostCount:t.object.repostCount??0,type:"Note",onClick:()=>{m(`/${t.object.type==="Article"?"reader":"notes"}/${encodeURIComponent(t.object.id)}`)}})),e.jsx("div",{ref:w,className:`${R?"scroll-mt-[12px]":"scroll-mt-[124px]"}`,children:e.jsxs("div",{className:`${u.length>0&&"min-h-[calc(100vh-52px)]"}`,children:[e.jsx(j,{actor:n.actor,allowDelete:!1,commentCount:V,last:!0,layout:"modal",likeCount:o.likeCount??0,object:o,repostCount:o.repostCount,showHeader:u.length>0,showStats:!0,type:"Note"}),e.jsx(ue,{object:o}),e.jsx(C,{}),e.jsxs("div",{ref:H,children:[E.map((t,l)=>{const s=l===E.length-1,c=t.mainReply.id,x=U.has(c),J=B.has(c),K=k.has(c),h=t.chain.length>0;return e.jsxs(ce.Fragment,{children:[e.jsx(j,{actor:t.mainReply.actor,allowDelete:t.mainReply.object.authored,commentCount:t.mainReply.object.replyCount??0,isChainParent:h,isPending:y(t.mainReply.id),last:!h,layout:"reply",likeCount:t.mainReply.object.likeCount??0,object:t.mainReply.object,parentId:o.id,repostCount:t.mainReply.object.repostCount??0,type:"Note",onClick:()=>{m(`/notes/${encodeURIComponent(t.mainReply.id)}`)},onDelete:g}),h&&t.chain[0]&&e.jsx(j,{actor:t.chain[0].actor,allowDelete:t.chain[0].object.authored,commentCount:t.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:y(t.chain[0].id),last:t.chain.length===1,layout:"reply",likeCount:t.chain[0].object.likeCount??0,object:t.chain[0].object,parentId:o.id,repostCount:t.chain[0].object.repostCount??0,type:"Note",onClick:()=>{m(`/notes/${encodeURIComponent(t.chain[0].id)}`)},onDelete:g},t.chain[0].id),h&&x&&t.chain.slice(1).map((i,Q)=>{const M=Q===t.chain.slice(1).length-1,X=f&&f(l),Y=M&&X;return e.jsx(j,{actor:i.actor,allowDelete:i.object.authored,commentCount:i.object.replyCount??0,isChainContinuation:!0,isPending:y(i.id),last:M&&!Y,layout:"reply",likeCount:i.object.likeCount??0,object:i.object,parentId:o.id,repostCount:i.object.repostCount??0,type:"Note",onClick:()=>{m(`/notes/${encodeURIComponent(i.id)}`)},onDelete:g},i.id)}),h&&t.chain.length>1&&!x&&e.jsx(A,{variant:"expand",onClick:()=>O(c)}),h&&x&&J&&f&&f(l)&&e.jsx(A,{loading:K,variant:"loadMore",onClick:()=>W(c,l)}),!s&&e.jsx(C,{})]},t.mainReply.id)}),p&&e.jsx("div",{className:"flex flex-col items-center justify-center text-center",children:e.jsx(ie,{size:"md"})})]}),b&&e.jsx("div",{ref:v,className:"h-1"})]})})]})})})})})};export{Ce as default};
@@ -1 +1 @@
1
- import{j as e,a1 as N,cw as u,B as h,cx as P,aZ as A,bg as D,cy as T,aN as U,aM as E,r as g,cz as b,c9 as F}from"./index-CFEzD2_M.js";import{A as M}from"./arrow-right-BixoEua4.js";import{R as V}from"./rocket-DMOr1OCt.js";import{S as i}from"./share-modal-BRmGllZq.js";import"./copy-D7jqplrv.js";const G=""+new URL("logo-loader-dark-CuSPz-zc.mp4",import.meta.url).href,H=""+new URL("logo-loader-88VPEpXE.mp4",import.meta.url).href;function X(){return e.jsxs("div",{className:"relative mb-6 size-20",children:[e.jsx("video",{"aria-hidden":"true",autoPlay:!0,className:"size-20 dark:hidden",height:80,loop:!0,muted:!0,playsInline:!0,preload:"metadata",role:"presentation",tabIndex:-1,width:80,children:e.jsx("source",{src:H,type:"video/mp4"})}),e.jsx("video",{"aria-hidden":"true",autoPlay:!0,className:"hidden size-20 dark:block",height:80,loop:!0,muted:!0,playsInline:!0,preload:"metadata",role:"presentation",tabIndex:-1,width:80,children:e.jsx("source",{src:G,type:"video/mp4"})}),e.jsx("div",{className:"pointer-events-none absolute inset-0 hidden bg-[hsl(216deg_11%_70%/1%)] dark:block"})]})}function q({complete:t,id:l,isBeforeNext:a,isLast:c,isNext:n,onClick:r,step:s}){const x=s.icon,p=n?`relative z-10 -mx-8 flex w-[calc(100%+64px)] items-center justify-between rounded-md bg-background px-8 py-6 text-left shadow-[0_1px_0_rgba(17,17,26,0.05),0_0_8px_rgba(17,17,26,0.10)] transition-none dark:ring-1 dark:ring-border ${c?"-mb-[18px]":"mb-1.5"}`:`relative flex w-full items-center justify-between bg-transparent py-6 text-left ${c||a||n?"":"after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border after:content-['']"}`;return e.jsxs("button",{className:`group ${p}`,"data-testid":`onboarding-step-${s.id}`,id:l,type:"button",onClick:r,children:[e.jsxs("span",{className:`flex min-w-0 items-center ${t?"opacity-20 group-hover:opacity-25":"group-hover:opacity-90"}`,children:[e.jsx(x,{className:"mr-4 size-5 shrink-0 text-purple"}),e.jsxs("span",{className:"min-w-0 text-left",children:[e.jsx("span",{className:"block truncate pr-8 text-[16px] leading-[1.3] font-bold text-foreground",children:s.title}),n&&e.jsx("span",{className:"mt-1 block pr-8 text-[15px] leading-[1.4] text-muted-foreground",children:s.description})]})]}),e.jsx("span",{className:`flex shrink-0 items-center transition-transform group-hover:translate-x-[5px] ${t?"text-green":"text-purple"}`,children:t?e.jsx(N,{className:"size-5"}):e.jsx(M,{className:"size-3.5"})})]})}function W({allStepsCompleted:t,completedSteps:l,nextStep:a,onComplete:c,onDismiss:n,onStepClick:r,siteTitle:s}){const x=new Set(l);return e.jsx("main",{className:"relative flex min-h-screen flex-col items-center justify-center px-6 py-8",children:e.jsxs("section",{className:"mt-[-48px] flex w-full flex-col items-center","data-test-dashboard":"onboarding-checklist","data-testid":"onboarding-checklist",children:[e.jsxs("div",{className:"mb-8 flex flex-col items-center text-center",children:[e.jsx(X,{}),t?e.jsx("h1",{className:"text-[32px] leading-[1.15] font-bold tracking-normal text-foreground max-[480px]:text-[24px]",children:"You're all set."}):e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-[32px] leading-[1.15] font-bold tracking-normal text-foreground max-[480px]:text-[24px]",children:"Let's get started!"}),e.jsxs("p",{className:"mt-2 mb-0 text-[15px] text-muted-foreground max-[480px]:m-0 max-[480px]:text-[14px]",children:["Welcome! It's time to set up ",s,"."]})]})]}),e.jsxs("div",{className:"w-full max-w-[540px] rounded-md border border-border bg-background px-6 pt-4 pb-1",children:[e.jsxs("div",{className:`mt-[-12px] flex items-center justify-between py-6 ${a==="customize-design"?"border-b-0":"border-b border-border"}`,children:[e.jsxs("span",{className:"flex min-w-0 items-center opacity-20",children:[e.jsx(V,{className:"mr-4 size-5 shrink-0 text-purple"}),e.jsx("span",{className:"truncate pr-8 text-[16px] leading-[1.3] font-bold text-foreground",children:"Start a new Ghost publication"})]}),e.jsx("span",{className:"shrink-0 text-green",children:e.jsx(N,{className:"size-5"})})]}),u.map((o,p)=>e.jsx(q,{complete:x.has(o.id),id:`ob-${o.id}`,isBeforeNext:u[p+1]?.id===a,isLast:p===u.length-1,isNext:a===o.id,step:o,onClick:()=>r(o.id)},o.id))]}),t&&e.jsx(h,{className:"mt-6 h-auto w-full max-w-[540px] px-3 py-3 text-[16px] max-[480px]:text-[15px]","data-testid":"onboarding-complete",id:"ob-completed",type:"button",onClick:c,children:"Explore your dashboard"}),e.jsxs("p",{className:"mt-8 mb-0 text-[15px] text-muted-foreground max-[480px]:text-[14px]",children:["More questions? Check out our"," ",e.jsx(h,{asChild:!0,className:"h-auto p-0 align-baseline text-[15px] text-green hover:text-green/90 max-[480px]:text-[14px]",variant:"link",children:e.jsx("a",{href:"https://ghost.org/help?utm_source=admin&utm_campaign=onboarding",id:"ob-help-center",rel:"noreferrer",target:"_blank",children:"Help Center"})}),"."]}),!t&&e.jsx(h,{className:"mt-6 h-[38px] overflow-hidden px-3.5 py-px text-[15px] font-normal whitespace-nowrap text-muted-foreground hover:border-gray-300 hover:text-foreground","data-testid":"onboarding-skip",id:"ob-skip",type:"button",variant:"outline",onClick:n,children:"Skip onboarding"})]})})}function Y({description:t,imageUrl:l,onOpenChange:a,open:c,siteTitle:n,siteUrl:r}){const s=encodeURIComponent(r),x=[{href:`https://twitter.com/intent/tweet?url=${s}`,id:"ob-share-on-x",label:"Share your publication on X",service:"x"},{href:`https://threads.net/intent/post?text=${s}`,id:"ob-share-on-threads",label:"Share your publication on Threads",service:"threads"},{href:`https://www.facebook.com/sharer/sharer.php?u=${s}`,id:"ob-share-on-fb",label:"Share your publication on Facebook",service:"facebook"},{href:`https://www.linkedin.com/feed/?shareActive=true&text=${s}`,id:"ob-share-on-li",label:"Share your publication on LinkedIn",service:"linkedin"}];return e.jsx(i.Root,{open:c,onOpenChange:a,children:e.jsxs(i.Content,{className:"dark:bg-surface-elevated","data-test-modal":"onboarding-share","data-testid":"onboarding-share-modal",children:[e.jsxs(i.Header,{className:"flex-row items-center justify-between gap-4 space-y-0 text-left",children:[e.jsx(i.Title,{className:"text-2xl",children:"Share your publication"}),e.jsx(i.CloseButton,{id:"ob-close-share-modal",onClick:()=>a(!1)})]}),e.jsxs(i.Preview,{className:"rounded-lg bg-card",href:r,children:[l?e.jsx("div",{className:"aspect-video bg-cover bg-center",style:{backgroundImage:`url(${l})`}}):e.jsx("div",{className:"flex aspect-video items-center justify-center bg-muted text-muted-foreground",children:e.jsx(P,{className:"size-8"})}),e.jsxs("div",{className:"p-5",children:[e.jsx("div",{className:"text-lg font-semibold",children:n}),t&&e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:t})]})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Set your publication's cover image and description in"," ",e.jsx(h,{asChild:!0,className:"h-auto p-0 align-baseline text-sm text-green hover:text-green/90",variant:"link",children:e.jsx("a",{href:"#/settings/design/edit?ref=setup",id:"ob-share-modal-design-settings",children:"Design settings"})}),"."]}),e.jsxs(i.Footer,{children:[e.jsx(i.SocialLinks,{links:x}),e.jsx(i.CopyButton,{className:"ml-0! grow cursor-pointer",copyURL:r,"data-testid":"onboarding-copy-link",icon:"link",id:"ob-copy-publication-link",label:"Copy link"})]})]})})}function Z(t){return t&&/^\/analytics(?:\/|\?|$)/.test(t)?t:"/analytics"}function se(){const t=A(),[l]=D(),a=Z(l.get("returnTo")),c=T(),n=U(),r=E(),s=g.useRef(!1),[x,o]=g.useState(!1),[p,f]=g.useState(!1),j=String(b(n.data?.settings,"title")||r.data?.site.title||"your publication"),y=String(b(n.data?.settings,"description")||r.data?.site.description||""),w=String(b(n.data?.settings,"cover_image")||""),S=r.data?.site.url||"/",{allStepsCompleted:C,completeChecklist:L,completedSteps:R,dismissChecklist:z,shouldShowChecklist:$,isLoading:I,markStepCompleted:k,nextStep:_}=c;if(I||r.isLoading||x||s.current)return null;if(!$)return e.jsx(F,{crossApp:!0,replace:!0,to:a});const v=async d=>{s.current=!0,o(!0);try{await d(),t(a,{crossApp:!0,replace:!0})}catch(m){s.current=!1,o(!1),console.error(m)}},B=async d=>{if(d==="share-publication"){await k(d),f(!0);return}await k(d);const m=u.find(({id:O})=>O===d)?.route;m&&t(m,{crossApp:!0})};return e.jsxs(e.Fragment,{children:[e.jsx(W,{allStepsCompleted:C,completedSteps:R,nextStep:_,siteTitle:j,onComplete:()=>{v(L)},onDismiss:()=>{v(z)},onStepClick:d=>{B(d)}}),e.jsx(Y,{description:y,imageUrl:w,open:p,siteTitle:j,siteUrl:S,onOpenChange:f})]})}export{se as default};
1
+ import{j as e,a1 as N,cw as u,B as h,cx as P,aZ as A,bg as D,cy as T,aN as U,aM as E,r as g,cz as b,c9 as F}from"./index-BkbhBpVC.js";import{A as M}from"./arrow-right-Bk43nMGd.js";import{R as V}from"./rocket-Dne6P_8f.js";import{S as i}from"./share-modal-CtdLQbnQ.js";import"./copy-DVtQi_VJ.js";const G=""+new URL("logo-loader-dark-CuSPz-zc.mp4",import.meta.url).href,H=""+new URL("logo-loader-88VPEpXE.mp4",import.meta.url).href;function X(){return e.jsxs("div",{className:"relative mb-6 size-20",children:[e.jsx("video",{"aria-hidden":"true",autoPlay:!0,className:"size-20 dark:hidden",height:80,loop:!0,muted:!0,playsInline:!0,preload:"metadata",role:"presentation",tabIndex:-1,width:80,children:e.jsx("source",{src:H,type:"video/mp4"})}),e.jsx("video",{"aria-hidden":"true",autoPlay:!0,className:"hidden size-20 dark:block",height:80,loop:!0,muted:!0,playsInline:!0,preload:"metadata",role:"presentation",tabIndex:-1,width:80,children:e.jsx("source",{src:G,type:"video/mp4"})}),e.jsx("div",{className:"pointer-events-none absolute inset-0 hidden bg-[hsl(216deg_11%_70%/1%)] dark:block"})]})}function q({complete:t,id:l,isBeforeNext:a,isLast:c,isNext:n,onClick:r,step:s}){const x=s.icon,p=n?`relative z-10 -mx-8 flex w-[calc(100%+64px)] items-center justify-between rounded-md bg-background px-8 py-6 text-left shadow-[0_1px_0_rgba(17,17,26,0.05),0_0_8px_rgba(17,17,26,0.10)] transition-none dark:ring-1 dark:ring-border ${c?"-mb-[18px]":"mb-1.5"}`:`relative flex w-full items-center justify-between bg-transparent py-6 text-left ${c||a||n?"":"after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border after:content-['']"}`;return e.jsxs("button",{className:`group ${p}`,"data-testid":`onboarding-step-${s.id}`,id:l,type:"button",onClick:r,children:[e.jsxs("span",{className:`flex min-w-0 items-center ${t?"opacity-20 group-hover:opacity-25":"group-hover:opacity-90"}`,children:[e.jsx(x,{className:"mr-4 size-5 shrink-0 text-purple"}),e.jsxs("span",{className:"min-w-0 text-left",children:[e.jsx("span",{className:"block truncate pr-8 text-[16px] leading-[1.3] font-bold text-foreground",children:s.title}),n&&e.jsx("span",{className:"mt-1 block pr-8 text-[15px] leading-[1.4] text-muted-foreground",children:s.description})]})]}),e.jsx("span",{className:`flex shrink-0 items-center transition-transform group-hover:translate-x-[5px] ${t?"text-green":"text-purple"}`,children:t?e.jsx(N,{className:"size-5"}):e.jsx(M,{className:"size-3.5"})})]})}function W({allStepsCompleted:t,completedSteps:l,nextStep:a,onComplete:c,onDismiss:n,onStepClick:r,siteTitle:s}){const x=new Set(l);return e.jsx("main",{className:"relative flex min-h-screen flex-col items-center justify-center px-6 py-8",children:e.jsxs("section",{className:"mt-[-48px] flex w-full flex-col items-center","data-test-dashboard":"onboarding-checklist","data-testid":"onboarding-checklist",children:[e.jsxs("div",{className:"mb-8 flex flex-col items-center text-center",children:[e.jsx(X,{}),t?e.jsx("h1",{className:"text-[32px] leading-[1.15] font-bold tracking-normal text-foreground max-[480px]:text-[24px]",children:"You're all set."}):e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-[32px] leading-[1.15] font-bold tracking-normal text-foreground max-[480px]:text-[24px]",children:"Let's get started!"}),e.jsxs("p",{className:"mt-2 mb-0 text-[15px] text-muted-foreground max-[480px]:m-0 max-[480px]:text-[14px]",children:["Welcome! It's time to set up ",s,"."]})]})]}),e.jsxs("div",{className:"w-full max-w-[540px] rounded-md border border-border bg-background px-6 pt-4 pb-1",children:[e.jsxs("div",{className:`mt-[-12px] flex items-center justify-between py-6 ${a==="customize-design"?"border-b-0":"border-b border-border"}`,children:[e.jsxs("span",{className:"flex min-w-0 items-center opacity-20",children:[e.jsx(V,{className:"mr-4 size-5 shrink-0 text-purple"}),e.jsx("span",{className:"truncate pr-8 text-[16px] leading-[1.3] font-bold text-foreground",children:"Start a new Ghost publication"})]}),e.jsx("span",{className:"shrink-0 text-green",children:e.jsx(N,{className:"size-5"})})]}),u.map((o,p)=>e.jsx(q,{complete:x.has(o.id),id:`ob-${o.id}`,isBeforeNext:u[p+1]?.id===a,isLast:p===u.length-1,isNext:a===o.id,step:o,onClick:()=>r(o.id)},o.id))]}),t&&e.jsx(h,{className:"mt-6 h-auto w-full max-w-[540px] px-3 py-3 text-[16px] max-[480px]:text-[15px]","data-testid":"onboarding-complete",id:"ob-completed",type:"button",onClick:c,children:"Explore your dashboard"}),e.jsxs("p",{className:"mt-8 mb-0 text-[15px] text-muted-foreground max-[480px]:text-[14px]",children:["More questions? Check out our"," ",e.jsx(h,{asChild:!0,className:"h-auto p-0 align-baseline text-[15px] text-green hover:text-green/90 max-[480px]:text-[14px]",variant:"link",children:e.jsx("a",{href:"https://ghost.org/help?utm_source=admin&utm_campaign=onboarding",id:"ob-help-center",rel:"noreferrer",target:"_blank",children:"Help Center"})}),"."]}),!t&&e.jsx(h,{className:"mt-6 h-[38px] overflow-hidden px-3.5 py-px text-[15px] font-normal whitespace-nowrap text-muted-foreground hover:border-gray-300 hover:text-foreground","data-testid":"onboarding-skip",id:"ob-skip",type:"button",variant:"outline",onClick:n,children:"Skip onboarding"})]})})}function Y({description:t,imageUrl:l,onOpenChange:a,open:c,siteTitle:n,siteUrl:r}){const s=encodeURIComponent(r),x=[{href:`https://twitter.com/intent/tweet?url=${s}`,id:"ob-share-on-x",label:"Share your publication on X",service:"x"},{href:`https://threads.net/intent/post?text=${s}`,id:"ob-share-on-threads",label:"Share your publication on Threads",service:"threads"},{href:`https://www.facebook.com/sharer/sharer.php?u=${s}`,id:"ob-share-on-fb",label:"Share your publication on Facebook",service:"facebook"},{href:`https://www.linkedin.com/feed/?shareActive=true&text=${s}`,id:"ob-share-on-li",label:"Share your publication on LinkedIn",service:"linkedin"}];return e.jsx(i.Root,{open:c,onOpenChange:a,children:e.jsxs(i.Content,{className:"dark:bg-surface-elevated","data-test-modal":"onboarding-share","data-testid":"onboarding-share-modal",children:[e.jsxs(i.Header,{className:"flex-row items-center justify-between gap-4 space-y-0 text-left",children:[e.jsx(i.Title,{className:"text-2xl",children:"Share your publication"}),e.jsx(i.CloseButton,{id:"ob-close-share-modal",onClick:()=>a(!1)})]}),e.jsxs(i.Preview,{className:"rounded-lg bg-card",href:r,children:[l?e.jsx("div",{className:"aspect-video bg-cover bg-center",style:{backgroundImage:`url(${l})`}}):e.jsx("div",{className:"flex aspect-video items-center justify-center bg-muted text-muted-foreground",children:e.jsx(P,{className:"size-8"})}),e.jsxs("div",{className:"p-5",children:[e.jsx("div",{className:"text-lg font-semibold",children:n}),t&&e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:t})]})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Set your publication's cover image and description in"," ",e.jsx(h,{asChild:!0,className:"h-auto p-0 align-baseline text-sm text-green hover:text-green/90",variant:"link",children:e.jsx("a",{href:"#/settings/design/edit?ref=setup",id:"ob-share-modal-design-settings",children:"Design settings"})}),"."]}),e.jsxs(i.Footer,{children:[e.jsx(i.SocialLinks,{links:x}),e.jsx(i.CopyButton,{className:"ml-0! grow cursor-pointer",copyURL:r,"data-testid":"onboarding-copy-link",icon:"link",id:"ob-copy-publication-link",label:"Copy link"})]})]})})}function Z(t){return t&&/^\/analytics(?:\/|\?|$)/.test(t)?t:"/analytics"}function se(){const t=A(),[l]=D(),a=Z(l.get("returnTo")),c=T(),n=U(),r=E(),s=g.useRef(!1),[x,o]=g.useState(!1),[p,f]=g.useState(!1),j=String(b(n.data?.settings,"title")||r.data?.site.title||"your publication"),y=String(b(n.data?.settings,"description")||r.data?.site.description||""),w=String(b(n.data?.settings,"cover_image")||""),S=r.data?.site.url||"/",{allStepsCompleted:C,completeChecklist:L,completedSteps:R,dismissChecklist:z,shouldShowChecklist:$,isLoading:I,markStepCompleted:k,nextStep:_}=c;if(I||r.isLoading||x||s.current)return null;if(!$)return e.jsx(F,{crossApp:!0,replace:!0,to:a});const v=async d=>{s.current=!0,o(!0);try{await d(),t(a,{crossApp:!0,replace:!0})}catch(m){s.current=!1,o(!1),console.error(m)}},B=async d=>{if(d==="share-publication"){await k(d),f(!0);return}await k(d);const m=u.find(({id:O})=>O===d)?.route;m&&t(m,{crossApp:!0})};return e.jsxs(e.Fragment,{children:[e.jsx(W,{allStepsCompleted:C,completedSteps:R,nextStep:_,siteTitle:j,onComplete:()=>{v(L)},onDismiss:()=>{v(z)},onStepClick:d=>{B(d)}}),e.jsx(Y,{description:y,imageUrl:w,open:p,siteTitle:j,siteUrl:S,onOpenChange:f})]})}export{se as default};
@@ -1 +1 @@
1
- import{u as Y,aZ as A,r as x,j as e,B as E,a_ as K,an as C,a$ as T,b0 as Z,ae as re,ao as f,b1 as F,b2 as ie,b3 as oe,ak as le,al as q,b4 as ne,S as U}from"./index-CFEzD2_M.js";import{u as ce,c as de,D as me}from"./growth-Fz3Oatml.js";import{K as L,a as S,b as _,c as D}from"./kpi-card-BP-2yicn.js";import{C as O,a as P,b as V,c as y,u as Q}from"./pagemenu-TxGvHwRO.js";import{D as pe,a as xe,b as ue,c as he,d as ge,e as je,f as fe,g as be}from"./data-list-DUaY9nlT.js";import{K as R,a as I,b as M}from"./kpi-card-DOplXdDT.js";import{u as ve,p as Ne,N as ye,c as we}from"./links-s3IeAkbo.js";import{M as ke}from"./mail-9TFkAaAh.js";import{P as Ce,a as Le}from"./post-analytics-header-Bm0mcxjK.js";import{S as Se,K as _e}from"./kpis-yHgME_iy.js";import{E as De}from"./empty-indicator-2Pjmce3n.js";import{G as Te}from"./gh-chart-CEhBBu3F.js";import{u as J,S as Re}from"./post-analytics-context-BWDhMRq_.js";import{h as Ie,i as Me}from"./post-helpers-DR3PcyZg.js";import{S as Ae}from"./sprout-956Q4On2.js";import"./wallet-cards-B9TQg4x3.js";import"./source-icon-DeeHyZRn.js";import"./source-utils-B1S3ZHA2.js";import"./table-DTofVyjA.js";import"./member-route-ZLy3opLv.js";import"./currency-fEUUCkj0.js";import"./stats-BVKNZJO6.js";import"./chart-X5cLIH1X.js";import"./_baseAssignValue-BDsvYKNK.js";import"./index-WKMARia9.js";import"./value-BGBiTkF3.js";import"./PolarAngleAxis-D7m1zwVk.js";import"./post-share-modal-D8BtRD2u.js";import"./share-modal-BRmGllZq.js";import"./copy-D7jqplrv.js";import"./get-site-timezone-BDBAcjmq.js";import"./posts-u-CAKddc.js";import"./trash-CKK_p9G5.js";import"./arrow-right-BixoEua4.js";import"./tabs-CL5eaCGL.js";import"./kpi-tabs-Rq5jJW2Z.js";import"./a-large-small-DxRNdz0F.js";import"./undo-2-CcBtw-tW.js";import"./upload-BcylHEMw.js";import"./at-sign-BsHNViA_.js";import"./underline-Bq0P-5Zy.js";import"./loader-circle-C7mWzo52.js";import"./chevron-up-CVgBkTk5.js";import"./circle-alert-Dg3UkvRP.js";import"./power-DR9gpiQR.js";import"./pin-BU_u-xRX.js";import"./hash-CeFrjo3C.js";import"./inbox-CCirPaG2.js";import"./minus-DPrXh11r.js";import"./pencil-CKTgzafp.js";import"./square-BaCvbKJY.js";import"./user-round-check-D0I7NO1g.js";import"./repeat-uXmOJ6y8.js";import"./reply-9ZyqaxI-.js";import"./rocket-DMOr1OCt.js";import"./tags-U3lciBmd.js";import"./user-round-x-DeGVH29o.js";const Ee=({post:l,isNewsletterStatsLoading:c,isWebShown:u})=>{const{postId:s}=Y(),t=A(),a=x.useMemo(()=>{const o=l.email?.opened_count||0,r=l.email?.email_count||0,p=l.count?.clicks||0;return{opened:o,clicked:p,openedRate:r>0?o/r:0,clickedRate:r>0?p/r:0,sent:r}},[l]),{data:m}=ve({searchParams:{filter:`post_id:'${s}'`}}),h=x.useMemo(()=>Ne(m),[m]),g=[{datatype:"Clicked",value:a.clickedRate,fill:"url(#gradientTeal)",color:"var(--chart-teal)"},{datatype:"Opened",value:a.openedRate,fill:"url(#gradientBlue)",color:"var(--chart-blue)"}],n={percentage:{label:"Opened"},Average:{label:"Clicked"},"This newsletter":{label:"Opened"}},i=l.email_only||!u;return e.jsxs(O,{className:`group/datalist overflow-hidden ${i&&"col-span-2"}`,children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(ke,{size:16,strokeWidth:1.5}),"Newsletter performance"]})}),e.jsx(E,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100",size:"sm",variant:"outline",onClick:()=>{t(`/posts/analytics/${s}/newsletter`)},children:"View more"})]}),c?e.jsx(y,{children:e.jsx("div",{className:"mx-auto flex min-h-[250px] items-center justify-center xl:size-full",children:e.jsx(K,{})})}):e.jsxs(y,{className:`${i&&"grid grid-cols-2"}`,children:[e.jsxs("div",{className:`${i&&"border-r pr-6"}`,children:[e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-blue)",children:"Open rate"}),e.jsx(M,{value:C(a.openedRate)})]})}),e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-teal)",children:"Click rate"}),e.jsx(M,{value:C(a.clickedRate)})]})})]}),!i&&e.jsx(T,{}),e.jsx("div",{className:"mx-auto my-6 h-[240px]",children:e.jsx(ye,{className:"pointer-events-none aspect-square h-[240px]",config:n,data:g,tooltip:!1})})]}),e.jsxs("div",{className:`${i&&"pl-6"}`,children:[!i&&e.jsx(T,{}),e.jsxs("div",{className:i?"":"pt-3",children:[e.jsxs("div",{className:`flex items-center justify-between gap-3 ${i?"pb-3":"py-3"}`,children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Top clicked links in this email"}),e.jsx(Z,{children:"Members"})]}),h.length>0?e.jsx(pe,{className:"",children:e.jsx(xe,{children:h.slice(0,i?10:5).map(o=>{const r=a.clicked>0?o.count/a.clicked:0;return e.jsxs(ue,{children:[e.jsx(he,{style:{width:`${r?Math.round(r*100):0}%`}}),e.jsx(ge,{children:e.jsxs("div",{className:"flex items-center space-x-2 overflow-hidden",children:[e.jsx(re,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),e.jsx("a",{className:"block truncate font-medium hover:underline",href:o.link.to,rel:"noreferrer",target:"_blank",title:o.link.to,children:we(o.link.to,!0)})]})}),e.jsxs(je,{children:[e.jsx(fe,{children:f(o.count||0)}),e.jsx(be,{children:C(r)})]})]},o.link.link_id)})})}):e.jsx("div",{className:"py-20 text-center text-sm text-gray-700",children:"You have no links in your post."})]})]})]})]})},Ke=({chartData:l,range:c,isLoading:u,visitors:s,sourcesData:t,isNewsletterShown:a=!0})=>{const{postId:m}=Y(),h=A(),{data:g}=J(),n=g?.url,i=g?.icon,o=x.useMemo(()=>t?t.reduce((r,p)=>r+Number(p.visits||0),0):0,[t]);return e.jsx(e.Fragment,{children:e.jsxs(O,{className:`group/datalist overflow-hidden ${!a&&"col-span-2"}`,"data-testid":"web-performance",children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(F,{size:16,strokeWidth:1.5}),"Web performance"]})}),e.jsx(E,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100",size:"sm",variant:"outline",onClick:()=>{h(`/posts/analytics/${m}/web`)},children:"View more"})]}),e.jsxs(y,{children:[e.jsxs("div",{children:[e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0","data-testid":"unique-visitors",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-blue)",children:"Unique visitors"}),e.jsx(M,{value:f(s)})]})}),e.jsx(T,{}),e.jsx("div",{className:"max-h-[288px] py-6 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:u?e.jsx("div",{className:"flex h-[16vw] min-h-[240px] items-center justify-center",children:e.jsx(K,{})}):e.jsx(Te,{className:"aspect-auto h-[240px] w-full",color:"var(--chart-blue)",data:l||[],id:"visitors",range:c,syncId:"overview-charts"})})]}),a&&e.jsxs("div",{className:a?"border-t pt-3":"-mt-3",children:[e.jsx("div",{children:e.jsxs("div",{className:"flex items-center justify-between gap-3 py-3",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"How readers found this post"}),e.jsx(Z,{children:"Visitors"})]})}),t&&t.length>0?e.jsx(Se,{data:t,range:c,siteIcon:i,siteUrl:n,tableOnly:!0,topSourcesLimit:5,totalVisitors:o}):e.jsx(De,{className:"h-full py-10",description:"Once someone visits this post, sources will show here",title:"No visitors since you published this post",children:e.jsx(F,{strokeWidth:1.5})})]})]})]})})},$s=()=>{const l=A(),{statsConfig:c,isLoading:u,post:s,isPostLoading:t,postId:a}=J(),{totals:m,isLoading:h,currencySymbol:g}=ce(a),{appSettings:n}=ie(),{emailTrackClicks:i,emailTrackOpens:o}=n?.analytics||{},r=x.useMemo(()=>s?.published_at?oe(s.published_at):Re.ALL_TIME.value,[s?.published_at]),{startDate:p,endDate:$,timezone:z}=le(r),W=x.useMemo(()=>{const d={site_uuid:c?.id||"",date_from:q(p),date_to:q($),timezone:z,post_uuid:""};return!t&&s?.uuid?{...d,post_uuid:s.uuid}:d},[t,s,c?.id,p,$,z]),{data:b,loading:G}=Q({endpoint:"api_kpis",statsConfig:c||{id:""},params:W}),X=x.useMemo(()=>b?.length?b.reduce((d,j)=>{const H=Number(j.visits);return d+(isNaN(H)?0:H)},0):0,[b]),v=_e.visits,ee=ne(b||[],r,v.dataKey,"sum")?.map(d=>{const j=Number(d[v.dataKey]);return{date:String(d.date),value:j,formattedValue:v.formatter(j),label:v.label}}),{data:se,loading:te}=Q({endpoint:"api_top_sources",statsConfig:c||{id:""},params:W}),B=u||h||t||G,ae=t||u||G,w=Ie(s)&&o&&i,k=!s?.email_only&&n?.analytics.webAnalytics,N=n?.analytics.membersTrackSources;return x.useEffect(()=>{!t&&s&&Me(s)&&!n?.analytics.webAnalytics&&N&&l(`/posts/analytics/${a}/growth`,{replace:!0})},[t,s,n?.analytics.webAnalytics,l,a,N]),t?e.jsx(K,{}):e.jsxs(e.Fragment,{children:[e.jsx(Ce,{currentTab:"Overview"}),e.jsx(Le,{children:e.jsxs("div",{className:"flex flex-col gap-6 lg:grid lg:grid-cols-2",children:[k&&e.jsx(Ke,{chartData:ee,isLoading:ae||B||te,isNewsletterShown:w,range:r,sourcesData:se,visitors:X}),w&&e.jsx(Ee,{isNewsletterStatsLoading:t,isWebShown:k,post:s}),N&&e.jsxs(O,{className:"group col-span-2 overflow-hidden p-0","data-testid":"growth",children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(Ae,{size:16,strokeWidth:1.5}),"Growth"]})}),e.jsx(E,{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:()=>{l(`/posts/analytics/${a}/growth`)},children:"View more"})]}),e.jsx(y,{className:"flex flex-col gap-6 px-0 md:grid md:grid-cols-3 md:items-stretch md:gap-0",children:B?Array.from({length:3},(d,j)=>e.jsxs("div",{className:"h-[98px] gap-1 border-r px-6 py-5 last:border-r-0",children:[e.jsx(U,{className:"w-2/3"}),e.jsx(U,{className:"h-7 w-12"})]},j)):e.jsxs(e.Fragment,{children:[e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"Free members"}),e.jsx(_,{children:e.jsx(D,{className:"text-[2.2rem]",children:f(m?.free_members||0)})})]}),n?.paidMembersEnabled&&e.jsxs(e.Fragment,{children:[e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"Paid members"}),e.jsx(_,{children:e.jsx(D,{className:"text-[2.2rem]",children:f(m?.paid_members||0)})})]}),e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"MRR impact"}),e.jsx(_,{children:e.jsxs(D,{className:"text-[2.2rem]",children:[g,f(de(m?.mrr||0))]})})]})]})]})})]}),!k&&!w&&!N&&e.jsx(me,{className:"col-span-2 py-20"})]})})]})};export{$s as default};
1
+ import{u as Y,aZ as A,r as x,j as e,B as E,a_ as K,an as C,a$ as T,b0 as Z,ae as re,ao as f,b1 as F,b2 as ie,b3 as oe,ak as le,al as q,b4 as ne,S as U}from"./index-BkbhBpVC.js";import{u as ce,c as de,D as me}from"./growth-CPNrBpHK.js";import{K as L,a as S,b as _,c as D}from"./kpi-card-D3CzvsrI.js";import{C as O,a as P,b as V,c as y,u as Q}from"./pagemenu-O_y8Jm4v.js";import{D as pe,a as xe,b as ue,c as he,d as ge,e as je,f as fe,g as be}from"./data-list-BF4GeUmt.js";import{K as R,a as I,b as M}from"./kpi-card-DV-nN7xT.js";import{u as ve,p as Ne,N as ye,c as we}from"./links-BY0Uo6O5.js";import{M as ke}from"./mail-ccQhEr7k.js";import{P as Ce,a as Le}from"./post-analytics-header-B8C0vA5Y.js";import{S as Se,K as _e}from"./kpis-CVwF08QL.js";import{E as De}from"./empty-indicator-BvyaMcmw.js";import{G as Te}from"./gh-chart-JxzKqaoO.js";import{u as J,S as Re}from"./post-analytics-context-D7PgEMo8.js";import{h as Ie,i as Me}from"./post-helpers-DR3PcyZg.js";import{S as Ae}from"./sprout-CpwUJAPT.js";import"./wallet-cards-CVZ99Nm3.js";import"./source-icon-Dtua85oN.js";import"./source-utils-B1S3ZHA2.js";import"./table-qQi9EXB1.js";import"./member-route-ZLy3opLv.js";import"./currency-fEUUCkj0.js";import"./stats-Yo9Gco0_.js";import"./chart-CUKSNmKY.js";import"./_baseAssignValue-hdDG700N.js";import"./index-DYE2untj.js";import"./value-BGBiTkF3.js";import"./PolarAngleAxis-Bh28wbPV.js";import"./post-share-modal-D0OlASBQ.js";import"./share-modal-CtdLQbnQ.js";import"./copy-DVtQi_VJ.js";import"./get-site-timezone-BDBAcjmq.js";import"./posts-BZaw4-dc.js";import"./trash-CUqAK3SQ.js";import"./arrow-right-Bk43nMGd.js";import"./tabs-M6kFEqPE.js";import"./kpi-tabs-B3NkaTwb.js";import"./a-large-small-BiK5_5LV.js";import"./undo-2-D6ZRqONE.js";import"./upload-BLiT66bJ.js";import"./at-sign-DWOf36uj.js";import"./underline-CwuJG-Ql.js";import"./loader-circle-B1uEfpbZ.js";import"./chevron-up-DuaKtE_M.js";import"./circle-alert-bcK_Yqap.js";import"./power-DWm6pts5.js";import"./pin-Bl3nSr7I.js";import"./hash-CJzbTA5k.js";import"./inbox-CVVAkCmd.js";import"./minus-C68D81nx.js";import"./pencil-BcymGPnE.js";import"./square-CDrQjv8R.js";import"./user-round-check-BDomHaso.js";import"./repeat-DQay9e22.js";import"./reply-CoNqmExw.js";import"./rocket-Dne6P_8f.js";import"./tags-DuMshkTz.js";import"./user-round-x-Cc0RL-V9.js";const Ee=({post:l,isNewsletterStatsLoading:c,isWebShown:u})=>{const{postId:s}=Y(),t=A(),a=x.useMemo(()=>{const o=l.email?.opened_count||0,r=l.email?.email_count||0,p=l.count?.clicks||0;return{opened:o,clicked:p,openedRate:r>0?o/r:0,clickedRate:r>0?p/r:0,sent:r}},[l]),{data:m}=ve({searchParams:{filter:`post_id:'${s}'`}}),h=x.useMemo(()=>Ne(m),[m]),g=[{datatype:"Clicked",value:a.clickedRate,fill:"url(#gradientTeal)",color:"var(--chart-teal)"},{datatype:"Opened",value:a.openedRate,fill:"url(#gradientBlue)",color:"var(--chart-blue)"}],n={percentage:{label:"Opened"},Average:{label:"Clicked"},"This newsletter":{label:"Opened"}},i=l.email_only||!u;return e.jsxs(O,{className:`group/datalist overflow-hidden ${i&&"col-span-2"}`,children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(ke,{size:16,strokeWidth:1.5}),"Newsletter performance"]})}),e.jsx(E,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100",size:"sm",variant:"outline",onClick:()=>{t(`/posts/analytics/${s}/newsletter`)},children:"View more"})]}),c?e.jsx(y,{children:e.jsx("div",{className:"mx-auto flex min-h-[250px] items-center justify-center xl:size-full",children:e.jsx(K,{})})}):e.jsxs(y,{className:`${i&&"grid grid-cols-2"}`,children:[e.jsxs("div",{className:`${i&&"border-r pr-6"}`,children:[e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-blue)",children:"Open rate"}),e.jsx(M,{value:C(a.openedRate)})]})}),e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-teal)",children:"Click rate"}),e.jsx(M,{value:C(a.clickedRate)})]})})]}),!i&&e.jsx(T,{}),e.jsx("div",{className:"mx-auto my-6 h-[240px]",children:e.jsx(ye,{className:"pointer-events-none aspect-square h-[240px]",config:n,data:g,tooltip:!1})})]}),e.jsxs("div",{className:`${i&&"pl-6"}`,children:[!i&&e.jsx(T,{}),e.jsxs("div",{className:i?"":"pt-3",children:[e.jsxs("div",{className:`flex items-center justify-between gap-3 ${i?"pb-3":"py-3"}`,children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Top clicked links in this email"}),e.jsx(Z,{children:"Members"})]}),h.length>0?e.jsx(pe,{className:"",children:e.jsx(xe,{children:h.slice(0,i?10:5).map(o=>{const r=a.clicked>0?o.count/a.clicked:0;return e.jsxs(ue,{children:[e.jsx(he,{style:{width:`${r?Math.round(r*100):0}%`}}),e.jsx(ge,{children:e.jsxs("div",{className:"flex items-center space-x-2 overflow-hidden",children:[e.jsx(re,{className:"shrink-0 text-muted-foreground",size:16,strokeWidth:1.5}),e.jsx("a",{className:"block truncate font-medium hover:underline",href:o.link.to,rel:"noreferrer",target:"_blank",title:o.link.to,children:we(o.link.to,!0)})]})}),e.jsxs(je,{children:[e.jsx(fe,{children:f(o.count||0)}),e.jsx(be,{children:C(r)})]})]},o.link.link_id)})})}):e.jsx("div",{className:"py-20 text-center text-sm text-gray-700",children:"You have no links in your post."})]})]})]})]})},Ke=({chartData:l,range:c,isLoading:u,visitors:s,sourcesData:t,isNewsletterShown:a=!0})=>{const{postId:m}=Y(),h=A(),{data:g}=J(),n=g?.url,i=g?.icon,o=x.useMemo(()=>t?t.reduce((r,p)=>r+Number(p.visits||0),0):0,[t]);return e.jsx(e.Fragment,{children:e.jsxs(O,{className:`group/datalist overflow-hidden ${!a&&"col-span-2"}`,"data-testid":"web-performance",children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(F,{size:16,strokeWidth:1.5}),"Web performance"]})}),e.jsx(E,{className:"absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100",size:"sm",variant:"outline",onClick:()=>{h(`/posts/analytics/${m}/web`)},children:"View more"})]}),e.jsxs(y,{children:[e.jsxs("div",{children:[e.jsx(R,{className:"group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0","data-testid":"unique-visitors",children:e.jsxs("div",{className:"flex grow flex-col gap-1.5 border-none pb-0",children:[e.jsx(I,{color:"var(--chart-blue)",children:"Unique visitors"}),e.jsx(M,{value:f(s)})]})}),e.jsx(T,{}),e.jsx("div",{className:"max-h-[288px] py-6 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:u?e.jsx("div",{className:"flex h-[16vw] min-h-[240px] items-center justify-center",children:e.jsx(K,{})}):e.jsx(Te,{className:"aspect-auto h-[240px] w-full",color:"var(--chart-blue)",data:l||[],id:"visitors",range:c,syncId:"overview-charts"})})]}),a&&e.jsxs("div",{className:a?"border-t pt-3":"-mt-3",children:[e.jsx("div",{children:e.jsxs("div",{className:"flex items-center justify-between gap-3 py-3",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"How readers found this post"}),e.jsx(Z,{children:"Visitors"})]})}),t&&t.length>0?e.jsx(Se,{data:t,range:c,siteIcon:i,siteUrl:n,tableOnly:!0,topSourcesLimit:5,totalVisitors:o}):e.jsx(De,{className:"h-full py-10",description:"Once someone visits this post, sources will show here",title:"No visitors since you published this post",children:e.jsx(F,{strokeWidth:1.5})})]})]})]})})},$s=()=>{const l=A(),{statsConfig:c,isLoading:u,post:s,isPostLoading:t,postId:a}=J(),{totals:m,isLoading:h,currencySymbol:g}=ce(a),{appSettings:n}=ie(),{emailTrackClicks:i,emailTrackOpens:o}=n?.analytics||{},r=x.useMemo(()=>s?.published_at?oe(s.published_at):Re.ALL_TIME.value,[s?.published_at]),{startDate:p,endDate:$,timezone:z}=le(r),W=x.useMemo(()=>{const d={site_uuid:c?.id||"",date_from:q(p),date_to:q($),timezone:z,post_uuid:""};return!t&&s?.uuid?{...d,post_uuid:s.uuid}:d},[t,s,c?.id,p,$,z]),{data:b,loading:G}=Q({endpoint:"api_kpis",statsConfig:c||{id:""},params:W}),X=x.useMemo(()=>b?.length?b.reduce((d,j)=>{const H=Number(j.visits);return d+(isNaN(H)?0:H)},0):0,[b]),v=_e.visits,ee=ne(b||[],r,v.dataKey,"sum")?.map(d=>{const j=Number(d[v.dataKey]);return{date:String(d.date),value:j,formattedValue:v.formatter(j),label:v.label}}),{data:se,loading:te}=Q({endpoint:"api_top_sources",statsConfig:c||{id:""},params:W}),B=u||h||t||G,ae=t||u||G,w=Ie(s)&&o&&i,k=!s?.email_only&&n?.analytics.webAnalytics,N=n?.analytics.membersTrackSources;return x.useEffect(()=>{!t&&s&&Me(s)&&!n?.analytics.webAnalytics&&N&&l(`/posts/analytics/${a}/growth`,{replace:!0})},[t,s,n?.analytics.webAnalytics,l,a,N]),t?e.jsx(K,{}):e.jsxs(e.Fragment,{children:[e.jsx(Ce,{currentTab:"Overview"}),e.jsx(Le,{children:e.jsxs("div",{className:"flex flex-col gap-6 lg:grid lg:grid-cols-2",children:[k&&e.jsx(Ke,{chartData:ee,isLoading:ae||B||te,isNewsletterShown:w,range:r,sourcesData:se,visitors:X}),w&&e.jsx(Ee,{isNewsletterStatsLoading:t,isWebShown:k,post:s}),N&&e.jsxs(O,{className:"group col-span-2 overflow-hidden p-0","data-testid":"growth",children:[e.jsxs("div",{className:"relative flex items-center justify-between gap-6",children:[e.jsx(P,{children:e.jsxs(V,{className:"flex items-center gap-1.5 text-lg",children:[e.jsx(Ae,{size:16,strokeWidth:1.5}),"Growth"]})}),e.jsx(E,{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:()=>{l(`/posts/analytics/${a}/growth`)},children:"View more"})]}),e.jsx(y,{className:"flex flex-col gap-6 px-0 md:grid md:grid-cols-3 md:items-stretch md:gap-0",children:B?Array.from({length:3},(d,j)=>e.jsxs("div",{className:"h-[98px] gap-1 border-r px-6 py-5 last:border-r-0",children:[e.jsx(U,{className:"w-2/3"}),e.jsx(U,{className:"h-7 w-12"})]},j)):e.jsxs(e.Fragment,{children:[e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"Free members"}),e.jsx(_,{children:e.jsx(D,{className:"text-[2.2rem]",children:f(m?.free_members||0)})})]}),n?.paidMembersEnabled&&e.jsxs(e.Fragment,{children:[e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"Paid members"}),e.jsx(_,{children:e.jsx(D,{className:"text-[2.2rem]",children:f(m?.paid_members||0)})})]}),e.jsxs(L,{className:"grow gap-1 py-0",children:[e.jsx(S,{children:"MRR impact"}),e.jsx(_,{children:e.jsxs(D,{className:"text-[2.2rem]",children:[g,f(de(m?.mrr||0))]})})]})]})]})})]}),!k&&!w&&!N&&e.jsx(me,{className:"col-span-2 py-20"})]})})]})};export{$s as default};