ghost 6.52.0 → 6.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/components/tryghost-kg-card-factory-5.2.3.tgz +0 -0
  2. package/components/tryghost-kg-clean-basic-html-4.3.3.tgz +0 -0
  3. package/components/tryghost-kg-converters-1.2.3.tgz +0 -0
  4. package/components/tryghost-kg-default-cards-10.3.3.tgz +0 -0
  5. package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
  6. package/components/tryghost-kg-default-transforms-1.3.3.tgz +0 -0
  7. package/components/tryghost-kg-html-to-lexical-1.3.3.tgz +0 -0
  8. package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
  9. package/components/tryghost-kg-markdown-html-renderer-7.2.3.tgz +0 -0
  10. package/components/tryghost-kg-utils-1.1.3.tgz +0 -0
  11. package/core/built/admin/assets/Growth-CczbRexv.js +3 -0
  12. package/core/built/admin/assets/Newsletters-rFycX4x8.js +1 -0
  13. package/core/built/admin/assets/Overview-DFubBJaR.js +1 -0
  14. package/core/built/admin/assets/Web-BDE2lN4_.js +2 -0
  15. package/core/built/admin/assets/{account-migration-DiS76mRS.js → account-migration-gvH5a8ea.js} +1 -1
  16. package/core/built/admin/assets/audience-CMWMCxFS.js +1 -0
  17. package/core/built/admin/assets/{automated-emails-Cel18g7S.js → automated-emails-293Lcj5S.js} +1 -1
  18. package/core/built/admin/assets/automations-BxnjfCKn.js +1 -0
  19. package/core/built/admin/assets/automations-kPr44AmD.js +1 -0
  20. package/core/built/admin/assets/bluesky-sharing-Cww54F3Y.js +1 -0
  21. package/core/built/admin/assets/{chunk.912.9d6df5a6da679d905bbf.js → chunk.251.dd82df30188bb633b4ae.js} +9 -9
  22. package/core/built/admin/assets/{chunk.730.2457b7fede040aa52c88.js → chunk.341.20e7d2936dfa5877deea.js} +3 -3
  23. package/core/built/admin/assets/{chunk.524.d6d399b571454ea0234d.js → chunk.524.697bf0ded48e7c994fc3.js} +5 -5
  24. package/core/built/admin/assets/{chunk.582.50a9a5cbab6996daf0fe.js → chunk.582.6b742e9ba932688c442c.js} +6 -6
  25. package/core/built/admin/assets/{code-editor-view-BLGzcLub.js → code-editor-view-DSY5RHLf.js} +1 -1
  26. package/core/built/admin/assets/comments-BwNUmaNM.js +1 -0
  27. package/core/built/admin/assets/constants-c-JNF9c2.js +1 -0
  28. package/core/built/admin/assets/container-CD33Rm0u.js +1 -0
  29. package/core/built/admin/assets/content-helpers-CNBPrwsi.js +1 -0
  30. package/core/built/admin/assets/date-range-select-BkkNN98H.js +1 -0
  31. package/core/built/admin/assets/disabled-sources-indicator-ChHTF69d.js +1 -0
  32. package/core/built/admin/assets/{domain-2REz20SO.js → domain-CGk9SMa-.js} +1 -1
  33. package/core/built/admin/assets/dropzone-9zocztX0.js +5 -0
  34. package/core/built/admin/assets/{edit-profile-7QEh0VtN.js → edit-profile-C0B2Kbsl.js} +1 -1
  35. package/core/built/admin/assets/editor-Bz2Sm2O8.js +8 -0
  36. package/core/built/admin/assets/{esm-CEtFqV1y.js → esm-CsHLKmLh.js} +1 -1
  37. package/core/built/admin/assets/explore-CpRAMnx7.js +1 -0
  38. package/core/built/admin/assets/feed-BRoOWghO.js +1 -0
  39. package/core/built/admin/assets/filter-sources-DhxqZID1.js +1 -0
  40. package/core/built/admin/assets/{filters-DUy8rzI5.js → filters-B8nLLYGO.js} +1 -1
  41. package/core/built/admin/assets/{gh-chart-DdBGmBS8.js → gh-chart-Cqy9gGq7.js} +1 -1
  42. package/core/built/admin/assets/{gift-link-modal-CSgyxenA.js → gift-link-modal-v55u0VUL.js} +1 -1
  43. package/core/built/admin/assets/growth-BIfM3w1p.js +1 -0
  44. package/core/built/admin/assets/{inbox-CTD-ix6u.js → inbox-CDX57fXK.js} +11 -11
  45. package/core/built/admin/assets/index-B5yxmQNp.js +69 -0
  46. package/core/built/admin/assets/inline-DdrWe7D3.js +1 -0
  47. package/core/built/admin/assets/{input-group-DkR63-nk.js → input-group-DUPGQck1.js} +1 -1
  48. package/core/built/admin/assets/{koenig-lexical-D09TwwLs.js → koenig-lexical-CUVpp-dC.js} +1 -1
  49. package/core/built/admin/assets/{kpi-card-Fr_HJH78.js → kpi-card-DyDbok3h.js} +1 -1
  50. package/core/built/admin/assets/kpi-helpers-Bx9IHIMq.js +1 -0
  51. package/core/built/admin/assets/{kpi-tabs-Dc4Nt4a5.js → kpi-tabs-DmUcThFc.js} +1 -1
  52. package/core/built/admin/assets/labels-DLL8dl-7.js +1 -0
  53. package/core/built/admin/assets/layout-B7K3SmL0.js +1 -0
  54. package/core/built/admin/assets/{links-CfAB2Yeq.js → link-helpers-DHG_8GIT.js} +1 -1
  55. package/core/built/admin/assets/list-page-COAUFrmV.js +1 -0
  56. package/core/built/admin/assets/members-BxWs_mjq.js +10 -0
  57. package/core/built/admin/assets/{modals-Bu-1Uxdc.js → modals-DF2sECo6.js} +4 -4
  58. package/core/built/admin/assets/moderation-DYKTx5x0.js +1 -0
  59. package/core/built/admin/assets/newsletter-C-ZD1dI8.js +1 -0
  60. package/core/built/admin/assets/note-oaRdU_5z.js +1 -0
  61. package/core/built/admin/assets/notifications-BF4fAiP1.js +1 -0
  62. package/core/built/admin/assets/{nql-lang-CvCSOQG3.js → nql-lang-BoHzkNg5.js} +1 -1
  63. package/core/built/admin/assets/{onboarding-route-BDaa9hd3.js → onboarding-route-SS-e9Aeb.js} +1 -1
  64. package/core/built/admin/assets/overview-Cbn6bIoR.js +1 -0
  65. package/core/built/admin/assets/post-analytics-Bk9-KEgB.js +1 -0
  66. package/core/built/admin/assets/post-analytics-context-C8t_048I.js +1 -0
  67. package/core/built/admin/assets/post-analytics-header-xTjcg4H0.js +1 -0
  68. package/core/built/admin/assets/post-analytics-provider-CqnWwLMk.js +1 -0
  69. package/core/built/admin/assets/{post-share-modal-59Ujf4t1.js → post-share-modal-ZUCX7JZo.js} +1 -1
  70. package/core/built/admin/assets/preferences-BgjgxiBB.js +5 -0
  71. package/core/built/admin/assets/profile-qIwaxKTm.js +1 -0
  72. package/core/built/admin/assets/{router-provider-DcttGCQn.js → router-provider-S8Wf6jdu.js} +1 -1
  73. package/core/built/admin/assets/select-Cp27ScMR.js +1 -0
  74. package/core/built/admin/assets/{settings-dLraw6et.js → settings-CdDfyF90.js} +1 -1
  75. package/core/built/admin/assets/{settings-CIslWMfh.js → settings-CynBh-YN.js} +4 -4
  76. package/core/built/admin/assets/{share-modal-CI3E67kW.js → share-modal-DTIFYNI1.js} +1 -1
  77. package/core/built/admin/assets/social-urls-DVvRfwEp.js +16 -0
  78. package/core/built/admin/assets/{sort-button-BYwI0xdN.js → sort-button-BHh5Ba1K.js} +1 -1
  79. package/core/built/admin/assets/source-icon--egCE7iN.js +1 -0
  80. package/core/built/admin/assets/stats-DkqCtrPh.js +1 -0
  81. package/core/built/admin/assets/stats-view-BvWWxegf.js +1 -0
  82. package/core/built/admin/assets/step-1-DWjw7rIn.js +1 -0
  83. package/core/built/admin/assets/{step-2-CVOvLQ2n.js → step-2-D1LrETIB.js} +1 -1
  84. package/core/built/admin/assets/{step-3-BsVXcpWU.js → step-3-BAdJdZw4.js} +2 -2
  85. package/core/built/admin/assets/{tabs-Bw8aEqsd.js → tabs-DSrHPjWP.js} +1 -1
  86. package/core/built/admin/assets/tags-BWZqBj19.js +1 -0
  87. package/core/built/admin/assets/{textarea-CNaqhk5P.js → textarea-CUVQjsrM.js} +1 -1
  88. package/core/built/admin/assets/{toggle-group-CMp1taHd.js → toggle-group-CrFpl-Xz.js} +1 -1
  89. package/core/built/admin/assets/{topic-filter-D2_9eEw4.js → topic-filter-jAxwwd9I.js} +1 -1
  90. package/core/built/admin/assets/types-uYQ1HgqL.js +1 -0
  91. package/core/built/admin/assets/url-helpers-CCyfRrKj.js +1 -0
  92. package/core/built/admin/assets/use-analytics-data-DXG7mpgK.js +1 -0
  93. package/core/built/admin/assets/use-filter-params-EoQBXfP3.js +1 -0
  94. package/core/built/admin/assets/use-growth-stats-DJoXxVfD.js +1 -0
  95. package/core/built/admin/assets/use-post-referrers-B-onYbuS.js +1 -0
  96. package/core/built/admin/assets/use-reply-chain-data-D8IFALoz.js +1 -0
  97. package/core/built/admin/assets/{use-tinybird-query-CNCaUn39.js → use-tinybird-query-BSL3iVCc.js} +1 -1
  98. package/core/built/admin/assets/{use-tinybird-token-1T80Odca.js → use-tinybird-token-DHgOnrNu.js} +1 -1
  99. package/core/built/admin/assets/virtual-list-AQrbRAXP.js +1 -0
  100. package/core/built/admin/assets/web-zEFi98DS.js +1 -0
  101. package/core/built/admin/index.html +6 -6
  102. package/core/server/services/automations/automations-api.js +20 -0
  103. package/core/server/services/automations/automations-api.ts +31 -0
  104. package/core/server/services/automations/poll.js +7 -7
  105. package/core/server/services/automations/poll.ts +12 -9
  106. package/core/server/services/email-analytics/email-analytics-provider-mailgun.js +2 -2
  107. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +1 -4
  108. package/core/server/services/email-analytics/email-analytics-service.js +5 -7
  109. package/core/server/services/webhooks/serialize.js +6 -5
  110. package/package.json +1 -1
  111. package/pnpm-lock.yaml +14 -14
  112. package/pnpm-workspace.yaml +5 -0
  113. package/core/built/admin/assets/Growth-Dx0vv-BS.js +0 -3
  114. package/core/built/admin/assets/Newsletters-v1GnbUjW.js +0 -1
  115. package/core/built/admin/assets/Overview-BgM7o-Z8.js +0 -1
  116. package/core/built/admin/assets/Web-DRv-83Ow.js +0 -2
  117. package/core/built/admin/assets/automations-DFLgH14-.js +0 -1
  118. package/core/built/admin/assets/automations-Dc4DUKBb.js +0 -1
  119. package/core/built/admin/assets/bluesky-sharing-Dk1RTUaz.js +0 -1
  120. package/core/built/admin/assets/comments-DgH1rC7w.js +0 -1
  121. package/core/built/admin/assets/constants-BlvYJTqz.js +0 -1
  122. package/core/built/admin/assets/content-helpers-BEgGpvyE.js +0 -1
  123. package/core/built/admin/assets/editor-u3BPqQed.js +0 -8
  124. package/core/built/admin/assets/en-DA2zVD_n.js +0 -1
  125. package/core/built/admin/assets/explore-BgHmdFVz.js +0 -1
  126. package/core/built/admin/assets/feed-Cs7-F3I5.js +0 -1
  127. package/core/built/admin/assets/filter-query-core-D6GjHUFB.js +0 -1
  128. package/core/built/admin/assets/growth-IkQZ1ZV9.js +0 -1
  129. package/core/built/admin/assets/index-BMhs4O3N.js +0 -69
  130. package/core/built/admin/assets/inline-C1CpHxuO.js +0 -1
  131. package/core/built/admin/assets/kpis-BTZ8cyw-.js +0 -1
  132. package/core/built/admin/assets/labels-sA9m188H.js +0 -5
  133. package/core/built/admin/assets/layout-szLkuQ88.js +0 -1
  134. package/core/built/admin/assets/list-page-DWkOdljb.js +0 -1
  135. package/core/built/admin/assets/main-layout-B-K8KliJ.js +0 -1
  136. package/core/built/admin/assets/members-PNNhalbu.js +0 -10
  137. package/core/built/admin/assets/moderation-DqnsNTiw.js +0 -1
  138. package/core/built/admin/assets/newsletter-BhuQeWFL.js +0 -1
  139. package/core/built/admin/assets/note-DFy2JTpP.js +0 -1
  140. package/core/built/admin/assets/notifications-BVu-JOkB.js +0 -1
  141. package/core/built/admin/assets/overview-Bhg8M7VS.js +0 -1
  142. package/core/built/admin/assets/pagemenu-C4paivNj.js +0 -1
  143. package/core/built/admin/assets/post-analytics-BhQUmZyA.js +0 -1
  144. package/core/built/admin/assets/post-analytics-context-Dy17HR1_.js +0 -1
  145. package/core/built/admin/assets/post-analytics-header-DAQep1VQ.js +0 -1
  146. package/core/built/admin/assets/posts/_react-dom-Blmuc0OL.js +0 -21
  147. package/core/built/admin/assets/posts/alert-dialog-DBJeQQTK.js +0 -154
  148. package/core/built/admin/assets/posts/app-provider-BJr9fdEC.js +0 -22
  149. package/core/built/admin/assets/posts/app-utils-9O53Czfw.js +0 -83
  150. package/core/built/admin/assets/posts/automations-BM0oBTjO.js +0 -275
  151. package/core/built/admin/assets/posts/automations-Dbp-gdHS.js +0 -223
  152. package/core/built/admin/assets/posts/avatar-kOk1tTvT.js +0 -144
  153. package/core/built/admin/assets/posts/badge-DnByIHe9.js +0 -25
  154. package/core/built/admin/assets/posts/button-Dd8Xreln.js +0 -40844
  155. package/core/built/admin/assets/posts/chunk-KS7C4IRE-ECXkcZq6.js +0 -7740
  156. package/core/built/admin/assets/posts/comments-D-7hbbdw.js +0 -8032
  157. package/core/built/admin/assets/posts/data-list-DdD_glQ-.js +0 -14219
  158. package/core/built/admin/assets/posts/dialog-DDkTy_np.js +0 -229
  159. package/core/built/admin/assets/posts/editor-D7-01KV_.js +0 -14633
  160. package/core/built/admin/assets/posts/empty-indicator-Ze-bwJ27.js +0 -38
  161. package/core/built/admin/assets/posts/filters-CmKfKtpS.js +0 -5611
  162. package/core/built/admin/assets/posts/get-site-timezone-DVbWc-NA.js +0 -39
  163. package/core/built/admin/assets/posts/growth-DlhFUzVg.js +0 -299
  164. package/core/built/admin/assets/posts/heading-BBl-8tMC.js +0 -92
  165. package/core/built/admin/assets/posts/hooks-gZAmj4Al.js +0 -5429
  166. package/core/built/admin/assets/posts/input-DuPLeCGW.js +0 -16
  167. package/core/built/admin/assets/posts/input-surface-ClwNIxfd.js +0 -17
  168. package/core/built/admin/assets/posts/jsx-runtime-BfZnKD4L.js +0 -95
  169. package/core/built/admin/assets/posts/koenig-lexical-DCHiJJou.js +0 -77579
  170. package/core/built/admin/assets/posts/kpis-Fsx0XmYK.js +0 -2061
  171. package/core/built/admin/assets/posts/label-D1wSl69p.js +0 -32
  172. package/core/built/admin/assets/posts/links-DLozzgMh.js +0 -1243
  173. package/core/built/admin/assets/posts/loading-indicator-BgU2kK3v.js +0 -44
  174. package/core/built/admin/assets/posts/main-layout-DDlTMrnF.js +0 -15
  175. package/core/built/admin/assets/posts/newsletter-DAQJ1GLe.js +0 -736
  176. package/core/built/admin/assets/posts/overview-G3MfRm-S.js +0 -426
  177. package/core/built/admin/assets/posts/page-header-CanFyB95.js +0 -284
  178. package/core/built/admin/assets/posts/popover-Cta8ZDHJ.js +0 -221
  179. package/core/built/admin/assets/posts/post-analytics-cS07-wo_.js +0 -121
  180. package/core/built/admin/assets/posts/post-analytics-context-D868SMoq.js +0 -150
  181. package/core/built/admin/assets/posts/post-analytics-header-CZYiuaEL.js +0 -42249
  182. package/core/built/admin/assets/posts/post-share-modal-BJfswZzf.js +0 -352
  183. package/core/built/admin/assets/posts/posts-CpusjBC0.js +0 -37
  184. package/core/built/admin/assets/posts/posts-app-context-CPC7dOlt.js +0 -26
  185. package/core/built/admin/assets/posts/posts.js +0 -145
  186. package/core/built/admin/assets/posts/router-provider-DrqpOc8m.js +0 -114
  187. package/core/built/admin/assets/posts/separator-DAZNzARU.js +0 -37
  188. package/core/built/admin/assets/posts/settings-CMfUn5Hq.js +0 -66
  189. package/core/built/admin/assets/posts/shade-app-DLbeExcd-NeEZjE3R.js +0 -4764
  190. package/core/built/admin/assets/posts/sheet-CEuv-0a5.js +0 -62
  191. package/core/built/admin/assets/posts/site-WJ6ldary.js +0 -10
  192. package/core/built/admin/assets/posts/skeleton-CO0qCdQF.js +0 -2426
  193. package/core/built/admin/assets/posts/source-icon-Bs6o84W3.js +0 -143
  194. package/core/built/admin/assets/posts/stats-B1Z8H0JT.js +0 -92
  195. package/core/built/admin/assets/posts/table-CbJ9bOpM.js +0 -77
  196. package/core/built/admin/assets/posts/tabs-BvzzwQ4P.js +0 -242
  197. package/core/built/admin/assets/posts/tags-D-4TwsD0.js +0 -462
  198. package/core/built/admin/assets/posts/tooltip-BI7VtFUY.js +0 -380
  199. package/core/built/admin/assets/posts/update-queries-DiUznIQ1.js +0 -60
  200. package/core/built/admin/assets/posts/users-UgRPrTKW.js +0 -83
  201. package/core/built/admin/assets/posts/value-DF_wOhJe.js +0 -415
  202. package/core/built/admin/assets/posts/virtual-list-window-DP63Onpm.js +0 -853
  203. package/core/built/admin/assets/posts/web-axp2l3kK.js +0 -8077
  204. package/core/built/admin/assets/preferences-ChOzBKcF.js +0 -5
  205. package/core/built/admin/assets/profile-DlcrYKay.js +0 -1
  206. package/core/built/admin/assets/select-BbtNHCBq.js +0 -1
  207. package/core/built/admin/assets/social-urls-DVzIHh2W.js +0 -16
  208. package/core/built/admin/assets/source-icon-Uuhttjun.js +0 -1
  209. package/core/built/admin/assets/source-utils-BchD0sF0.js +0 -1
  210. package/core/built/admin/assets/stats-CrlPzgdd.js +0 -1
  211. package/core/built/admin/assets/stats-view-UNMhTMCZ.js +0 -1
  212. package/core/built/admin/assets/step-1-C2HY6pyi.js +0 -1
  213. package/core/built/admin/assets/tags-DjCsJo0X.js +0 -1
  214. package/core/built/admin/assets/typeof-Ca-duI-z.js +0 -1
  215. package/core/built/admin/assets/url-helpers-DxA844rA.js +0 -1
  216. package/core/built/admin/assets/use-growth-stats-DNIGdI8h.js +0 -1
  217. package/core/built/admin/assets/use-reply-chain-data-DtEC2Azp.js +0 -1
  218. package/core/built/admin/assets/virtual-list-window-BTXGwpf5.js +0 -1
  219. package/core/built/admin/assets/web-Cj8VEw3s.js +0 -1
  220. /package/core/built/admin/assets/{chunk.912.9d6df5a6da679d905bbf.js.LICENSE.txt → chunk.251.dd82df30188bb633b4ae.js.LICENSE.txt} +0 -0
