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,143 +0,0 @@
1
- import { p as e, t } from "./jsx-runtime-BfZnKD4L.js";
2
- import { H as n } from "./button-Dd8Xreln.js";
3
- //#region ../admin-x-framework/dist/utils/source-utils.js
4
- var r = {
5
- Reddit: "reddit.com",
6
- "www.reddit.com": "reddit.com",
7
- Facebook: "facebook.com",
8
- Twitter: "twitter.com",
9
- Bluesky: "bsky.app",
10
- "go.bsky.app": "bsky.app",
11
- Instagram: "instagram.com",
12
- LinkedIn: "linkedin.com",
13
- Threads: "threads.net",
14
- "Brave Search": "search.brave.com",
15
- Ecosia: "ecosia.org",
16
- Gmail: "gmail.com",
17
- Outlook: "outlook.com",
18
- "Yahoo!": "yahoo.com",
19
- "AOL Mail": "aol.com",
20
- Flipboard: "flipboard.com",
21
- Substack: "substack.com",
22
- Ghost: "ghost.org",
23
- "Ghost Explore": "ghost.org",
24
- Buffer: "buffer.com",
25
- Taboola: "taboola.com",
26
- AppNexus: "appnexus.com",
27
- Wikipedia: "wikipedia.org",
28
- Mastodon: "mastodon.social",
29
- Memeorandum: "memeorandum.com",
30
- "Ground News": "ground.news",
31
- "Apple News": "apple.com",
32
- SmartNews: "smartnews.com",
33
- "Hacker News": "news.ycombinator.com",
34
- Google: "google.com",
35
- "Google News": "news.google.com",
36
- Bing: "bing.com",
37
- DuckDuckGo: "duckduckgo.com",
38
- "newsletter-email": "static.ghost.org",
39
- newsletter: "static.ghost.org"
40
- }, i = (e) => {
41
- try {
42
- return new URL(e.startsWith("http") ? e : `https://${e}`).hostname.replace(/^www\./, "");
43
- } catch {
44
- return null;
45
- }
46
- };
47
- function a({ processedData: e, totalVisitors: t, mode: n }) {
48
- return n === "growth" ? e : e.map((e) => ({
49
- ...e,
50
- percentage: t > 0 ? e.visits / t : 0
51
- }));
52
- }
53
- var o = (e, t) => e === t ? !0 : e.endsWith(`.${t}`), s = (e, t) => {
54
- if (!e || typeof e != "string") return {
55
- domain: null,
56
- isDirectTraffic: !1
57
- };
58
- if (e === "Direct") return {
59
- domain: null,
60
- isDirectTraffic: !0
61
- };
62
- let n = t ? i(t) : null;
63
- if (n) {
64
- let t = i(e);
65
- if (t && o(t, n) || o(e, n)) return {
66
- domain: n,
67
- isDirectTraffic: !0
68
- };
69
- }
70
- let a = r[e];
71
- return a ? {
72
- domain: a,
73
- isDirectTraffic: !1
74
- } : /^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(e) ? {
75
- domain: e.replace(/^www\./, ""),
76
- isDirectTraffic: !1
77
- } : {
78
- domain: null,
79
- isDirectTraffic: !1
80
- };
81
- };
82
- function c({ data: e, mode: t, siteUrl: n, siteIcon: r, defaultSourceIconUrl: i }) {
83
- if (!e) return [];
84
- let a = /* @__PURE__ */ new Map(), o = t === "visits" ? 0 : void 0, c = t === "growth" ? {
85
- free_members: 0,
86
- paid_members: 0,
87
- mrr: 0
88
- } : void 0;
89
- if (e.forEach((e) => {
90
- let { domain: r, isDirectTraffic: l } = s(e.source, n), u = Number(e.visits || 0);
91
- if (l || !e.source || e.source === "") t === "visits" ? o += u : t === "growth" && c && (c.free_members += e.free_members || 0, c.paid_members += e.paid_members || 0, c.mrr += e.mrr || 0);
92
- else {
93
- let n = String(e.source), o = r ? `https://www.faviconextractor.com/favicon/${r}?larger=true` : i, s = r ? `https://${r}` : void 0;
94
- if (a.has(n)) {
95
- let r = a.get(n);
96
- r.visits += u, t === "growth" && (r.free_members = (r.free_members || 0) + (e.free_members || 0), r.paid_members = (r.paid_members || 0) + (e.paid_members || 0), r.mrr = (r.mrr || 0) + (e.mrr || 0));
97
- } else {
98
- let r = {
99
- source: n,
100
- visits: u,
101
- isDirectTraffic: !1,
102
- iconSrc: o,
103
- displayName: n,
104
- linkUrl: s
105
- };
106
- t === "growth" && (r.free_members = e.free_members || 0, r.paid_members = e.paid_members || 0, r.mrr = e.mrr || 0), a.set(n, r);
107
- }
108
- }
109
- }), t === "visits" ? o > 0 : c && (c.free_members > 0 || c.paid_members > 0 || c.mrr > 0)) {
110
- let e = {
111
- source: "Direct",
112
- visits: t === "visits" ? o : 0,
113
- isDirectTraffic: !0,
114
- iconSrc: r || i,
115
- displayName: "Direct",
116
- linkUrl: void 0
117
- };
118
- t === "growth" && c && (e.free_members = c.free_members, e.paid_members = c.paid_members, e.mrr = c.mrr), a.set("Direct", e);
119
- }
120
- let l = Array.from(a.values());
121
- return t === "growth" ? l.sort((e, t) => {
122
- let n = (e.mrr || 0) * 100 + (e.paid_members || 0) * 10 + (e.free_members || 0);
123
- return (t.mrr || 0) * 100 + (t.paid_members || 0) * 10 + (t.free_members || 0) - n;
124
- }) : l.sort((e, t) => t.visits - e.visits);
125
- }
126
- //#endregion
127
- //#region src/views/PostAnalytics/components/source-icon.tsx
128
- e();
129
- var l = t(), u = ({ defaultSourceIconUrl: e, displayName: t, iconSrc: r }) => /* @__PURE__ */ (0, l.jsx)(l.Fragment, { children: t.trim().toLowerCase().endsWith("newsletter") ? /* @__PURE__ */ (0, l.jsx)(n, {
130
- "aria-label": "Newsletter",
131
- className: "size-4 text-muted-foreground"
132
- }) : /* @__PURE__ */ (0, l.jsx)("img", {
133
- alt: "",
134
- className: "size-4",
135
- src: r,
136
- onError: (t) => {
137
- t.currentTarget.src = e;
138
- }
139
- }) });
140
- //#endregion
141
- export { a as n, c as r, u as t };
142
-
143
- //# sourceMappingURL=source-icon-Bs6o84W3.js.map
@@ -1,92 +0,0 @@
1
- import { p as e, t } from "./jsx-runtime-BfZnKD4L.js";
2
- import { i as n, r } from "./hooks-gZAmj4Al.js";
3
- import { t as i } from "./button-Dd8Xreln.js";
4
- import { s as a } from "./shade-app-DLbeExcd-NeEZjE3R.js";
5
- //#region src/views/PostAnalytics/components/kpi-card.tsx
6
- e();
7
- var o = t(), s = ({ children: e, className: t, ...n }) => /* @__PURE__ */ (0, o.jsx)("div", {
8
- className: a("flex flex-col", t),
9
- ...n,
10
- children: e
11
- }), c = ({ children: e, className: t, ...n }) => /* @__PURE__ */ (0, o.jsx)("div", {
12
- className: a("flex h-[22px] items-center gap-1.5 text-base font-medium transition-all [&_svg]:size-4", t, n.onClick && "hover:cursor-pointer hover:text-black dark:hover:text-white"),
13
- ...n,
14
- children: e
15
- }), l = ({ children: e, className: t, ...n }) => /* @__PURE__ */ (0, o.jsx)("div", {
16
- className: a("mt-0.5 text-[26px] leading-none font-semibold tracking-tighter text-foreground", t),
17
- ...n,
18
- children: e
19
- }), u = ({ children: e, className: t, ...n }) => /* @__PURE__ */ (0, o.jsx)(i, {
20
- className: a("absolute top-4 right-4 z-50 hidden translate-x-10 text-black opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100 md:visible! md:block! dark:text-white/80 dark:hover:text-white", t),
21
- size: "sm",
22
- variant: "outline",
23
- ...n,
24
- children: e
25
- }), d = ({ children: e, className: t, ...n }) => /* @__PURE__ */ (0, o.jsx)("div", {
26
- className: a("group relative isolate flex flex-col items-start gap-2 border-r border-border px-6 py-5 text-muted-foreground transition-all last:border-none", n.onClick ? "cursor-pointer hover:bg-accent/50 hover:text-foreground" : "cursor-auto", t),
27
- ...n,
28
- children: e
29
- });
30
- //#endregion
31
- //#region src/views/members/member-route.ts
32
- function f({ filter: e } = {}) {
33
- let t = new URLSearchParams();
34
- e && t.set("filter", e);
35
- let n = t.toString();
36
- return n ? `/members?${n}` : "/members";
37
- }
38
- //#endregion
39
- //#region ../admin-x-framework/dist/api/stats.js
40
- var p = "TopContentResponseType", m = "MemberCountHistoryResponseType", h = "TopPostsStatsResponseType", g = "PostReferrersResponseType", _ = "NewsletterStatsResponseType", v = "NewsletterSubscriberStatsResponseType", y = "PostGrowthStatsResponseType", b = "MrrHistoryResponseType", x = "TopPostViewsResponseType", S = "SubscriptionStatsResponseType";
41
- r({
42
- dataType: p,
43
- path: "/stats/top-content/"
44
- }), r({
45
- dataType: m,
46
- path: "/stats/member_count/"
47
- }), r({
48
- dataType: h,
49
- path: "/stats/top-posts/"
50
- });
51
- var C = n({
52
- dataType: g,
53
- path: (e) => `/stats/posts/${e}/top-referrers`
54
- }), w = n({
55
- dataType: y,
56
- path: (e) => `/stats/posts/${e}/growth`
57
- }), T = r({
58
- dataType: b,
59
- path: "/stats/mrr/"
60
- });
61
- r({
62
- dataType: S,
63
- path: "/stats/subscriptions/"
64
- }), n({
65
- dataType: "PostStatsResponseType",
66
- path: (e) => `/stats/posts/${e}/stats/`
67
- }), r({
68
- dataType: x,
69
- path: "/stats/top-posts-views/"
70
- }), r({
71
- dataType: _,
72
- path: "/stats/newsletter-stats/",
73
- defaultSearchParams: {}
74
- });
75
- var E = r({
76
- dataType: _,
77
- path: "/stats/newsletter-basic-stats/",
78
- defaultSearchParams: {}
79
- }), D = r({
80
- dataType: _,
81
- path: "/stats/newsletter-click-stats/",
82
- defaultSearchParams: {}
83
- });
84
- r({
85
- dataType: v,
86
- path: "/stats/subscriber-count/",
87
- defaultSearchParams: {}
88
- });
89
- //#endregion
90
- export { C as a, s as c, l as d, w as i, c as l, E as n, f as o, D as r, d as s, T as t, u };
91
-
92
- //# sourceMappingURL=stats-B1Z8H0JT.js.map
@@ -1,77 +0,0 @@
1
- import { f as e, p as t, t as n } from "./jsx-runtime-BfZnKD4L.js";
2
- import { t as r } from "./button-Dd8Xreln.js";
3
- import { o as i, s as a } from "./shade-app-DLbeExcd-NeEZjE3R.js";
4
- //#region ../shade/es/components/ui/table.js
5
- t();
6
- var o = n(), s = e(({ className: e, ...t }, n) => /* @__PURE__ */ (0, o.jsx)("div", {
7
- className: "relative w-full",
8
- children: /* @__PURE__ */ (0, o.jsx)("table", {
9
- ref: n,
10
- className: a("w-full caption-bottom text-base", e),
11
- ...t
12
- })
13
- }));
14
- s.displayName = "Table";
15
- var c = e(({ className: e, ...t }, n) => /* @__PURE__ */ (0, o.jsx)("thead", {
16
- ref: n,
17
- className: a("[&_tr:hover:before]:bg-transparent", e),
18
- ...t
19
- }));
20
- c.displayName = "TableHeader";
21
- var l = e(({ className: e, ...t }, n) => /* @__PURE__ */ (0, o.jsx)("tbody", {
22
- ref: n,
23
- className: a("", e),
24
- ...t
25
- }));
26
- l.displayName = "TableBody";
27
- var u = e(({ className: e, ...t }, n) => /* @__PURE__ */ (0, o.jsx)("tfoot", {
28
- ref: n,
29
- className: a("border-b bg-muted/50 font-medium [&>tr]:last:border-b-0", e),
30
- ...t
31
- }));
32
- u.displayName = "TableFooter";
33
- var d = e(({ className: e, ...t }, n) => /* @__PURE__ */ (0, o.jsx)("tr", {
34
- ref: n,
35
- className: a("group relative border-b data-[state=selected]:bg-muted", e),
36
- ...t
37
- }));
38
- d.displayName = "TableRow";
39
- var f = i("relative align-middle", {
40
- variants: { variant: {
41
- default: "h-(--control-height) px-2 text-left text-sm font-medium tracking-wide text-text-secondary [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
42
- cardhead: "text-base font-normal [&>div]:px-0"
43
- } },
44
- defaultVariants: { variant: "default" }
45
- }), p = e(({ className: e, variant: t, ...n }, r) => /* @__PURE__ */ (0, o.jsx)("th", {
46
- ref: r,
47
- className: a(f({
48
- variant: t,
49
- className: e
50
- })),
51
- ...n
52
- }));
53
- p.displayName = "TableHead";
54
- var m = ({ className: e, children: t, ...n }) => /* @__PURE__ */ (0, o.jsx)(r, {
55
- className: a("gap-1 px-0 text-right text-sm leading-4 tracking-wide text-text-secondary uppercase hover:bg-transparent [&_svg]:size-4", e),
56
- size: "sm",
57
- variant: "ghost",
58
- ...n,
59
- children: t
60
- });
61
- m.displayName = "TableHeadButton";
62
- var h = e(({ className: e, ...t }, n) => /* @__PURE__ */ (0, o.jsx)("td", {
63
- ref: n,
64
- className: a("relative p-2.5 align-middle group-hover:bg-table-row-hover [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", e),
65
- ...t
66
- }));
67
- h.displayName = "TableCell";
68
- var g = e(({ className: e, ...t }, n) => /* @__PURE__ */ (0, o.jsx)("caption", {
69
- ref: n,
70
- className: a("mt-4 text-base text-muted-foreground", e),
71
- ...t
72
- }));
73
- g.displayName = "TableCaption";
74
- //#endregion
75
- export { c as a, p as i, l as n, d as o, h as r, s as t };
76
-
77
- //# sourceMappingURL=table-CbJ9bOpM.js.map
@@ -1,242 +0,0 @@
1
- import { E as e, b as t, f as n, p as r, t as i, u as a, v as o } from "./jsx-runtime-BfZnKD4L.js";
2
- import { Ft as s, Nt as c, Ot as l, Pt as u, jt as d, kt as f } from "./button-Dd8Xreln.js";
3
- import { F as p, I as m, L as h, P as g, u as _ } from "./skeleton-CO0qCdQF.js";
4
- import { o as v, s as y } from "./shade-app-DLbeExcd-NeEZjE3R.js";
5
- //#region ../../node_modules/.pnpm/@radix-ui+react-tabs@1.1.16_@types+react-dom@18.3.7_@types+react@18.3.31__@types+react@_80fa082efb8fcddc83bf2006e312ed1e/node_modules/@radix-ui/react-tabs/dist/index.mjs
6
- r();
7
- var b = i(), x = "Tabs", [S, C] = c(x, [m]), w = m(), [T, E] = S(x), D = n((e, t) => {
8
- let { __scopeTabs: n, value: r, onValueChange: i, defaultValue: a, orientation: o = "horizontal", dir: c, activationMode: l = "automatic", ...u } = e, p = h(c), [m, g] = f({
9
- prop: r,
10
- onChange: i,
11
- defaultProp: a ?? "",
12
- caller: x
13
- });
14
- return /* @__PURE__ */ (0, b.jsx)(T, {
15
- scope: n,
16
- baseId: d(),
17
- value: m,
18
- onValueChange: g,
19
- orientation: o,
20
- dir: p,
21
- activationMode: l,
22
- children: /* @__PURE__ */ (0, b.jsx)(s.div, {
23
- dir: p,
24
- "data-orientation": o,
25
- ...u,
26
- ref: t
27
- })
28
- });
29
- });
30
- D.displayName = x;
31
- var O = "TabsList", k = n((e, t) => {
32
- let { __scopeTabs: n, loop: r = !0, ...i } = e, a = E(O, n), o = w(n);
33
- return /* @__PURE__ */ (0, b.jsx)(p, {
34
- asChild: !0,
35
- ...o,
36
- orientation: a.orientation,
37
- dir: a.dir,
38
- loop: r,
39
- children: /* @__PURE__ */ (0, b.jsx)(s.div, {
40
- role: "tablist",
41
- "aria-orientation": a.orientation,
42
- ...i,
43
- ref: t
44
- })
45
- });
46
- });
47
- k.displayName = O;
48
- var A = "TabsTrigger", j = n((e, t) => {
49
- let { __scopeTabs: n, value: r, disabled: i = !1, ...a } = e, o = E(A, n), c = w(n), l = P(o.baseId, r), d = F(o.baseId, r), f = r === o.value;
50
- return /* @__PURE__ */ (0, b.jsx)(g, {
51
- asChild: !0,
52
- ...c,
53
- focusable: !i,
54
- active: f,
55
- children: /* @__PURE__ */ (0, b.jsx)(s.button, {
56
- type: "button",
57
- role: "tab",
58
- "aria-selected": f,
59
- "aria-controls": d,
60
- "data-state": f ? "active" : "inactive",
61
- "data-disabled": i ? "" : void 0,
62
- disabled: i,
63
- id: l,
64
- ...a,
65
- ref: t,
66
- onMouseDown: u(e.onMouseDown, (e) => {
67
- !i && e.button === 0 && e.ctrlKey === !1 ? o.onValueChange(r) : e.preventDefault();
68
- }),
69
- onKeyDown: u(e.onKeyDown, (e) => {
70
- [" ", "Enter"].includes(e.key) && o.onValueChange(r);
71
- }),
72
- onFocus: u(e.onFocus, () => {
73
- let e = o.activationMode !== "manual";
74
- !f && !i && e && o.onValueChange(r);
75
- })
76
- })
77
- });
78
- });
79
- j.displayName = A;
80
- var M = "TabsContent", N = n((n, r) => {
81
- let { __scopeTabs: i, value: a, forceMount: o, children: c, ...u } = n, d = E(M, i), f = P(d.baseId, a), p = F(d.baseId, a), m = a === d.value, h = e(m);
82
- return t(() => {
83
- let e = requestAnimationFrame(() => h.current = !1);
84
- return () => cancelAnimationFrame(e);
85
- }, []), /* @__PURE__ */ (0, b.jsx)(l, {
86
- present: o || m,
87
- children: ({ present: e }) => /* @__PURE__ */ (0, b.jsx)(s.div, {
88
- "data-state": m ? "active" : "inactive",
89
- "data-orientation": d.orientation,
90
- role: "tabpanel",
91
- "aria-labelledby": f,
92
- hidden: !e,
93
- id: p,
94
- tabIndex: 0,
95
- ...u,
96
- ref: r,
97
- style: {
98
- ...n.style,
99
- animationDuration: h.current ? "0s" : void 0
100
- },
101
- children: e && c
102
- })
103
- });
104
- });
105
- N.displayName = M;
106
- function P(e, t) {
107
- return `${e}-trigger-${t}`;
108
- }
109
- function F(e, t) {
110
- return `${e}-content-${t}`;
111
- }
112
- var I = D, L = k, R = j, z = N;
113
- //#endregion
114
- //#region ../shade/es/components/ui/tabs.js
115
- r();
116
- var B = a("segmented");
117
- v("", {
118
- variants: { variant: {
119
- segmented: "",
120
- "segmented-sm": "",
121
- button: "",
122
- "button-sm": "",
123
- underline: "",
124
- navbar: "",
125
- pill: "",
126
- kpis: ""
127
- } },
128
- defaultVariants: { variant: "segmented" }
129
- });
130
- var V = n(({ variant: e = "segmented", ...t }, n) => /* @__PURE__ */ (0, b.jsx)(B.Provider, {
131
- value: e,
132
- children: /* @__PURE__ */ (0, b.jsx)(I, {
133
- ref: n,
134
- ...t
135
- })
136
- }));
137
- V.displayName = I.displayName;
138
- var H = v("inline-flex items-center text-muted-foreground", {
139
- variants: { variant: {
140
- segmented: "h-(--control-height) rounded-lg bg-muted px-[3px]",
141
- "segmented-sm": "h-8 rounded-lg bg-muted px-[3px]",
142
- button: "gap-2",
143
- "button-sm": "gap-1",
144
- underline: "w-full gap-5 border-b border-border-default",
145
- navbar: "h-[52px] items-end gap-6",
146
- pill: "-ml-0.5 h-[30px] gap-px",
147
- kpis: "border-b ring-0"
148
- } },
149
- defaultVariants: { variant: "segmented" }
150
- }), U = n(({ className: e, ...t }, n) => {
151
- let r = o(B);
152
- return /* @__PURE__ */ (0, b.jsx)(L, {
153
- ref: n,
154
- className: y(H({
155
- variant: r,
156
- className: e
157
- })),
158
- ...t
159
- });
160
- });
161
- U.displayName = L.displayName;
162
- var W = v("inline-flex items-center justify-center px-3 py-1 whitespace-nowrap ring-offset-background transition-all focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground [&_svg]:size-4 [&_svg]:shrink-0", {
163
- variants: { variant: {
164
- segmented: "h-7 rounded-md text-control font-medium data-[state=active]:shadow-md",
165
- "segmented-sm": "h-[26px] rounded-md text-sm font-medium data-[state=active]:shadow-md",
166
- button: "h-(--control-height) gap-1.5 rounded-md py-2 text-control font-normal hover:bg-muted data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-medium dark:hover:bg-tab-hover dark:data-[state=active]:bg-tab-active dark:data-[state=active]:hover:bg-tab-active",
167
- "button-sm": "h-6 gap-1.5 rounded-md p-2 text-sm font-normal text-text-secondary hover:bg-muted data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-medium data-[state=active]:text-foreground dark:hover:bg-tab-hover dark:data-[state=active]:bg-tab-active dark:data-[state=active]:hover:bg-tab-active",
168
- underline: "relative h-9 px-0 text-control font-semibold text-text-secondary after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:content-[\"\"] hover:after:opacity-10 data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:after:opacity-100!",
169
- navbar: "relative h-[52px] px-px text-control font-semibold text-muted-foreground after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:content-[\"\"] hover:text-foreground data-[state=active]:bg-transparent data-[state=active]:text-foreground data-[state=active]:after:opacity-100!",
170
- pill: "relative h-[30px] rounded-md px-3 text-control font-medium text-text-secondary hover:text-foreground data-[state=active]:bg-muted-foreground/10 data-[state=active]:font-semibold data-[state=active]:text-foreground dark:hover:bg-tab-hover dark:data-[state=active]:bg-tab-active dark:data-[state=active]:hover:bg-tab-active",
171
- kpis: "relative h-full! items-start! rounded-none border-border bg-transparent px-6 py-5 text-foreground ring-0 transition-all after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:content-[\"\"] first:rounded-tl-md last:rounded-tr-md hover:bg-interactive-hover data-[state=active]:bg-transparent data-[state=active]:after:opacity-100 [&:not(:last-child)]:border-r [&[data-state=active]_[data-type=\"value\"]]:text-foreground"
172
- } },
173
- defaultVariants: { variant: "segmented" }
174
- }), G = n(({ className: e, ...t }, n) => {
175
- let r = o(B);
176
- return /* @__PURE__ */ (0, b.jsx)(R, {
177
- ref: n,
178
- className: y(W({
179
- variant: r,
180
- className: e
181
- })),
182
- ...t
183
- });
184
- });
185
- G.displayName = R.displayName;
186
- var K = ({ className: e = "", children: t }) => /* @__PURE__ */ (0, b.jsx)("span", {
187
- className: `mt-px ml-1.5 flex h-5 items-center justify-center rounded-full bg-surface-elevated px-1.5 py-0 text-sm leading-[21px] font-semibold text-text-secondary ${e}`,
188
- children: t
189
- });
190
- K.displayName = "TabsTriggerCount";
191
- var q = v("ring-offset-background focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-2 focus-visible:outline-hidden", {
192
- variants: { variant: {
193
- segmented: "",
194
- "segmented-sm": "",
195
- button: "",
196
- "button-sm": "",
197
- underline: "",
198
- navbar: "",
199
- pill: "",
200
- kpis: "ring-0"
201
- } },
202
- defaultVariants: { variant: "segmented" }
203
- }), J = n(({ className: e, ...t }, n) => {
204
- let r = o(B);
205
- return /* @__PURE__ */ (0, b.jsx)(z, {
206
- ref: n,
207
- className: y(q({
208
- variant: r,
209
- className: e
210
- })),
211
- ...t
212
- });
213
- });
214
- J.displayName = z.displayName;
215
- var Y = n(({ children: e, className: t, ...n }, r) => {
216
- let i = o(B);
217
- return /* @__PURE__ */ (0, b.jsxs)("div", {
218
- className: "relative rounded-md hover:bg-muted",
219
- children: [/* @__PURE__ */ (0, b.jsx)(R, {
220
- ref: r,
221
- className: y(W({
222
- variant: i,
223
- className: t
224
- })),
225
- ...n,
226
- children: /* @__PURE__ */ (0, b.jsx)("div", {
227
- className: "flex items-center gap-2",
228
- children: e
229
- })
230
- }), /* @__PURE__ */ (0, b.jsx)(_, {
231
- className: "absolute inset-0 size-full cursor-pointer",
232
- onClick: (e) => {
233
- e.preventDefault();
234
- }
235
- })]
236
- });
237
- });
238
- Y.displayName = "TabsDropdownTrigger";
239
- //#endregion
240
- export { G as i, J as n, U as r, V as t };
241
-
242
- //# sourceMappingURL=tabs-BvzzwQ4P.js.map