@@ -1,736 +0,0 @@
1
- import { D as e, E as t, b as n, p as r, s as i, t as a, w as o } from "./jsx-runtime-BfZnKD4L.js";
2
- import { u as s } from "./chunk-KS7C4IRE-ECXkcZq6.js";
3
- import { i as c } from "./hooks-gZAmj4Al.js";
4
- import { M as l, _t as u, gt as d, h as f, ht as p, m, t as h, ut as g, y as _ } from "./button-Dd8Xreln.js";
5
- import { t as v } from "./separator-DAZNzARU.js";
6
- import { n as y } from "./skeleton-CO0qCdQF.js";
7
- import { i as b, r as x, t as S } from "./tabs-BvzzwQ4P.js";
8
- import { n as C, t as w } from "./avatar-kOk1tTvT.js";
9
- import { n as ee } from "./post-analytics-context-D868SMoq.js";
10
- import { c as T, d as te, f as E, h as ne, l as D, o as re, p as O, t as ie, u as k } from "./post-analytics-header-CZYiuaEL.js";
11
- import { t as A } from "./posts-CpusjBC0.js";
12
- import { r as ae } from "./router-provider-DrqpOc8m.js";
13
- import { d as j, f as M, h as N, p as P, s as F } from "./shade-app-DLbeExcd-NeEZjE3R.js";
14
- import { r as oe } from "./heading-BBl-8tMC.js";
15
- import { n as se } from "./posts-app-context-CPC7dOlt.js";
16
- import { a as ce, r as I } from "./app-utils-9O53Czfw.js";
17
- import { c as le, l as ue, n as de, o as fe, r as pe, s as me, t as he, u as ge } from "./data-list-DdD_glQ-.js";
18
- import { a as _e, i as ve, n as L, o as R, t as z } from "./links-DLozzgMh.js";
19
- import { t as ye } from "./input-DuPLeCGW.js";
20
- import { t as be } from "./loading-indicator-BgU2kK3v.js";
21
- import { c as B, d as V, l as H, n as U, o as xe, r as Se, s as W, u as G } from "./stats-B1Z8H0JT.js";
22
- //#region ../shade/es/hooks/use-simple-pagination.js
23
- r();
24
- function Ce({ data: t, itemsPerPage: r, initialPage: i = 1 }) {
25
- let [a, s] = e(i);
26
- if (r <= 0) throw Error("itemsPerPage must be a positive number");
27
- let c = (e) => {
28
- s(Math.max(1, Math.min(l, e)));
29
- }, l = o(() => t ? Math.ceil(t.length / r) : 1, [t, r]);
30
- return n(() => {
31
- a > l && s(1);
32
- }, [a, l]), {
33
- currentPage: a,
34
- setCurrentPage: c,
35
- totalPages: l,
36
- paginatedData: o(() => {
37
- if (!t) return null;
38
- let e = (a - 1) * r;
39
- return t.slice(e, e + r);
40
- }, [
41
- t,
42
- a,
43
- r
44
- ]),
45
- nextPage: () => {
46
- s((e) => Math.min(l, e + 1));
47
- },
48
- previousPage: () => {
49
- s((e) => Math.max(1, e - 1));
50
- },
51
- hasNextPage: a < l,
52
- hasPreviousPage: a > 1
53
- };
54
- }
55
- //#endregion
56
- //#region ../shade/es/components/ui/simple-pagination.js
57
- r();
58
- var K = a(), q = i.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ (0, K.jsx)("div", {
59
- ref: r,
60
- className: F("flex items-center justify-between gap-4 pb-6 text-sm", e),
61
- ...n,
62
- children: t
63
- }));
64
- q.displayName = "SimplePagination";
65
- var we = i.forwardRef(({ className: e, currentPage: t, totalPages: n, ...r }, i) => /* @__PURE__ */ (0, K.jsxs)("span", {
66
- ref: i,
67
- className: F("text-muted-foreground", e),
68
- ...r,
69
- children: [
70
- "Pages ",
71
- t,
72
- " of ",
73
- n
74
- ]
75
- }));
76
- we.displayName = "SimplePaginationPages";
77
- var J = i.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ (0, K.jsx)("div", {
78
- ref: r,
79
- className: F("flex items-center gap-1.5", e),
80
- ...n,
81
- children: t
82
- }));
83
- J.displayName = "SimplePaginationNavigation";
84
- var Y = i.forwardRef(({ variant: e = "outline", ...t }, n) => /* @__PURE__ */ (0, K.jsx)(h, {
85
- ref: n,
86
- size: "sm",
87
- variant: e,
88
- ...t,
89
- children: /* @__PURE__ */ (0, K.jsx)(u, {})
90
- }));
91
- Y.displayName = "SimplePaginationPreviousButton";
92
- var X = i.forwardRef(({ variant: e = "outline", ...t }, n) => /* @__PURE__ */ (0, K.jsx)(h, {
93
- ref: n,
94
- size: "sm",
95
- variant: e,
96
- ...t,
97
- children: /* @__PURE__ */ (0, K.jsx)(d, {})
98
- }));
99
- X.displayName = "SimplePaginationNextButton";
100
- //#endregion
101
- //#region ../admin-x-framework/dist/api/feedback.js
102
- var Te = c({
103
- dataType: "FeedbackResponseType",
104
- path: (e) => `/feedback/${e}/`
105
- });
106
- //#endregion
107
- //#region src/hooks/use-post-feedback.ts
108
- r();
109
- var Ee = (e, t) => {
110
- let { data: n, isLoading: r, error: i } = Te(e, { searchParams: {
111
- limit: "50",
112
- ...t === void 0 ? {} : { score: t.toString() }
113
- } });
114
- return {
115
- feedback: o(() => n?.feedback ? n.feedback : [], [n]),
116
- isLoading: r,
117
- error: i
118
- };
119
- };
120
- //#endregion
121
- //#region src/views/PostAnalytics/Newsletter/components/feedback.tsx
122
- r();
123
- var De = ({ feedbackStats: t }) => {
124
- let { postId: n } = s(), r = ae(), [i, a] = e("positive"), { feedback: o, isLoading: c } = Ee(n || "", +(i === "positive")), { totalPages: l, paginatedData: u, nextPage: d, previousPage: p, hasNextPage: g, hasPreviousPage: ee } = Ce({
125
- data: o,
126
- itemsPerPage: 9
127
- }), ne = c;
128
- return /* @__PURE__ */ (0, K.jsxs)(T, { children: [
129
- /* @__PURE__ */ (0, K.jsxs)(E, {
130
- className: "pb-5",
131
- children: [/* @__PURE__ */ (0, K.jsx)(O, { children: "Feedback" }), /* @__PURE__ */ (0, K.jsx)(k, { children: "What did your readers think?" })]
132
- }),
133
- t.totalFeedback > 0 ? /* @__PURE__ */ (0, K.jsxs)(D, {
134
- className: "pb-3",
135
- children: [
136
- /* @__PURE__ */ (0, K.jsxs)("div", {
137
- className: "flex items-center justify-between gap-3",
138
- children: [/* @__PURE__ */ (0, K.jsx)(S, {
139
- className: "pb-3",
140
- defaultValue: "positive",
141
- value: i,
142
- variant: "button",
143
- onValueChange: (e) => a(e),
144
- children: /* @__PURE__ */ (0, K.jsxs)(x, {
145
- className: "gap-1",
146
- children: [/* @__PURE__ */ (0, K.jsx)(b, {
147
- className: "h-7",
148
- value: "positive",
149
- children: /* @__PURE__ */ (0, K.jsxs)("div", {
150
- className: "flex items-center gap-1 text-xs",
151
- children: [
152
- /* @__PURE__ */ (0, K.jsx)(m, {
153
- size: 14,
154
- strokeWidth: 1.25
155
- }),
156
- /* @__PURE__ */ (0, K.jsx)("span", {
157
- className: "hidden font-medium sm:visible! sm:inline!",
158
- children: "More like this"
159
- }),
160
- /* @__PURE__ */ (0, K.jsx)("span", {
161
- className: "font-semibold tracking-tight",
162
- children: M(t.positiveFeedback / t.totalFeedback)
163
- })
164
- ]
165
- })
166
- }), /* @__PURE__ */ (0, K.jsx)(b, {
167
- className: "h-7",
168
- value: "negative",
169
- children: /* @__PURE__ */ (0, K.jsxs)("div", {
170
- className: "flex items-center gap-1 text-xs",
171
- children: [
172
- /* @__PURE__ */ (0, K.jsx)(f, {
173
- size: 14,
174
- strokeWidth: 1.25
175
- }),
176
- /* @__PURE__ */ (0, K.jsx)("span", {
177
- className: "hidden font-medium sm:visible! sm:inline!",
178
- children: "Less like this"
179
- }),
180
- /* @__PURE__ */ (0, K.jsx)("span", {
181
- className: "font-semibold tracking-tight",
182
- children: M(t.negativeFeedback / t.totalFeedback)
183
- })
184
- ]
185
- })
186
- })]
187
- })
188
- }), /* @__PURE__ */ (0, K.jsx)(oe, {
189
- className: "mr-2 mb-3 lg:hidden xl:visible! xl:block!",
190
- children: "Date"
191
- })]
192
- }),
193
- /* @__PURE__ */ (0, K.jsx)(v, {}),
194
- ne ? /* @__PURE__ */ (0, K.jsx)(y, {
195
- className: "mt-3",
196
- lines: 3
197
- }) : u && u.length > 0 ? /* @__PURE__ */ (0, K.jsx)("div", {
198
- className: "flex w-full flex-col py-3",
199
- children: u.map((e) => /* @__PURE__ */ (0, K.jsxs)("div", {
200
- 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",
201
- onClick: () => {
202
- r(`/members/${e.member.id}`, { crossApp: !0 });
203
- },
204
- children: [/* @__PURE__ */ (0, K.jsxs)("div", {
205
- className: "flex items-center gap-2 font-medium",
206
- children: [/* @__PURE__ */ (0, K.jsxs)(w, {
207
- className: "size-7",
208
- children: [e.member?.avatar_image && /* @__PURE__ */ (0, K.jsx)("img", {
209
- className: "absolute aspect-square size-full",
210
- src: e.member?.avatar_image
211
- }), /* @__PURE__ */ (0, K.jsx)(C, {
212
- className: "text-white",
213
- style: { backgroundColor: `${N(I(e.member), "45", "55")}` },
214
- children: ce(e.member)
215
- })]
216
- }), I(e.member)]
217
- }), /* @__PURE__ */ (0, K.jsx)("div", {
218
- className: "whitespace-nowrap text-muted-foreground",
219
- children: P(e.created_at)
220
- })]
221
- }, e.id))
222
- }) : /* @__PURE__ */ (0, K.jsx)("div", {
223
- className: "flex h-full items-center justify-center py-8 text-center text-sm text-muted-foreground",
224
- children: /* @__PURE__ */ (0, K.jsxs)("div", { children: [
225
- "No ",
226
- i === "positive" ? "positive" : "negative",
227
- " feedback yet"
228
- ] })
229
- })
230
- ]
231
- }) : /* @__PURE__ */ (0, K.jsxs)(D, {
232
- className: "flex grow flex-col items-center justify-center text-center text-sm text-muted-foreground",
233
- children: [/* @__PURE__ */ (0, K.jsx)("div", { children: "No members have given feedback yet" }), /* @__PURE__ */ (0, K.jsx)("div", { children: "When someone does, you'll see their response here." })]
234
- }),
235
- t.totalFeedback > 0 && /* @__PURE__ */ (0, K.jsx)(te, {
236
- className: "grow-0",
237
- children: /* @__PURE__ */ (0, K.jsxs)("div", {
238
- className: "flex w-full items-center justify-between gap-3",
239
- children: [/* @__PURE__ */ (0, K.jsxs)(h, {
240
- variant: "outline",
241
- onClick: () => {
242
- let e = `(feedback.post_id:'${n}'+feedback.score:1)`, t = `(feedback.post_id:'${n}'+feedback.score:0)`, a = `${encodeURIComponent(e)}&post=${n}`, o = `${encodeURIComponent(t)}&post=${n}`;
243
- r(`/members?filter=${i === "positive" ? a : o}`, { crossApp: !0 });
244
- },
245
- children: ["View all", /* @__PURE__ */ (0, K.jsx)(_, {})]
246
- }), l > 1 && /* @__PURE__ */ (0, K.jsx)(q, {
247
- className: "pb-0",
248
- children: /* @__PURE__ */ (0, K.jsxs)(J, { children: [/* @__PURE__ */ (0, K.jsx)(Y, {
249
- disabled: !ee,
250
- onClick: p
251
- }), /* @__PURE__ */ (0, K.jsx)(X, {
252
- disabled: !g,
253
- onClick: d
254
- })] })
255
- })]
256
- })
257
- })
258
- ] });
259
- }, Oe = () => {
260
- let { mutateAsync: e, isLoading: t } = z();
261
- return {
262
- editLinks: e,
263
- isEditLinksLoading: t
264
- };
265
- };
266
- //#endregion
267
- //#region src/hooks/use-post-newsletter-stats.ts
268
- r();
269
- var ke = (e) => {
270
- let { data: t, isLoading: n } = A(e), { data: r, isLoading: i } = A(e, { searchParams: { include: "count.positive_feedback,count.negative_feedback" } }), a = o(() => t?.posts[0], [t]), s = o(() => r?.posts[0], [r]), c = o(() => a ? {
271
- sent: a.email?.email_count || 0,
272
- opened: a.email?.opened_count || 0,
273
- clicked: a.count?.clicks || 0,
274
- openedRate: a.email?.opened_count ? a.email.opened_count / a.email.email_count : 0,
275
- clickedRate: a.count?.clicks && a.email?.email_count ? a.count.clicks / a.email.email_count : 0
276
- } : {
277
- sent: 0,
278
- opened: 0,
279
- clicked: 0,
280
- openedRate: 0,
281
- clickedRate: 0
282
- }, [a]), l = o(() => {
283
- if (!s?.count) return {
284
- positiveFeedback: 0,
285
- negativeFeedback: 0,
286
- totalFeedback: 0
287
- };
288
- let e = s.count.positive_feedback || 0, t = s.count.negative_feedback || 0;
289
- return {
290
- positiveFeedback: e,
291
- negativeFeedback: t,
292
- totalFeedback: e + t
293
- };
294
- }, [s]), u = o(() => a?.newsletter?.id, [a]), { data: d, isLoading: f } = U({
295
- searchParams: u ? { newsletter_id: u } : {},
296
- enabled: !!u
297
- }), p = o(() => d?.stats ? d.stats.map((e) => e.post_id) : [], [d]), { data: m, isLoading: h } = Se({
298
- searchParams: u && p.length > 0 ? {
299
- newsletter_id: u,
300
- post_ids: p.join(",")
301
- } : {},
302
- enabled: !!u && p.length > 0
303
- }), g = o(() => {
304
- if (!d?.stats) return;
305
- let e = d.stats, t = m?.stats || [], n = /* @__PURE__ */ new Map();
306
- t.forEach((e) => {
307
- n.set(e.post_id, e);
308
- });
309
- let r = e.map((e) => {
310
- let t = n.get(e.post_id);
311
- return {
312
- ...e,
313
- total_clicks: t?.total_clicks || 0,
314
- click_rate: t?.click_rate || 0
315
- };
316
- });
317
- return {
318
- ...d,
319
- stats: r
320
- };
321
- }, [d, m]), _ = f || h, { data: v, isLoading: y, refetch: b } = L({ searchParams: { filter: `post_id:'${e}'` } }), x = o(() => {
322
- if (!g || !g.stats) return {
323
- openRate: 0,
324
- clickRate: 0
325
- };
326
- let e = g.stats;
327
- if (e.length === 0) return {
328
- openRate: 0,
329
- clickRate: 0
330
- };
331
- let t = e.reduce((e, t) => e + (t.open_rate || 0), 0), n = e.reduce((e, t) => e + (t.click_rate || 0), 0);
332
- return {
333
- openRate: Number((t / e.length).toFixed(2)),
334
- clickRate: Number((n / e.length).toFixed(2))
335
- };
336
- }, [g]), S = o(() => _e(v), [v]);
337
- return {
338
- post: a,
339
- stats: c,
340
- feedbackStats: l,
341
- averageStats: o(() => ({
342
- openedRate: x.openRate,
343
- clickedRate: x.clickRate
344
- }), [x]),
345
- topLinks: S,
346
- refetchTopLinks: b,
347
- isLoading: n || i || _ || y
348
- };
349
- };
350
- //#endregion
351
- //#region src/hooks/use-responsive-chart-size.ts
352
- r();
353
- var Ae = ({ breakpoints: t = {
354
- sm: 1080,
355
- md: 1280,
356
- lg: 1360
357
- } } = {}) => {
358
- let [r, i] = e("md");
359
- return n(() => {
360
- let e = () => {
361
- let e = window.innerWidth;
362
- e < t.sm ? i("sm") : e < t.md ? i("md") : i("lg");
363
- };
364
- return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
365
- }, [t]), {
366
- chartSize: r,
367
- isSmall: r === "sm",
368
- isMedium: r === "md",
369
- isLarge: r === "lg"
370
- };
371
- };
372
- //#endregion
373
- //#region src/views/PostAnalytics/Newsletter/newsletter.tsx
374
- r();
375
- var je = () => /* @__PURE__ */ (0, K.jsx)("div", {
376
- 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!",
377
- children: /* @__PURE__ */ (0, K.jsx)(g, {
378
- className: "ml-0.5",
379
- size: 16,
380
- strokeWidth: 1.5
381
- })
382
- }), Me = ({ dataColor: e, value: t, avgValue: n }) => /* @__PURE__ */ (0, K.jsxs)("div", {
383
- 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",
384
- children: [/* @__PURE__ */ (0, K.jsxs)("div", {
385
- className: "flex items-center justify-between gap-4",
386
- children: [/* @__PURE__ */ (0, K.jsxs)("div", {
387
- className: "flex items-center gap-2 text-muted-foreground",
388
- children: [/* @__PURE__ */ (0, K.jsx)("div", {
389
- className: "size-2 rounded-full bg-chart-blue opacity-50",
390
- style: { backgroundColor: e }
391
- }), "This newsletter"]
392
- }), /* @__PURE__ */ (0, K.jsx)("div", {
393
- className: "text-right font-mono",
394
- children: t
395
- })]
396
- }), /* @__PURE__ */ (0, K.jsxs)("div", {
397
- className: "flex items-center justify-between gap-4",
398
- children: [/* @__PURE__ */ (0, K.jsxs)("div", {
399
- className: "flex items-center gap-2 text-muted-foreground",
400
- children: [/* @__PURE__ */ (0, K.jsx)("div", { className: "size-2 rounded-full bg-chart-gray opacity-80" }), "Average"]
401
- }), /* @__PURE__ */ (0, K.jsx)("div", {
402
- className: "text-right font-mono",
403
- children: n
404
- })]
405
- })]
406
- }), Ne = () => {
407
- let r = ae(), [i, a] = e(null), [s, c] = e(""), u = t(null), d = t(null), { chartSize: f } = Ae(), { appSettings: m } = se(), { emailTrackClicks: g, emailTrackOpens: _ } = m?.analytics || {}, { post: b, isPostLoading: x, postId: S } = ee(), C = (e) => r(xe({ filter: e }), { crossApp: !0 }), w = b, A = ne(w);
408
- n(() => {
409
- !x && !A && r(`/posts/analytics/${S}`);
410
- }, [
411
- r,
412
- S,
413
- x,
414
- A
415
- ]);
416
- let { stats: N, averageStats: P, topLinks: F, isLoading: ce, refetchTopLinks: I } = ke(S), { editLinks: _e } = Oe(), L = o(() => {
417
- if (!w?.count) return {
418
- positiveFeedback: 0,
419
- negativeFeedback: 0,
420
- totalFeedback: 0
421
- };
422
- let e = w.count.positive_feedback || 0, t = w.count.negative_feedback || 0;
423
- return {
424
- positiveFeedback: e,
425
- negativeFeedback: t,
426
- totalFeedback: e + t
427
- };
428
- }, [w]), z = o(() => w?.newsletter?.feedback_enabled === !0, [w]), U = o(() => L.totalFeedback > 0 ? !0 : z, [L.totalFeedback, z]), Se = (e) => {
429
- let t = ve(F, e);
430
- t && (a(e), c(t.link.to));
431
- }, we = () => {
432
- if (!i) return;
433
- let e = ve(F, i);
434
- if (!e) return;
435
- let t = s.trim();
436
- if (t === "" || t === e.link.to) {
437
- a(null), c("");
438
- return;
439
- }
440
- _e({
441
- originalUrl: e.link.originalTo,
442
- editedUrl: s,
443
- postId: S
444
- }, { onSuccess: () => {
445
- a(null), c(""), I();
446
- } });
447
- }, { totalPages: Te, paginatedData: Ee, nextPage: Ne, previousPage: Pe, hasNextPage: Fe, hasPreviousPage: Ie } = Ce({
448
- data: F,
449
- itemsPerPage: 10
450
- });
451
- n(() => {
452
- if (i && u.current) {
453
- u.current.focus();
454
- let e = ve(F, i), t = (t) => {
455
- d.current && !d.current.contains(t.target) && s === e?.link.to && (a(null), c(""));
456
- };
457
- return document.addEventListener("mousedown", t), () => {
458
- document.removeEventListener("mousedown", t);
459
- };
460
- }
461
- }, [
462
- i,
463
- s,
464
- F
465
- ]);
466
- let Z = ce || x, Le = [{
467
- datatype: "Sent",
468
- value: 1,
469
- fill: "url(#gradientPurple)",
470
- color: "var(--chart-purple)"
471
- }], Re = {
472
- percentage: { label: "O" },
473
- Average: { label: "Average" },
474
- "This newsletter": { label: "This newsletter" }
475
- }, ze = [{
476
- datatype: "Average",
477
- value: P.openedRate,
478
- fill: "url(#gradientGray)",
479
- color: "var(--chart-gray)"
480
- }, {
481
- datatype: "This newsletter",
482
- value: N.openedRate,
483
- fill: "url(#gradientBlue)",
484
- color: "var(--chart-blue)"
485
- }], Be = {
486
- percentage: { label: "Opened" },
487
- Average: { label: "Average" },
488
- "This newsletter": { label: "This newsletter" }
489
- }, Ve = [{
490
- datatype: "Average",
491
- value: P.clickedRate,
492
- fill: "url(#gradientGray)",
493
- color: "var(--chart-gray)"
494
- }, {
495
- datatype: "This newsletter",
496
- value: N.clickedRate,
497
- fill: "url(#gradientTeal)",
498
- color: "var(--chart-teal)"
499
- }], He = {
500
- percentage: { label: "Clicked" },
501
- Average: { label: "Average" },
502
- "This newsletter": { label: "This newsletter" }
503
- }, Q = "grid-cols-3", $ = "aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-[10/14] md:max-w-none lg:aspect-square";
504
- return (!g || !_) && (Q = "grid-cols-2", $ = "aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-square md:max-w-none lg:aspect-[15/10]"), !g && !_ && (Q = "grid-cols-1", $ = "aspect-square w-full sm:aspect-[16/10] md:max-w-[320px] md:max-h-[320px] lg:aspect-[12/10]"), /* @__PURE__ */ (0, K.jsxs)(K.Fragment, { children: [/* @__PURE__ */ (0, K.jsx)(ie, { currentTab: "Newsletter" }), /* @__PURE__ */ (0, K.jsx)(re, { children: /* @__PURE__ */ (0, K.jsxs)("div", {
505
- className: `grid grid-cols-1 gap-6 ${U && g && "lg:grid-cols-2"}`,
506
- children: [
507
- /* @__PURE__ */ (0, K.jsxs)(T, {
508
- className: U && g ? "lg:col-span-2" : "",
509
- children: [/* @__PURE__ */ (0, K.jsxs)(E, {
510
- className: "hidden",
511
- children: [/* @__PURE__ */ (0, K.jsx)(O, { children: "Newsletters" }), /* @__PURE__ */ (0, K.jsx)(k, { children: "How did this post perform" })]
512
- }), Z ? /* @__PURE__ */ (0, K.jsx)(D, {
513
- className: "h-[25vw] p-6",
514
- children: /* @__PURE__ */ (0, K.jsx)(be, {})
515
- }) : /* @__PURE__ */ (0, K.jsxs)(D, {
516
- className: "p-0",
517
- children: [/* @__PURE__ */ (0, K.jsxs)("div", {
518
- className: `grid ${Q} items-stretch border-b`,
519
- children: [
520
- /* @__PURE__ */ (0, K.jsxs)(W, {
521
- className: "group relative isolate grow p-3 md:px-6 md:py-5",
522
- children: [
523
- /* @__PURE__ */ (0, K.jsx)(G, {
524
- onClick: () => {
525
- C(`emails.post_id:${S}`);
526
- },
527
- children: "View members →"
528
- }),
529
- /* @__PURE__ */ (0, K.jsxs)(H, {
530
- onClick: () => {
531
- C(`emails.post_id:${S}`);
532
- },
533
- children: [/* @__PURE__ */ (0, K.jsx)("div", { className: "ml-0.5 size-[9px] rounded-full bg-chart-purple opacity-50" }), "Sent"]
534
- }),
535
- /* @__PURE__ */ (0, K.jsx)(B, { children: /* @__PURE__ */ (0, K.jsx)(V, {
536
- className: "text-xl leading-none sm:text-2xl md:text-[2.6rem]",
537
- children: j(N.sent)
538
- }) })
539
- ]
540
- }),
541
- _ && /* @__PURE__ */ (0, K.jsxs)(W, {
542
- className: "p-3 md:px-6 md:py-5",
543
- children: [
544
- /* @__PURE__ */ (0, K.jsx)(G, {
545
- onClick: () => {
546
- C(`opened_emails.post_id:${S}`);
547
- },
548
- children: "View members →"
549
- }),
550
- /* @__PURE__ */ (0, K.jsxs)(H, {
551
- onClick: () => {
552
- C(`opened_emails.post_id:${S}`);
553
- },
554
- children: [/* @__PURE__ */ (0, K.jsx)("div", { className: "ml-0.5 size-[9px] rounded-full bg-chart-blue opacity-50" }), "Opened"]
555
- }),
556
- /* @__PURE__ */ (0, K.jsx)(B, { children: /* @__PURE__ */ (0, K.jsx)(V, {
557
- className: "text-xl leading-none sm:text-2xl md:text-[2.6rem]",
558
- children: j(N.opened)
559
- }) })
560
- ]
561
- }),
562
- g && /* @__PURE__ */ (0, K.jsxs)(W, {
563
- className: "group relative isolate grow p-3 md:px-6 md:py-5",
564
- children: [
565
- /* @__PURE__ */ (0, K.jsx)(G, {
566
- onClick: () => {
567
- C(`clicked_links.post_id:${S}`);
568
- },
569
- children: "View members →"
570
- }),
571
- /* @__PURE__ */ (0, K.jsxs)(H, {
572
- onClick: () => {
573
- C(`clicked_links.post_id:${S}`);
574
- },
575
- children: [/* @__PURE__ */ (0, K.jsx)("div", { className: "ml-0.5 size-[9px] rounded-full bg-chart-teal opacity-50" }), "Clicked"]
576
- }),
577
- /* @__PURE__ */ (0, K.jsx)(B, { children: /* @__PURE__ */ (0, K.jsx)(V, {
578
- className: "text-xl leading-none sm:text-2xl md:text-[2.6rem]",
579
- children: j(N.clicked)
580
- }) })
581
- ]
582
- })
583
- ]
584
- }), /* @__PURE__ */ (0, K.jsxs)("div", {
585
- className: `$ mx-auto grid grid-cols-1 items-center justify-center gap-4 transition-all md:gap-0 ${Q === "grid-cols-2" && "md:grid-cols-2"} ${Q === "grid-cols-3" && "md:grid-cols-3"}`,
586
- children: [
587
- /* @__PURE__ */ (0, K.jsxs)("div", {
588
- className: `relative border-r-0 px-6 ${(_ || g) && "md:border-r"}`,
589
- children: [/* @__PURE__ */ (0, K.jsx)(R, {
590
- className: $,
591
- config: Re,
592
- data: Le,
593
- percentageLabel: "Sent",
594
- percentageValue: M(1),
595
- size: f,
596
- tooltip: !1
597
- }), (_ || g) && /* @__PURE__ */ (0, K.jsx)(je, {})]
598
- }),
599
- _ && /* @__PURE__ */ (0, K.jsxs)("div", {
600
- className: `group/block relative border-r-0 px-6 transition-all hover:bg-muted/25 ${g && "md:border-r"}`,
601
- children: [
602
- /* @__PURE__ */ (0, K.jsx)(Me, {
603
- avgValue: M(P.openedRate),
604
- dataColor: "var(--chart-blue)",
605
- value: M(N.openedRate)
606
- }),
607
- /* @__PURE__ */ (0, K.jsx)(R, {
608
- className: $,
609
- config: Be,
610
- data: ze,
611
- percentageLabel: "Open rate",
612
- percentageValue: M(N.openedRate),
613
- size: f,
614
- tooltip: !1
615
- }),
616
- g && /* @__PURE__ */ (0, K.jsx)(je, {})
617
- ]
618
- }),
619
- g && /* @__PURE__ */ (0, K.jsxs)("div", {
620
- className: "group/block relative px-6 transition-all hover:bg-muted/25",
621
- children: [/* @__PURE__ */ (0, K.jsx)(Me, {
622
- avgValue: M(P.clickedRate),
623
- dataColor: "var(--chart-teal)",
624
- value: M(N.clickedRate)
625
- }), /* @__PURE__ */ (0, K.jsx)(R, {
626
- className: $,
627
- config: He,
628
- data: Ve,
629
- percentageLabel: "Click rate",
630
- percentageValue: M(N.clickedRate),
631
- size: f,
632
- tooltip: !1
633
- })]
634
- })
635
- ]
636
- })]
637
- })]
638
- }),
639
- U && /* @__PURE__ */ (0, K.jsx)(De, { feedbackStats: L }),
640
- g && /* @__PURE__ */ (0, K.jsxs)(T, {
641
- className: "group/datalist overflow-hidden",
642
- children: [
643
- /* @__PURE__ */ (0, K.jsxs)("div", {
644
- className: "flex items-center justify-between p-6",
645
- children: [/* @__PURE__ */ (0, K.jsxs)(E, {
646
- className: "p-0",
647
- children: [/* @__PURE__ */ (0, K.jsx)(O, { children: "Newsletter clicks" }), /* @__PURE__ */ (0, K.jsx)(k, { children: "Which links resonated with your readers" })]
648
- }), /* @__PURE__ */ (0, K.jsx)(oe, {
649
- className: "mr-2",
650
- children: "Members"
651
- })]
652
- }),
653
- Z ? /* @__PURE__ */ (0, K.jsxs)(D, {
654
- className: "p-6 pt-0",
655
- children: [/* @__PURE__ */ (0, K.jsx)(v, {}), /* @__PURE__ */ (0, K.jsx)(y, { className: "mt-6" })]
656
- }) : /* @__PURE__ */ (0, K.jsxs)(D, {
657
- className: "pb-0",
658
- children: [/* @__PURE__ */ (0, K.jsx)(v, {}), F.length > 0 ? /* @__PURE__ */ (0, K.jsx)(he, {
659
- className: "",
660
- children: /* @__PURE__ */ (0, K.jsx)(pe, { children: Ee?.map((e) => {
661
- let t = N.clicked > 0 ? e.count / N.clicked : 0, n = e.link.link_id, r = e.link.title, a = e.link.to, o = e.link.edited;
662
- return /* @__PURE__ */ (0, K.jsxs)(ge, { children: [
663
- i !== n && /* @__PURE__ */ (0, K.jsx)(de, { style: { width: `${t ? Math.round(t * 100) : 0}%` } }),
664
- /* @__PURE__ */ (0, K.jsx)(fe, {
665
- className: "w-full",
666
- children: i === n ? /* @__PURE__ */ (0, K.jsxs)("div", {
667
- ref: d,
668
- className: "flex w-full items-center gap-2",
669
- children: [/* @__PURE__ */ (0, K.jsx)(ye, {
670
- ref: u,
671
- className: "z-50 h-7 w-full border-border bg-background text-sm",
672
- value: s,
673
- onChange: (e) => c(e.target.value)
674
- }), /* @__PURE__ */ (0, K.jsx)(h, {
675
- size: "sm",
676
- onClick: we,
677
- children: "Update"
678
- })]
679
- }) : /* @__PURE__ */ (0, K.jsxs)(K.Fragment, { children: [
680
- /* @__PURE__ */ (0, K.jsx)(h, {
681
- className: "mr-2 shrink-0 bg-background",
682
- size: "sm",
683
- variant: "outline",
684
- onClick: () => Se(n),
685
- children: /* @__PURE__ */ (0, K.jsx)(l, {})
686
- }),
687
- /* @__PURE__ */ (0, K.jsx)("a", {
688
- className: "block truncate font-medium hover:underline",
689
- href: a,
690
- rel: "noreferrer",
691
- target: "_blank",
692
- title: r,
693
- children: r
694
- }),
695
- o && /* @__PURE__ */ (0, K.jsx)("span", {
696
- className: "ml-1 text-gray-500",
697
- children: "(edited)"
698
- })
699
- ] })
700
- }),
701
- /* @__PURE__ */ (0, K.jsxs)(me, { children: [/* @__PURE__ */ (0, K.jsx)(le, { children: j(e.count || 0) }), /* @__PURE__ */ (0, K.jsx)(ue, { children: M(t) })] })
702
- ] }, n);
703
- }) })
704
- }) : /* @__PURE__ */ (0, K.jsx)("div", {
705
- className: "py-20 text-center text-sm text-gray-700",
706
- children: "You have no links in your post."
707
- })]
708
- }),
709
- !Z && F.length > 1 && /* @__PURE__ */ (0, K.jsx)(te, { children: /* @__PURE__ */ (0, K.jsxs)("div", {
710
- className: "flex w-full items-start justify-between gap-3",
711
- children: [/* @__PURE__ */ (0, K.jsxs)("div", {
712
- className: "mt-2 flex items-start gap-2 pl-4 text-sm text-green",
713
- children: [/* @__PURE__ */ (0, K.jsx)(p, {
714
- size: 20,
715
- strokeWidth: 1.5
716
- }), "Sent a broken link? You can update it!"]
717
- }), Te > 1 && /* @__PURE__ */ (0, K.jsx)(q, {
718
- className: "pb-0",
719
- children: /* @__PURE__ */ (0, K.jsxs)(J, { children: [/* @__PURE__ */ (0, K.jsx)(Y, {
720
- disabled: !Ie,
721
- onClick: Pe
722
- }), /* @__PURE__ */ (0, K.jsx)(X, {
723
- disabled: !Fe,
724
- onClick: Ne
725
- })] })
726
- })]
727
- }) })
728
- ]
729
- })
730
- ]
731
- }) })] });
732
- };
733
- //#endregion
734
- export { Ne as default };
735
-
736
- //# sourceMappingURL=newsletter-DAQJ1GLe.js.map