ghost 6.61.0 → 6.62.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 (472) hide show
  1. package/components/ghost-storage-base-3.0.0.tgz +0 -0
  2. package/components/tryghost-adapter-base-cache-0.2.0.tgz +0 -0
  3. package/components/tryghost-adapter-base-jobs-0.0.0.tgz +0 -0
  4. package/components/tryghost-adapter-base-redirects-0.0.0.tgz +0 -0
  5. package/components/tryghost-adapter-base-route-settings-0.0.0.tgz +0 -0
  6. package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
  7. package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
  8. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  9. package/components/tryghost-checkout-0.0.0.tgz +0 -0
  10. package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
  11. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  12. package/components/tryghost-kg-card-factory-5.2.4.tgz +0 -0
  13. package/components/tryghost-kg-clean-basic-html-4.3.4.tgz +0 -0
  14. package/components/tryghost-kg-converters-1.2.5.tgz +0 -0
  15. package/components/tryghost-kg-default-cards-10.3.5.tgz +0 -0
  16. package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
  17. package/components/tryghost-kg-default-transforms-1.3.4.tgz +0 -0
  18. package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
  19. package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
  20. package/components/tryghost-kg-markdown-html-renderer-7.2.4.tgz +0 -0
  21. package/components/tryghost-kg-utils-1.1.4.tgz +0 -0
  22. package/components/tryghost-nql-string-0.0.0.tgz +0 -0
  23. package/components/tryghost-parse-email-address-0.0.0.tgz +0 -0
  24. package/content/settings/README.md +1 -1
  25. package/content/themes/casper/.gitignore +28 -0
  26. package/content/themes/casper/assets/built/casper.js +1 -1
  27. package/content/themes/casper/assets/built/screen.css +1 -1
  28. package/content/themes/casper/assets/css/screen.css +2 -1
  29. package/content/themes/casper/assets/js/lightbox.js +63 -46
  30. package/content/themes/casper/package.json +6 -6
  31. package/content/themes/casper/page.hbs +1 -0
  32. package/content/themes/casper/post.hbs +1 -0
  33. package/content/themes/source/.gitignore +28 -0
  34. package/content/themes/source/assets/built/screen.css +1 -1
  35. package/content/themes/source/assets/built/source.js +1 -1
  36. package/content/themes/source/assets/css/screen.css +2 -1
  37. package/content/themes/source/assets/js/lightbox.js +62 -45
  38. package/content/themes/source/assets/js/main.js +2 -2
  39. package/content/themes/source/package.json +4 -4
  40. package/content/themes/source/partials/feature-image.hbs +1 -0
  41. package/core/boot.js +54 -22
  42. package/core/built/admin/assets/Combination-B0l4MKVh.js +41 -0
  43. package/core/built/admin/assets/InterVariable-DiVDrmQJ.woff2 +0 -0
  44. package/core/built/admin/assets/InterVariable-Italic-FCBEiFp6.woff2 +0 -0
  45. package/core/built/admin/assets/{about-Bve7IJS2.js → about-Dyae_UT6.js} +1 -1
  46. package/core/built/admin/assets/account-migration-CESa0mnX.js +1 -0
  47. package/core/built/admin/assets/activitypub/{account-migration-C-aej4x_.js → account-migration-By69CgCp.js} +16 -16
  48. package/core/built/admin/assets/activitypub/activitypub.js +9 -9
  49. package/core/built/admin/assets/activitypub/{bluesky-sharing-BXkA5mqV.js → bluesky-sharing-BJcPMrDd.js} +36 -36
  50. package/core/built/admin/assets/activitypub/{content-formatters-CHcyMFk4.js → content-formatters-3rTHg3mp.js} +3 -3
  51. package/core/built/admin/assets/activitypub/{domain-B3ihkPde.js → domain-DUR4xSkV.js} +121 -121
  52. package/core/built/admin/assets/activitypub/{edit-profile-DsZM3rTX.js → edit-profile-BqtfzxCp.js} +40 -40
  53. package/core/built/admin/assets/activitypub/{explore-BodNrZgR.js → explore-BxuJd-J4.js} +26 -26
  54. package/core/built/admin/assets/activitypub/{feed-PwH1iJ84.js → feed-BM1TcksA.js} +48 -48
  55. package/core/built/admin/assets/activitypub/{field-D06-kmOJ.js → field-Dn7HHx2-.js} +2 -2
  56. package/core/built/admin/assets/activitypub/inbox-CCjkuow2.js +1284 -0
  57. package/core/built/admin/assets/activitypub/label-1AA_s9Fa.js +16 -0
  58. package/core/built/admin/assets/activitypub/layout-2-0bw6HN.js +1 -0
  59. package/core/built/admin/assets/activitypub/{moderation-D1Yapsod.js → moderation-CnmxEB8w.js} +91 -91
  60. package/core/built/admin/assets/activitypub/{note-C5zjqq5C.js → note-ZKc_Bnba.js} +23 -23
  61. package/core/built/admin/assets/activitypub/{notifications-B9p8eCHD.js → notifications-CB2tJZau.js} +48 -48
  62. package/core/built/admin/assets/activitypub/{onboarding-CNelD_uF.js → onboarding-BsJ9E5qf.js} +2 -2
  63. package/core/built/admin/assets/activitypub/{onboarding-mat5Hrl0.js → onboarding-CSUJJIlh.js} +2 -2
  64. package/core/built/admin/assets/activitypub/{preferences-BCqUdC3v.js → preferences-0-JZnUkI.js} +1519 -1519
  65. package/core/built/admin/assets/activitypub/{profile-BRCWoFem.js → profile-C35cFIhM.js} +183 -183
  66. package/core/built/admin/assets/activitypub/{routes-BSXT992i.js → routes-BD4vscyc.js} +740 -731
  67. package/core/built/admin/assets/activitypub/settings-BsMROdqh.js +315 -0
  68. package/core/built/admin/assets/activitypub/{site-DHoMupSB.js → site-O0RL9YCN.js} +2 -2
  69. package/core/built/admin/assets/activitypub/{step-1-B-YfsVeO.js → step-1-BMSx7c_X.js} +4 -4
  70. package/core/built/admin/assets/activitypub/{step-3-D6BFMXL_.js → step-3-CLlOZTyt.js} +3 -3
  71. package/core/built/admin/assets/activitypub/{tabs-GpNecvfB.js → tabs-Dxk-b9M-.js} +306 -306
  72. package/core/built/admin/assets/activitypub/{topic-filter-BPDeQQys.js → topic-filter-5yZH6tId.js} +2 -2
  73. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-BoVOxXkV.js → use-activity-pub-queries-CV50qe03.js} +2 -2
  74. package/core/built/admin/assets/activitypub/{use-reply-chain-data-wVBX7swM.js → use-reply-chain-data-Cbvzgjzd.js} +30 -30
  75. package/core/built/admin/assets/activitypub/{users-CoX6FT_K.js → users-BjcoP_HC.js} +7 -5
  76. package/core/built/admin/assets/add-integration-modal-BlF6rs_f.js +1 -0
  77. package/core/built/admin/assets/add-newsletter-modal-CglVQqah.js +1 -0
  78. package/core/built/admin/assets/add-recommendation-modal-wz7BsuaG.js +1 -0
  79. package/core/built/admin/assets/analytics-C4HE1gBg.js +1 -0
  80. package/core/built/admin/assets/{announcement-bar-modal-DM3cYOpo.js → announcement-bar-modal-Ci4zz8jO.js} +1 -1
  81. package/core/built/admin/assets/{api-keys-BLm2NDBh.js → api-keys-Ck-Yteiv.js} +1 -1
  82. package/core/built/admin/assets/{audience-9mwU5TW6.js → audience-CtbA54Sn.js} +1 -1
  83. package/core/built/admin/assets/{automated-emails-te1D5kq-.js → automated-emails-D5VVMND9.js} +1 -1
  84. package/core/built/admin/assets/automations-CzKt5fb8.js +1 -0
  85. package/core/built/admin/assets/bluesky-sharing-BEtJ_gL_.js +1 -0
  86. package/core/built/admin/assets/{breadcrumb-DLiqCyFc.js → breadcrumb-zUrZrBtW.js} +1 -1
  87. package/core/built/admin/assets/{button-B2jcu6bk.js → button-eNMKQWXr.js} +1 -1
  88. package/core/built/admin/assets/{chart-helpers-Fo3bUL3K.js → chart-helpers-CfBKt0vT.js} +1 -1
  89. package/core/built/admin/assets/{checkbox-BfKktMph.js → checkbox-CgOn_tKW.js} +1 -1
  90. package/core/built/admin/assets/{chunk.524.60ca4692d91c6022042f.js → chunk.524.a697dee88db67fdf6021.js} +4 -4
  91. package/core/built/admin/assets/{chunk.582.525c7617c2d9e94c940a.js → chunk.582.5ed5d124cfca9c259b9c.js} +6 -6
  92. package/core/built/admin/assets/{chunk.896.435fe0637944d4a69810.js → chunk.598.7e056fabb47ce7dbd73f.js} +14 -14
  93. package/core/built/admin/assets/{code-editor-view-CYVu4EW6.js → code-editor-view-BYNoAoNV.js} +1 -1
  94. package/core/built/admin/assets/{code-editor-view-DCQJxsfU.js → code-editor-view-K2wI-I5f.js} +1 -1
  95. package/core/built/admin/assets/color-picker-Ddw80xX6.js +3 -0
  96. package/core/built/admin/assets/color-picker-field-D9nUhvA7.js +1 -0
  97. package/core/built/admin/assets/combobox-w9j8PPQT.js +1 -0
  98. package/core/built/admin/assets/command-BfpHORBv.js +1 -0
  99. package/core/built/admin/assets/comments-BLmCmyCs.js +1 -0
  100. package/core/built/admin/assets/confirmation-context-CBM8G0Vj.js +1 -0
  101. package/core/built/admin/assets/{content-api-modal-CyQEC3fr.js → content-api-modal-TXRz3U7S.js} +1 -1
  102. package/core/built/admin/assets/context-menu-_QMdd3kp.js +1 -0
  103. package/core/built/admin/assets/{copy-field-B3M1s78L.js → copy-field-6N01S07E.js} +1 -1
  104. package/core/built/admin/assets/create-ghost-browse-value-source-qIBymvvf.js +1 -0
  105. package/core/built/admin/assets/custom-field-type-option-BddFlJFa.js +1 -0
  106. package/core/built/admin/assets/custom-integration-modal-DmNquxUV.js +1 -0
  107. package/core/built/admin/assets/{date-range-select-DD2RKkgB.js → date-range-select-uvz_DtPh.js} +1 -1
  108. package/core/built/admin/assets/design-and-theme-modal-BSmo12Op.js +2 -0
  109. package/core/built/admin/assets/dirty-confirm-dialog-BZ1iytEd.js +1 -0
  110. package/core/built/admin/assets/{disabled-sources-indicator-Cvy47bE2.js → disabled-sources-indicator-DMRrxsiJ.js} +1 -1
  111. package/core/built/admin/assets/dist-Dcsslyo72.js +1 -0
  112. package/core/built/admin/assets/domain-BNYrt0aD.js +1 -0
  113. package/core/built/admin/assets/dropzone-D7nFdAe5.js +5 -0
  114. package/core/built/admin/assets/edit-profile-C5Asm4LA.js +1 -0
  115. package/core/built/admin/assets/editor-REokrzci.js +8 -0
  116. package/core/built/admin/assets/{embed-signup-form-modal-DeBMLxlL.js → embed-signup-form-modal-Ds6mPEi5.js} +1 -1
  117. package/core/built/admin/assets/en-B1jX3WMs.js +1 -0
  118. package/core/built/admin/assets/explore-UY10Egsp.js +1 -0
  119. package/core/built/admin/assets/feature-image-placeholder-D1iF_8bc.js +1 -0
  120. package/core/built/admin/assets/feed-81C8mJWR.js +1 -0
  121. package/core/built/admin/assets/{field-Cj8lmDOo.js → field-Dihp5p18.js} +1 -1
  122. package/core/built/admin/assets/filter-bar-Da1qxybu.js +1 -0
  123. package/core/built/admin/assets/filter-sources-BO9xUPj7.js +1 -0
  124. package/core/built/admin/assets/filters-CRUWecfY.js +1 -0
  125. package/core/built/admin/assets/filters-DirqNXjH.js +1 -0
  126. package/core/built/admin/assets/first-promoter-modal-CT6MxYZb.js +1 -0
  127. package/core/built/admin/assets/{ghost-c8807202a07c20030acb719ee0114815.css → ghost-8eabfc1ece81b03cf7b90780d31487e8.css} +1 -1
  128. package/core/built/admin/assets/{ghost-3894eedcc6968f658578c0abfe942aab.js → ghost-c2848508292937415f20f5a830eea59e.js} +31 -28
  129. package/core/built/admin/assets/{ghost-dark-fbf1e384aaef3ae315e540f0eb7373a7.css → ghost-dark-a7bebe2c561f55369dcf29f4c820f7ff.css} +1 -1
  130. package/core/built/admin/assets/gift-link-modal-CQVAye17.js +1 -0
  131. package/core/built/admin/assets/growth-BWIu-6xj.js +3 -0
  132. package/core/built/admin/assets/growth-DU29oxeA.js +1 -0
  133. package/core/built/admin/assets/history-modal-CFd1Hvx6.js +1 -0
  134. package/core/built/admin/assets/{html-field-C8qVGGC1.js → html-field-CJBCLTvv.js} +1 -1
  135. package/core/built/admin/assets/{images-h8VZEQ9k.js → images-scfkWZiK.js} +1 -1
  136. package/core/built/admin/assets/{inbox-BYd1M06Q.js → inbox-Mcp4DXZN.js} +14 -14
  137. package/core/built/admin/assets/index-6MkPdCtr.js +4 -0
  138. package/core/built/admin/assets/index-Bn7QhcZu.css +2 -0
  139. package/core/built/admin/assets/index.es-CNnuNH0d.js +1 -0
  140. package/core/built/admin/assets/{input-group-D8sCXRF5.js → input-group-CMhe2DvY.js} +1 -1
  141. package/core/built/admin/assets/invite-user-modal-DfheMXs0.js +1 -0
  142. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +14 -14
  143. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +3 -3
  144. package/core/built/admin/assets/koenig-lexical/style.css +1 -1
  145. package/core/built/admin/assets/{koenig-lexical-_-IsVI7E.js → koenig-lexical-DBSqAuiI.js} +3 -3
  146. package/core/built/admin/assets/koenig-loader-aFQNlJlD.js +2 -0
  147. package/core/built/admin/assets/{kpi-card-DZQk_0W8.js → kpi-card-DBRMfGOW.js} +1 -1
  148. package/core/built/admin/assets/{kpi-card-DW_2y3ug.js → kpi-card-DFafD1qq.js} +1 -1
  149. package/core/built/admin/assets/{kpi-helpers-PueTKuA6.js → kpi-helpers-Cv8i8hns.js} +1 -1
  150. package/core/built/admin/assets/{kpi-tabs-CojDs-Qz.js → kpi-tabs-BJItvLYm.js} +1 -1
  151. package/core/built/admin/assets/{label-DjbT91GM.js → label-BnSCvffu.js} +1 -1
  152. package/core/built/admin/assets/label-picker-KVoo91sh.js +1 -0
  153. package/core/built/admin/assets/layout-Bjv2Ll-5.js +1 -0
  154. package/core/built/admin/assets/member-custom-fields-DDQV6QeG.js +1 -0
  155. package/core/built/admin/assets/member-detail-CdJF6Agw.js +1 -0
  156. package/core/built/admin/assets/members-DjQbq9Z2.js +4 -0
  157. package/core/built/admin/assets/moderation-AgCIEso4.js +1 -0
  158. package/core/built/admin/assets/{multi-select-combobox-B6LiRzDO.js → multi-select-combobox-BcITkUVr.js} +1 -1
  159. package/core/built/admin/assets/navigation-modal-BkT7b1M2.js +1 -0
  160. package/core/built/admin/assets/newsletter-BMMAuvgq.js +1 -0
  161. package/core/built/admin/assets/newsletter-detail-modal-0SCJ7Zpm.js +1 -0
  162. package/core/built/admin/assets/{newsletter-emails-CFeLlt4z.js → newsletter-emails-DKzwafuh.js} +1 -1
  163. package/core/built/admin/assets/newsletters-BRBb_uQC.js +1 -0
  164. package/core/built/admin/assets/note-DyGHtS9a.js +1 -0
  165. package/core/built/admin/assets/notifications-ZgWniKna.js +1 -0
  166. package/core/built/admin/assets/nql-BLpCn7qX.js +21 -0
  167. package/core/built/admin/assets/offers-container-modal-B-E8TIWr.js +1 -0
  168. package/core/built/admin/assets/{onboarding-B4YhlZ0i.js → onboarding-CzIsre-d.js} +1 -1
  169. package/core/built/admin/assets/onboarding-qg8Akovm.js +1 -0
  170. package/core/built/admin/assets/{onboarding-route-Dmc4IPm3.js → onboarding-route-CaavZulg.js} +1 -1
  171. package/core/built/admin/assets/overview-BW8GLeYi.js +1 -0
  172. package/core/built/admin/assets/overview-BkXZNzaZ.js +1 -0
  173. package/core/built/admin/assets/{page-header-BR_nbIPp.js → page-header-De0VzKBi.js} +1 -1
  174. package/core/built/admin/assets/pagemenu-B5KKCpbA.js +1 -0
  175. package/core/built/admin/assets/pages-jgaFm69d.js +1 -0
  176. package/core/built/admin/assets/pages-route-CIUAQxtY.js +1 -0
  177. package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +10 -0
  178. package/core/built/admin/assets/{pintura-modal-BR9hEvS8.js → pintura-modal-BZ2J9w3n.js} +1 -1
  179. package/core/built/admin/assets/portal-frame-B6Hr9wHc.js +1 -0
  180. package/core/built/admin/assets/portal-modal-D4ceei3t.js +1 -0
  181. package/core/built/admin/assets/post-analytics-header-BYCsT0GP.js +1 -0
  182. package/core/built/admin/assets/post-analytics-ot7f6pih.js +1 -0
  183. package/core/built/admin/assets/{post-analytics-provider-CLfKGWZy.js → post-analytics-provider-Bo1gmYaP.js} +1 -1
  184. package/core/built/admin/assets/{post-share-modal-Cl0NXRJr.js → post-share-modal-C-PaYZ_e.js} +1 -1
  185. package/core/built/admin/assets/posts-DuGazgTb.js +1 -0
  186. package/core/built/admin/assets/posts-list-screen-CBGGgjjj.js +2 -0
  187. package/core/built/admin/assets/posts-route-D6xmS7Vf.js +1 -0
  188. package/core/built/admin/assets/preferences-C5YJLp74.js +5 -0
  189. package/core/built/admin/assets/{preview-modal-C-BL-F9k.js → preview-modal-BfeFqi5y.js} +1 -1
  190. package/core/built/admin/assets/profile-B8mx2yAu.js +1 -0
  191. package/core/built/admin/assets/radio-group-DczlLKOn.js +1 -0
  192. package/core/built/admin/assets/{schemas-4UPic-oD.js → schemas-DppqmpeJ.js} +1 -1
  193. package/core/built/admin/assets/select-cb0t_TAJ.js +1 -0
  194. package/core/built/admin/assets/settings-DZqxR0Da.js +1 -0
  195. package/core/built/admin/assets/settings-DvfTNdHQ.js +4 -0
  196. package/core/built/admin/assets/{settings-breadcrumbs-CyP_9zTo.js → settings-breadcrumbs-DLzbRRSt.js} +1 -1
  197. package/core/built/admin/assets/share-modal-D2-Bz1_I.js +1 -0
  198. package/core/built/admin/assets/slack-modal-DYDTUria.js +1 -0
  199. package/core/built/admin/assets/{sort-button-Cc-Z96sA.js → sort-button-VVeQjjbu.js} +1 -1
  200. package/core/built/admin/assets/{source-icon-v6PUnmyM.js → source-icon-Ck5_5Kgq.js} +1 -1
  201. package/core/built/admin/assets/stats-Rjmk5owg.js +1 -0
  202. package/core/built/admin/assets/stats-view-BGGmkmgv.js +1 -0
  203. package/core/built/admin/assets/{step-1-DSRp2vBj.js → step-1-CsaBjeN4.js} +1 -1
  204. package/core/built/admin/assets/{step-2-COqv2g0u.js → step-2-D2vnxOOM.js} +1 -1
  205. package/core/built/admin/assets/{step-3-6W1NMVQc.js → step-3-wBoLdGEb.js} +2 -2
  206. package/core/built/admin/assets/{stripe-button-D2K42Uty.js → stripe-button-CDgLz0S0.js} +1 -1
  207. package/core/built/admin/assets/stripe-connect-modal-CSjMJetP.js +1 -0
  208. package/core/built/admin/assets/{table-B2pIKjVh.js → table-Do6iQ83Q.js} +1 -1
  209. package/core/built/admin/assets/{tabs-SaW_UT-Q.js → tabs-D2yWLMp_.js} +1 -1
  210. package/core/built/admin/assets/tag-detail-BhXlOsCa.js +2 -0
  211. package/core/built/admin/assets/tags-ldukRApe.js +1 -0
  212. package/core/built/admin/assets/testimonials-modal-CtnZBJKl.js +1 -0
  213. package/core/built/admin/assets/tier-detail-modal-BOs8e_G8.js +1 -0
  214. package/core/built/admin/assets/{toggle-group-EM9WpESu.js → toggle-group-ByUJsxwD.js} +1 -1
  215. package/core/built/admin/assets/{topic-filter-DY4gNHn2.js → topic-filter-BgC3g5_v.js} +1 -1
  216. package/core/built/admin/assets/{transistor-modal-CpyPG-MH.js → transistor-modal-Drr0SNfo.js} +1 -1
  217. package/core/built/admin/assets/{trend-badge-ByMkuAuH.js → trend-badge-6ye93YAW.js} +1 -1
  218. package/core/built/admin/assets/{unsplash-modal-Cv2Q6GtY.js → unsplash-modal-p6AoQoWp.js} +1 -1
  219. package/core/built/admin/assets/{use-analytics-data-CHvjMYuT.js → use-analytics-data-CWCMAESo.js} +1 -1
  220. package/core/built/admin/assets/use-check-theme-limit-error-B8bjF-gO.css +1 -0
  221. package/core/built/admin/assets/{use-check-theme-limit-error-Qv4SVXqw.js → use-check-theme-limit-error-Cw3WQHy8.js} +1 -1
  222. package/core/built/admin/assets/use-filter-params-BIni9taJ.js +1 -0
  223. package/core/built/admin/assets/use-growth-stats-DCVG3s9w.js +1 -0
  224. package/core/built/admin/assets/{use-limiter-cwJvsNBo.js → use-limiter-D2WRRx0H.js} +1 -1
  225. package/core/built/admin/assets/{use-pintura-config-CzTfnufz.js → use-pintura-config-h-J0Lvta.js} +1 -1
  226. package/core/built/admin/assets/{use-pintura-editor-BDBXWUYq.js → use-pintura-editor-BfN1UwzH.js} +1 -1
  227. package/core/built/admin/assets/use-post-referrers-Czg47m8s.js +1 -0
  228. package/core/built/admin/assets/use-reply-chain-data-ns0caK8k.js +1 -0
  229. package/core/built/admin/assets/{use-router-history-entry-Bg6BhBQQ.js → use-router-history-entry-uldn7zJO.js} +1 -1
  230. package/core/built/admin/assets/{use-setting-group-VM7FQwMY.js → use-setting-group-DpcuCUDg.js} +1 -1
  231. package/core/built/admin/assets/use-settings-navigation-CZjGrhsp.js +1 -0
  232. package/core/built/admin/assets/{use-simple-pagination-Dum6Irbs.js → use-simple-pagination-DzJWobPR.js} +1 -1
  233. package/core/built/admin/assets/{use-staff-users-cZg4ugOF.js → use-staff-users-Csipb-O0.js} +1 -1
  234. package/core/built/admin/assets/use-tinybird-query-CSnGXzZh.js +1 -0
  235. package/core/built/admin/assets/use-tinybird-token-DTOKRR7e.js +1 -0
  236. package/core/built/admin/assets/{use-unsaved-changes-guard-BAy0RANR.js → use-unsaved-changes-guard-CBzs-KPi.js} +1 -1
  237. package/core/built/admin/assets/{use-url-input-Df5QzNa7.js → use-url-input-DFr8lCbS.js} +1 -1
  238. package/core/built/admin/assets/user-detail-modal-B_iUClI6.js +1 -0
  239. package/core/built/admin/assets/users-Cg-OeGzC.js +1 -0
  240. package/core/built/admin/assets/{virtual-list-DEx8WgiO.js → virtual-list-BW-padMe.js} +1 -1
  241. package/core/built/admin/assets/web-C1v33ehA.js +2 -0
  242. package/core/built/admin/assets/web-C4BKzn2T.js +1 -0
  243. package/core/built/admin/assets/{zapier-modal-Cw3BTBUu.js → zapier-modal-BBFfI6Ml.js} +1 -1
  244. package/core/built/admin/index.html +17 -22
  245. package/core/frontend/apps/private-blogging/lib/views/private.hbs +44 -43
  246. package/core/frontend/helpers/cancel_link.js +2 -2
  247. package/core/frontend/helpers/pagination.js +2 -2
  248. package/core/frontend/helpers/social_accounts.js +2 -2
  249. package/core/frontend/public/ghost.css +1 -1
  250. package/core/frontend/public/ghost.min.css +1 -1
  251. package/core/frontend/services/sitemap/user-map-generator.js +9 -2
  252. package/core/server/api/endpoints/index.js +2 -2
  253. package/core/server/api/endpoints/mail.js +1 -1
  254. package/core/server/api/endpoints/{member-custom-fields.js → member-metafields.js} +27 -28
  255. package/core/server/api/endpoints/members.js +4 -4
  256. package/core/server/api/endpoints/posts.js +3 -3
  257. package/core/server/api/endpoints/utils/serializers/input/members.js +4 -7
  258. package/core/server/api/endpoints/utils/serializers/output/index.js +2 -2
  259. package/core/server/api/endpoints/utils/serializers/output/{member-custom-fields.js → member-metafields.js} +2 -4
  260. package/core/server/api/endpoints/utils/serializers/output/members.js +2 -4
  261. package/core/server/api/endpoints/utils/validators/input/invitations.js +0 -5
  262. package/core/server/api/endpoints/utils/validators/input/pages.js +1 -1
  263. package/core/server/api/endpoints/utils/validators/input/posts.js +1 -1
  264. package/core/server/data/importer/importers/data/data-importer.js +3 -3
  265. package/core/server/data/migrations/utils/migrations.js +1 -1
  266. package/core/server/lib/image/image-size.js +24 -0
  267. package/core/server/lib/package-json/parse.js +2 -2
  268. package/core/server/models/member.js +6 -17
  269. package/core/server/models/post.js +2 -2
  270. package/core/server/models/relations/authors.js +2 -16
  271. package/core/server/models/user.js +9 -2
  272. package/core/server/services/auth/passwordreset.js +13 -0
  273. package/core/server/services/comments/comments-controller.js +30 -9
  274. package/core/server/services/comments/comments-service.js +55 -5
  275. package/core/server/services/content-import/csv/formula.js +12 -0
  276. package/core/server/services/content-import/csv/index.js +6 -1
  277. package/core/server/services/content-import/csv/parse.js +27 -6
  278. package/core/server/services/content-import/csv/serialize.js +13 -0
  279. package/core/server/services/content-import/import/completion-email.js +164 -0
  280. package/core/server/services/content-import/import/errors-file.js +36 -0
  281. package/core/server/services/content-import/import/importer.js +160 -53
  282. package/core/server/services/content-import/import/local-media-url.js +63 -0
  283. package/core/server/services/content-import/import/media.js +254 -0
  284. package/core/server/services/content-import/import/post-data.js +0 -1
  285. package/core/server/services/content-import/import/post-link.js +11 -0
  286. package/core/server/services/content-import/import/post-repository.js +25 -3
  287. package/core/server/services/content-import/import/reader.js +9 -2
  288. package/core/server/services/content-import/import/report.js +34 -0
  289. package/core/server/services/content-import/import/row.js +0 -2
  290. package/core/server/services/content-import/import/schema.js +1 -0
  291. package/core/server/services/content-import/import/staged-file.js +29 -0
  292. package/core/server/services/content-import/import/store.js +25 -2
  293. package/core/server/services/content-import/index.js +52 -6
  294. package/core/server/services/content-import/jobs/content-csv-import-job.js +20 -0
  295. package/core/server/services/custom-redirects/redirect-config-parser.js +2 -2
  296. package/core/server/services/custom-redirects/redirects-service.js +1 -1
  297. package/core/server/services/custom-redirects/validation.js +1 -1
  298. package/core/server/services/email-address/email-address-parser.js +30 -38
  299. package/core/server/services/email-address/email-address-service.js +37 -4
  300. package/core/server/services/email-analytics/index.js +2 -7
  301. package/core/server/services/email-service/batch-sending-service.js +0 -4
  302. package/core/server/services/email-service/email-renderer.js +14 -4
  303. package/core/server/services/email-service/email-service-wrapper.js +0 -9
  304. package/core/server/services/email-service/mailgun-email-provider.js +20 -9
  305. package/core/server/services/gifts/email-templates/gift-delivery.hbs +3 -3
  306. package/core/server/services/gifts/gift-email-service.js +0 -1
  307. package/core/server/services/gifts/index.js +3 -3
  308. package/core/server/services/gifts/jobs/index.js +4 -4
  309. package/core/server/services/indexnow-ping/indexnow-ping-service.js +2 -2
  310. package/core/server/services/invitations/accept.js +4 -2
  311. package/core/server/services/jobs/job-service.js +0 -9
  312. package/core/server/services/jobs-service/register-job-handlers.js +21 -11
  313. package/core/server/services/mail/ghost-mailer.js +4 -4
  314. package/core/server/services/member-welcome-emails/service.js +7 -7
  315. package/core/server/services/members/api.js +1 -0
  316. package/core/server/services/members/import-export/csv/parse.js +0 -7
  317. package/core/server/services/members/import-export/import/completion-email.js +2 -5
  318. package/core/server/services/members/import-export/import/row.js +0 -3
  319. package/core/server/services/members/import-export/index.js +4 -11
  320. package/core/server/services/members/jobs/clean-expired-comped-job.js +7 -0
  321. package/core/server/services/members/jobs/clean-expired-comped-task.js +145 -0
  322. package/core/server/services/members/jobs/index.js +48 -24
  323. package/core/server/services/members/members-api/controllers/member-controller.js +11 -0
  324. package/core/server/services/members/members-api/controllers/router-controller.js +3 -6
  325. package/core/server/services/members/members-api/members-api.js +4 -6
  326. package/core/server/services/members/members-api/repositories/event-repository.js +0 -4
  327. package/core/server/services/members/members-api/services/member-bread-service.js +34 -62
  328. package/core/server/services/members/members-api/services/payments-service.js +1 -1
  329. package/core/server/services/members/service.js +1 -5
  330. package/core/server/services/members-custom-fields/bindings-service.js +2 -1
  331. package/core/server/services/members-custom-fields/codec.js +3 -4
  332. package/core/server/services/members-custom-fields/definitions-service.js +62 -10
  333. package/core/server/services/members-custom-fields/filter.js +75 -93
  334. package/core/server/services/members-custom-fields/key.js +2 -1
  335. package/core/server/services/members-custom-fields/models.js +1 -1
  336. package/core/server/services/members-custom-fields/serializers.js +3 -5
  337. package/core/server/services/members-custom-fields/values-service.js +50 -28
  338. package/core/server/services/mentions/mention-controller.js +23 -21
  339. package/core/server/services/mentions/process-webmention-job.js +16 -0
  340. package/core/server/services/mentions/service.js +8 -4
  341. package/core/server/services/route-settings/validation-errors.js +1 -1
  342. package/core/server/services/route-settings/yaml-parser.js +1 -1
  343. package/core/server/services/settings/settings-service.js +1 -8
  344. package/core/server/services/settings-helpers/settings-helpers.js +4 -6
  345. package/core/server/services/slack-ping/slack-ping-service.js +1 -1
  346. package/core/server/services/staff/staff-service-emails.js +2 -2
  347. package/core/server/services/stripe/config.js +14 -8
  348. package/core/server/services/stripe/service.js +10 -1
  349. package/core/server/services/stripe/services/checkout/completed-session.js +2 -2
  350. package/core/server/services/stripe/services/checkout/session-options.js +18 -15
  351. package/core/server/services/stripe/services/webhook/checkout-session-event-service.js +26 -5
  352. package/core/server/services/stripe/stripe-api.js +2 -0
  353. package/core/server/services/stripe/stripe-service.js +20 -10
  354. package/core/server/services/stripe/webhook-controller.js +10 -0
  355. package/core/server/services/tier-checkout-config/codec.js +9 -5
  356. package/core/server/services/tier-checkout-config/models.js +9 -3
  357. package/core/server/services/tier-checkout-config/queries.js +4 -4
  358. package/core/server/services/tier-checkout-config/serializers.js +16 -10
  359. package/core/server/services/tier-checkout-config/service.js +13 -12
  360. package/core/server/services/update-check/index.js +13 -13
  361. package/core/server/services/update-check/jobs/update-check-job.js +7 -0
  362. package/core/server/services/update-check/update-check-service.js +2 -2
  363. package/core/server/web/admin/controller.js +1 -1
  364. package/core/server/web/api/endpoints/admin/routes.js +19 -16
  365. package/core/shared/config/env/config.testing-mysql.json +1 -1
  366. package/core/shared/labs.js +5 -2
  367. package/package.json +24 -23
  368. package/pnpm-lock.yaml +704 -69
  369. package/pnpm-workspace.yaml +8 -5
  370. package/components/tryghost-kg-default-nodes-2.2.0.tgz +0 -0
  371. package/core/built/admin/assets/Combination-5fYEzgbs.js +0 -41
  372. package/core/built/admin/assets/account-migration-DRhAehfw.js +0 -1
  373. package/core/built/admin/assets/activitypub/inbox-BluD2ucT.js +0 -1284
  374. package/core/built/admin/assets/activitypub/label-FHSh6ZAw.js +0 -16
  375. package/core/built/admin/assets/activitypub/layout-Cq4NG0Xr.js +0 -1
  376. package/core/built/admin/assets/activitypub/settings-DQDkr06X.js +0 -315
  377. package/core/built/admin/assets/add-integration-modal-BC0jExDZ.js +0 -1
  378. package/core/built/admin/assets/add-newsletter-modal-DchTkA7l.js +0 -1
  379. package/core/built/admin/assets/add-recommendation-modal-DMvaJZKp.js +0 -1
  380. package/core/built/admin/assets/alert-dialog-QhXzdHfc.js +0 -1
  381. package/core/built/admin/assets/analytics-No1DDY3A.js +0 -1
  382. package/core/built/admin/assets/automations-DpUNUdcZ.js +0 -1
  383. package/core/built/admin/assets/bluesky-sharing-Cjrv_f62.js +0 -1
  384. package/core/built/admin/assets/color-picker-BTY_NdEm.js +0 -3
  385. package/core/built/admin/assets/color-picker-field-CPlkzOH0.js +0 -1
  386. package/core/built/admin/assets/combobox-DrMtv_4P.js +0 -1
  387. package/core/built/admin/assets/command-ZdgYJpoI.js +0 -1
  388. package/core/built/admin/assets/comments-kidj60-h.js +0 -1
  389. package/core/built/admin/assets/confirmation-context-BhbmQQEl.js +0 -1
  390. package/core/built/admin/assets/custom-field-type-option-CsGIZk1J.js +0 -10
  391. package/core/built/admin/assets/custom-integration-modal-BY37O_9X.js +0 -1
  392. package/core/built/admin/assets/design-and-theme-modal-DUSKM4uC.js +0 -22
  393. package/core/built/admin/assets/dialog-B44iRwlc.js +0 -1
  394. package/core/built/admin/assets/dirty-confirm-dialog-BxgQgQ6H.js +0 -1
  395. package/core/built/admin/assets/dist-Cy8tfrp_.js +0 -1
  396. package/core/built/admin/assets/domain-Ca6KhoQt.js +0 -1
  397. package/core/built/admin/assets/dropzone-Bb-5zQTk.js +0 -5
  398. package/core/built/admin/assets/edit-profile-BdupLlus.js +0 -1
  399. package/core/built/admin/assets/editor-BP883Lpn.js +0 -8
  400. package/core/built/admin/assets/explore-FB-CimXw.js +0 -1
  401. package/core/built/admin/assets/feed-C1GxsmI2.js +0 -1
  402. package/core/built/admin/assets/filter-sources-D5n5bFA2.js +0 -1
  403. package/core/built/admin/assets/filters-DJEzkMUK.js +0 -1
  404. package/core/built/admin/assets/filters-MZXvdH5D.js +0 -1
  405. package/core/built/admin/assets/first-promoter-modal-CGTGLCr5.js +0 -1
  406. package/core/built/admin/assets/gift-link-modal-B6v0tnRN.js +0 -1
  407. package/core/built/admin/assets/growth-BGAJD1rs.js +0 -3
  408. package/core/built/admin/assets/growth-D6mhcx3q.js +0 -1
  409. package/core/built/admin/assets/history-modal-iKwUY3XR.js +0 -1
  410. package/core/built/admin/assets/index-DjQe-e5s.js +0 -4
  411. package/core/built/admin/assets/index-Dqf2x-ry.css +0 -1
  412. package/core/built/admin/assets/index.es-VihPwfeH.js +0 -1
  413. package/core/built/admin/assets/input--W-rCTrX.js +0 -1
  414. package/core/built/admin/assets/invite-user-modal-MdImLCaJ.js +0 -1
  415. package/core/built/admin/assets/koenig-loader-DYZpm6El.js +0 -2
  416. package/core/built/admin/assets/label-picker-cB51xl1r.js +0 -1
  417. package/core/built/admin/assets/layout-c_B_1hax.js +0 -1
  418. package/core/built/admin/assets/loading-indicator-BpFWTVgh.js +0 -1
  419. package/core/built/admin/assets/member-custom-fields-qs0dIkxM.js +0 -1
  420. package/core/built/admin/assets/member-detail-B6uec2a6.js +0 -1
  421. package/core/built/admin/assets/members-BQF3CqhI.js +0 -2
  422. package/core/built/admin/assets/moderation-DY4wF1Q3.js +0 -1
  423. package/core/built/admin/assets/navigation-modal-DX-gNF3X.js +0 -1
  424. package/core/built/admin/assets/newsletter-CyQA7m3m.js +0 -1
  425. package/core/built/admin/assets/newsletter-detail-modal-BDrptuxn.js +0 -1
  426. package/core/built/admin/assets/newsletters-DXuNmC42.js +0 -1
  427. package/core/built/admin/assets/note-Cgo2LCJ6.js +0 -1
  428. package/core/built/admin/assets/notifications-BC50AMku.js +0 -1
  429. package/core/built/admin/assets/offers-container-modal-DWycIMzT.js +0 -1
  430. package/core/built/admin/assets/onboarding-DGQuV7Ew.js +0 -1
  431. package/core/built/admin/assets/overview-CVbFtn-k.js +0 -1
  432. package/core/built/admin/assets/overview-YKj7SZaK.js +0 -1
  433. package/core/built/admin/assets/pages-B6vr9F_D.js +0 -1
  434. package/core/built/admin/assets/popover-CCy0h5rq.js +0 -1
  435. package/core/built/admin/assets/portal-frame-dc4XKr0e.js +0 -1
  436. package/core/built/admin/assets/portal-modal-BvvdF_B9.js +0 -1
  437. package/core/built/admin/assets/post-analytics-DX470WRG.js +0 -1
  438. package/core/built/admin/assets/post-analytics-header-CXpJmdDv.js +0 -1
  439. package/core/built/admin/assets/posts-KY3aUhVV.js +0 -1
  440. package/core/built/admin/assets/preferences-DO0UUWFp.js +0 -5
  441. package/core/built/admin/assets/profile-CxT-0l4d.js +0 -1
  442. package/core/built/admin/assets/radio-group-Bgz60i81.js +0 -1
  443. package/core/built/admin/assets/select-DuDUFdPq.js +0 -1
  444. package/core/built/admin/assets/settings-BjCii7BM.js +0 -1
  445. package/core/built/admin/assets/settings-b8kNzZSQ.js +0 -4
  446. package/core/built/admin/assets/share-modal-BV70mr9k.js +0 -1
  447. package/core/built/admin/assets/shim-ClF_m5ux.js +0 -1
  448. package/core/built/admin/assets/slack-modal-Be2_KK-z.js +0 -1
  449. package/core/built/admin/assets/stats-C4reGh9O.js +0 -1
  450. package/core/built/admin/assets/stats-view-DP9pQ62k.js +0 -1
  451. package/core/built/admin/assets/stripe-connect-modal-Z-UT_BGc.js +0 -1
  452. package/core/built/admin/assets/tag-detail-Dc0nTOtU.js +0 -2
  453. package/core/built/admin/assets/tags-BLaXBwnb.js +0 -1
  454. package/core/built/admin/assets/testimonials-modal-sFwRnNLh.js +0 -1
  455. package/core/built/admin/assets/tier-detail-modal-BCFpWwUS.js +0 -1
  456. package/core/built/admin/assets/use-filter-params-CAvfDvf1.js +0 -1
  457. package/core/built/admin/assets/use-growth-stats-D6mZXGhK.js +0 -1
  458. package/core/built/admin/assets/use-post-referrers-DbY-mzci.js +0 -1
  459. package/core/built/admin/assets/use-reply-chain-data-BeQwz8oF.js +0 -1
  460. package/core/built/admin/assets/use-settings-navigation-BbrSUVcf.js +0 -1
  461. package/core/built/admin/assets/use-tinybird-query-B1IMyAcv.js +0 -39
  462. package/core/built/admin/assets/use-tinybird-token-Bow0Zwn8.js +0 -1
  463. package/core/built/admin/assets/user-detail-modal-yipSoQfv.js +0 -1
  464. package/core/built/admin/assets/users-5msE1WMs.js +0 -1
  465. package/core/built/admin/assets/web-CKcXAu86.js +0 -1
  466. package/core/built/admin/assets/web-DR4TqM3E.js +0 -2
  467. package/core/server/services/jobs/worker-model-event-bridge.js +0 -149
  468. package/core/server/services/members/jobs/clean-expired-comped.js +0 -132
  469. package/core/server/services/stripe/services/checkout/allowed-countries.js +0 -267
  470. package/core/server/services/stripe/services/checkout/field-ports.js +0 -34
  471. package/core/server/services/tier-checkout-config/destinations.js +0 -17
  472. package/core/server/services/update-check/run-update-check.js +0 -63
@@ -0,0 +1 @@
1
+ import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{t as r}from"./jsx-runtime-DX3WBWVO.js";import{p as i}from"./hooks-CuEZV2-q.js";import{t as a}from"./use-tinybird-query-CSnGXzZh.js";import{t as o}from"./posts-DuGazgTb.js";import{s}from"./config-DOMQDZGZ.js";import{t as c}from"./analytics-53FOa2wq.js";import{m as l}from"./dist-B3keLvjj.js";import{t as u}from"./button-eNMKQWXr.js";import{H as d,Kn as f,_r as p,gr as m,hr as h,ii as g,mi as _,pr as v,vr as y,yr as b}from"./index-6MkPdCtr.js";import{t as x}from"./share-modal-D2-Bz1_I.js";import{t as S}from"./pages-jgaFm69d.js";import{n as C,r as w}from"./gift-links-DLDS7ljO.js";var T=e(n(),1);function E(e,t){return!e||!t?``:`${e}?gift=${encodeURIComponent(t)}`}var D={members:`members-only`,paid:`paid-members-only`,tiers:`paid-members-only`};function O(e){return e&&D[e]||``}var k=({postUuid:e,token:t,tokenLoading:n=!1,tokenError:r=null,enabled:i=!0})=>{let{data:o,isLoading:c}=s(),l=o?.config?.stats,{isLoading:u}=g(),d=_(),f=(0,T.useMemo)(()=>({site_uuid:l?.id||``,post_uuid:e||``,gift_link:t||``}),[l?.id,e,t]),{data:p,loading:m,error:h}=a({endpoint:`api_gift_link_visits`,statsConfig:l||{id:``},params:f,enabled:i&&d&&!!l?.id&&!!e&&!!t}),v=m||c||u||n,y=h||r||null;return{usage:(0,T.useMemo)(()=>{if(!d||!t||y||!Array.isArray(p))return;let e=p[0];return{visits:Number(e?.visits)||0,views:Number(e?.views)||0}},[p,t,y,d]),loading:v,error:y}},A=({postId:e,resource:t=`posts`,enabled:n=!0})=>{let r=t===`posts`,{data:i,isLoading:a}=o({searchParams:{filter:`id:${e}`,include:d},enabled:n&&r}),{data:s,isLoading:c}=S({searchParams:{filter:`id:${e}`},enabled:n&&!r});if(r){let e=i?.posts?.[0];return{post:e&&{url:e.url,title:e.title,visibility:e.visibility,uuid:e.uuid},isLoading:a}}let l=s?.pages?.[0];return{post:l&&{url:l.url,title:l.title,visibility:l.visibility,uuid:l.uuid},isLoading:c}},j=t({default:()=>P}),M=r();function N(e){return e===0?`No visitors yet`:`${l(e)} ${e===1?`visitor`:`visitors`}`}var P=({open:e,onOpenChange:t,postId:n,resource:r=`posts`,source:a})=>{let o=i(),{mutateAsync:s}=w(),{mutateAsync:l}=C(),{post:d}=A({postId:n,resource:r,enabled:e}),[g,_]=(0,T.useState)(void 0),[S,D]=(0,T.useState)(`idle`),[O,j]=(0,T.useState)(!1),[P,F]=(0,T.useState)(!1),I=(0,T.useRef)(null),L=(0,T.useRef)(null),{usage:R}=k({postUuid:d?.uuid,token:g,enabled:e});(0,T.useEffect)(()=>{if(!e){L.current=null,F(!1);return}let t=L.current;(t?.postId!==n||t.resource!==r)&&(t={postId:n,resource:r,request:s({id:n,resource:r})},L.current=t);let i=!1;return F(!0),t.request.then(e=>{i||_(e.gift_links[0]?.token)}).catch(e=>{i||o(e)}).finally(()=>{i||F(!1)}),()=>{i=!0}},[e,n,r,s,o]),(0,T.useEffect)(()=>{S===`confirm`&&I.current?.focus()},[S]);let z=r===`pages`?`page`:`post`,B=d?.visibility??`unknown`,V=(0,T.useRef)(!1);(0,T.useEffect)(()=>{if(!e){V.current=!1;return}V.current||!d||(V.current=!0,c(`Gift Link Modal Opened`,{postType:z,visibility:B,source:a}))},[e,d,z,B,a]);let H=E(d?.url,g),U=`Anyone you share this link with will be able to access this ${z} without becoming a ${d?.visibility===`members`?`member`:`paid member`}.`,W=(0,T.useCallback)(async()=>{if(!O){j(!0);try{let e=await l({id:n,resource:r});_(e.gift_links[0]?.token),D(`idle`),c(`Gift Link Reset`,{postType:z,visibility:B,source:a})}catch(e){o(e)}finally{j(!1)}}},[O,l,n,r,o,z,B,a]),G=(0,T.useCallback)(e=>{e||D(`idle`),t(e)},[t]);return(0,M.jsx)(v,{open:e,onOpenChange:G,children:(0,M.jsxs)(h,{className:`max-w-lg gap-5`,children:[S===`idle`&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(y,{className:`gap-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(b,{className:`text-xl leading-none`,children:`Gift link`}),R&&(0,M.jsx)(f,{"data-testid":`gift-link-views`,variant:`secondary`,children:N(R.visits)})]}),(0,M.jsx)(m,{className:`text-sm leading-5`,children:U})]}),(0,M.jsx)(x.CopyURLBox,{className:`w-full min-w-0`,copyURL:P?`Generating link…`:H,children:(0,M.jsx)(x.CopyButton,{className:`shrink-0`,copyURL:H,"data-testid":`copy-gift-link`,disabled:P||!H,icon:`link`,size:`sm`,onClick:()=>c(`Gift Link Copied`,{postType:z,visibility:B,source:a})})}),(0,M.jsxs)(p,{className:`sm:items-center sm:justify-between`,children:[(0,M.jsx)(u,{className:`border-destructive/20 text-destructive hover:border-destructive hover:bg-transparent hover:text-destructive dark:border-state-danger/50 dark:text-state-danger dark:hover:border-state-danger dark:hover:bg-transparent dark:hover:text-state-danger`,"data-testid":`reset-gift-link`,disabled:!H,variant:`outline`,onClick:()=>D(`confirm`),children:`Reset`}),(0,M.jsx)(u,{variant:`outline`,onClick:()=>G(!1),children:`Close`})]})]}),S===`confirm`&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(y,{children:[(0,M.jsx)(b,{children:`Reset gift link`}),(0,M.jsxs)(m,{children:[`Are you sure you want to reset this link? Anyone with the current link will lose access to this `,z,`.`]})]}),(0,M.jsxs)(p,{children:[(0,M.jsx)(u,{ref:I,disabled:O,variant:`outline`,onClick:()=>D(`idle`),children:`Cancel`}),(0,M.jsx)(u,{"data-testid":`confirm-reset-gift-link`,disabled:O,variant:`destructive`,onClick:()=>{W()},children:O?`Resetting`:`Reset link`})]})]})]})})};export{O as i,j as n,k as r,P as t};
@@ -0,0 +1,3 @@
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{i as r}from"./pagemenu-B5KKCpbA.js";import{i}from"./currency-Dy4Tc2R2.js";import{r as a,t as o}from"./source-icon-Ck5_5Kgq.js";import{_ as s}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{a as c}from"./router-provider-B0gZyiGJ.js";import{C as l,S as u,d,m as f,u as p,w as m}from"./dist-B3keLvjj.js";import{En as h,L as g,ar as _,or as v,rr as y,t as b}from"./button-eNMKQWXr.js";import{E as x}from"./_baseAssignValue-C_vooEQc.js";import{$ as S,C,E as w,I as T,J as ee,K as te,P as E,Q as D,S as O,Y as ne,Z as re,_ as ie,a as ae,at as oe,b as se,ct as ce,dt as le,et as ue,g as de,i as fe,it as pe,n as me,nt as he,ot as k,r as ge,st as _e,ut as ve,w as ye,x as be,y as xe}from"./chart-BrhA41Zi.js";import{n as Se,t as Ce}from"./PolarAngleAxis-pkMyqz8g.js";import{a as we,i as Te,o as Ee,r as De}from"./trend-badge-6ye93YAW.js";import{n as Oe,t as A}from"./sort-button-VVeQjjbu.js";import{i as j,r as ke,t as Ae}from"./tabs-D2yWLMp_.js";import{i as je,n as Me,o as Ne,s as Pe,t as Fe}from"./select-cb0t_TAJ.js";import{t as Ie}from"./skeleton-Ce9GgUpf.js";import{a as Le,n as Re,o as ze,r as Be,t as M}from"./card--VNbfgo3.js";import{t as N}from"./empty-indicator-D9QdpuNX.js";import{a as P,c as F,i as Ve,n as I,r as L,s as He,t as Ue}from"./table-Do6iQ83Q.js";import{An as We,Cr as Ge,Fn as Ke,G as R,J as qe,Mn as Je,Nn as Ye,Pn as Xe,Tr as Ze,Un as Qe,Zn as $e,di as et,jn as tt,jr as nt,li as rt,xr as it,z as at}from"./index-6MkPdCtr.js";import{i as ot,n as st,r as ct,t as lt}from"./stats-view-BGGmkmgv.js";import{t as ut}from"./disabled-sources-indicator-DMRrxsiJ.js";import{d as dt,n as ft,p as pt}from"./stats-Rjmk5owg.js";import{a as mt,c as z,i as B,n as V,r as ht,s as gt,t as H}from"./chart-helpers-CfBKt0vT.js";import{t as _t}from"./use-growth-stats-DCVG3s9w.js";import{n as vt,r as U,t as yt}from"./kpi-tabs-BJItvLYm.js";import{t as bt}from"./use-analytics-data-CWCMAESo.js";import{n as xt}from"./audience-CtbA54Sn.js";import{n as St}from"./referrers-CnhCMWCs.js";import{a as Ct}from"./tiers-Nd_z4BZY.js";import{i as wt,r as Tt,t as W}from"./content-helpers-CNBPrwsi.js";import{t as Et}from"./url-helpers-DcQbx-Xg.js";import{t as Dt}from"./get-site-timezone-HgL0jI_F.js";var G=e(t()),Ot=e(le()),kt=e(T()),K=e(ve()),q=e(x()),At;function J(e){"@babel/helpers - typeof";return J=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},J(e)}function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(this,arguments)}function jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function X(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?jt(Object(n),!0).forEach(function(t){Z(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Mt(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function Nt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,Ht(r.key),r)}}function Pt(e,t,n){return t&&Nt(e.prototype,t),n&&Nt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ft(e,t,n){return t=zt(t),It(e,Rt()?Reflect.construct(t,n||[],zt(e).constructor):t.apply(e,n))}function It(e,t){if(t&&(J(t)===`object`||typeof t==`function`))return t;if(t!==void 0)throw TypeError(`Derived constructors may only return object or undefined`);return Lt(e)}function Lt(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function Rt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Rt=function(){return!!e})()}function zt(e){return zt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},zt(e)}function Bt(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vt(e,t)}function Vt(e,t){return Vt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Vt(e,t)}function Z(e,t,n){return t=Ht(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ht(e){var t=Ut(e,`string`);return J(t)==`symbol`?t:t+``}function Ut(e,t){if(J(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(J(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var Q=function(e){function t(e){var n;return Mt(this,t),n=Ft(this,t,[e]),Z(n,`pieRef`,null),Z(n,`sectorRefs`,[]),Z(n,`id`,ce(`recharts-pie-`)),Z(n,`handleAnimationEnd`,function(){var e=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),(0,q.default)(e)&&e()}),Z(n,`handleAnimationStart`,function(){var e=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),(0,q.default)(e)&&e()}),n.state={isAnimationFinished:!e.isAnimationActive,prevIsAnimationActive:e.isAnimationActive,prevAnimationId:e.animationId,sectorToFocus:0},n}return Bt(t,e),Pt(t,[{key:`isActiveIndex`,value:function(e){var t=this.props.activeIndex;return Array.isArray(t)?t.indexOf(e)!==-1:e===t}},{key:`hasActiveIndex`,value:function(){var e=this.props.activeIndex;return Array.isArray(e)?e.length!==0:e||e===0}},{key:`renderLabels`,value:function(e){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var n=this.props,r=n.label,i=n.labelLine,a=n.dataKey,o=n.valueKey,s=S(this.props,!1),c=S(r,!1),l=S(i,!1),u=r&&r.offsetRadius||20,d=e.map(function(e,n){var d=(e.startAngle+e.endAngle)/2,f=w(e.cx,e.cy,e.outerRadius+u,d),p=X(X(X(X({},s),e),{},{stroke:`none`},c),{},{index:n,textAnchor:t.getTextAnchor(f.x,e.cx)},f),m=X(X(X(X({},s),e),{},{fill:`none`,stroke:e.fill},l),{},{index:n,points:[w(e.cx,e.cy,e.outerRadius,d),f]}),h=a;return(0,K.default)(a)&&(0,K.default)(o)?h=`value`:(0,K.default)(a)&&(h=o),G.createElement(D,{key:`label-${e.startAngle}-${e.endAngle}-${e.midAngle}-${n}`},i&&t.renderLabelLineItem(i,m,`line`),t.renderLabelItem(r,p,E(e,h)))});return G.createElement(D,{className:`recharts-pie-labels`},d)}},{key:`renderSectorsStatically`,value:function(e){var t=this,n=this.props,r=n.activeShape,i=n.blendStroke,a=n.inactiveShape;return e.map(function(n,o){if(n?.startAngle===0&&n?.endAngle===0&&e.length!==1)return null;var s=t.isActiveIndex(o),c=a&&t.hasActiveIndex()?a:null,l=s?r:c,u=X(X({},n),{},{stroke:i?n.fill:n.stroke,tabIndex:-1});return G.createElement(D,Y({ref:function(e){e&&!t.sectorRefs.includes(e)&&t.sectorRefs.push(e)},tabIndex:-1,className:`recharts-pie-sector`},he(t.props,n,o),{key:`sector-${n?.startAngle}-${n?.endAngle}-${n.midAngle}-${o}`}),G.createElement(ie,Y({option:l,isActive:s,shapeType:`sector`},u)))})}},{key:`renderSectorsWithAnimation`,value:function(){var e=this,t=this.props,n=t.sectors,r=t.isAnimationActive,i=t.animationBegin,a=t.animationDuration,o=t.animationEasing,s=t.animationId,c=this.state,l=c.prevSectors,u=c.prevIsAnimationActive;return G.createElement(xe,{begin:i,duration:a,isActive:r,easing:o,from:{t:0},to:{t:1},key:`pie-${s}-${u}`,onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(t){var r=t.t,i=[],a=(n&&n[0]).startAngle;return n.forEach(function(e,t){var n=l&&l[t],o=t>0?(0,Ot.default)(e,`paddingAngle`,0):0;if(n){var s=oe(n.endAngle-n.startAngle,e.endAngle-e.startAngle),c=X(X({},e),{},{startAngle:a+o,endAngle:a+s(r)+o});i.push(c),a=c.endAngle}else{var u=e.endAngle,d=e.startAngle,f=oe(0,u-d)(r),p=X(X({},e),{},{startAngle:a+o,endAngle:a+f+o});i.push(p),a=p.endAngle}}),G.createElement(D,null,e.renderSectorsStatically(i))})}},{key:`attachKeyboardHandlers`,value:function(e){var t=this;e.onkeydown=function(e){if(!e.altKey)switch(e.key){case`ArrowLeft`:var n=++t.state.sectorToFocus%t.sectorRefs.length;t.sectorRefs[n].focus(),t.setState({sectorToFocus:n});break;case`ArrowRight`:var r=--t.state.sectorToFocus<0?t.sectorRefs.length-1:t.state.sectorToFocus%t.sectorRefs.length;t.sectorRefs[r].focus(),t.setState({sectorToFocus:r});break;case`Escape`:t.sectorRefs[t.state.sectorToFocus].blur(),t.setState({sectorToFocus:0});break;default:}}}},{key:`renderSectors`,value:function(){var e=this.props,t=e.sectors,n=e.isAnimationActive,r=this.state.prevSectors;return n&&t&&t.length&&(!r||!(0,kt.default)(r,t))?this.renderSectorsWithAnimation():this.renderSectorsStatically(t)}},{key:`componentDidMount`,value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:`render`,value:function(){var e=this,t=this.props,n=t.hide,r=t.sectors,i=t.className,a=t.label,o=t.cx,s=t.cy,c=t.innerRadius,l=t.outerRadius,u=t.isAnimationActive,d=this.state.isAnimationFinished;if(n||!r||!r.length||!k(o)||!k(s)||!k(c)||!k(l))return null;var f=m(`recharts-pie`,i);return G.createElement(D,{tabIndex:this.props.rootTabIndex,className:f,ref:function(t){e.pieRef=t}},this.renderSectors(),a&&this.renderLabels(r),O.renderCallByParent(this.props,null,!1),(!u||d)&&be.renderCallByParent(this.props,r,!1))}}],[{key:`getDerivedStateFromProps`,value:function(e,t){return t.prevIsAnimationActive===e.isAnimationActive?e.isAnimationActive&&e.animationId!==t.prevAnimationId?{prevAnimationId:e.animationId,curSectors:e.sectors,prevSectors:t.curSectors,isAnimationFinished:!0}:e.sectors===t.curSectors?null:{curSectors:e.sectors,isAnimationFinished:!0}:{prevIsAnimationActive:e.isAnimationActive,prevAnimationId:e.animationId,curSectors:e.sectors,prevSectors:[],isAnimationFinished:!0}}},{key:`getTextAnchor`,value:function(e,t){return e>t?`start`:e<t?`end`:`middle`}},{key:`renderLabelLineItem`,value:function(e,t,n){if(G.isValidElement(e))return G.cloneElement(e,t);if((0,q.default)(e))return e(t);var r=m(`recharts-pie-label-line`,typeof e==`boolean`?``:e.className);return G.createElement(se,Y({},t,{key:n,type:`linear`,className:r}))}},{key:`renderLabelItem`,value:function(e,t,n){if(G.isValidElement(e))return G.cloneElement(e,t);var r=n;if((0,q.default)(e)&&(r=e(t),G.isValidElement(r)))return r;var i=m(`recharts-pie-label-text`,typeof e!=`boolean`&&!(0,q.default)(e)?e.className:``);return G.createElement(te,Y({},t,{alignmentBaseline:`middle`,className:i}),r)}}])}(G.PureComponent);At=Q,Z(Q,`displayName`,`Pie`),Z(Q,`defaultProps`,{stroke:`#fff`,fill:`#808080`,legendType:`rect`,cx:`50%`,cy:`50%`,startAngle:0,endAngle:360,innerRadius:0,outerRadius:`80%`,paddingAngle:0,labelLine:!0,hide:!1,minAngle:0,isAnimationActive:!ne.isSsr,animationBegin:400,animationDuration:1500,animationEasing:`ease`,nameKey:`name`,blendStroke:!1,rootTabIndex:0}),Z(Q,`parseDeltaAngle`,function(e,t){return _e(t-e)*Math.min(Math.abs(t-e),360)}),Z(Q,`getRealPieData`,function(e){var t=e.data,n=e.children,r=S(e,!1),i=ue(n,ee);return t&&t.length?t.map(function(e,t){return X(X(X({payload:e},r),e),i&&i[t]&&i[t].props)}):i&&i.length?i.map(function(e){return X(X({},r),e.props)}):[]}),Z(Q,`parseCoordinateOfPie`,function(e,t){var n=t.top,r=t.left,i=t.width,a=t.height,o=ye(i,a);return{cx:r+pe(e.cx,i,i/2),cy:n+pe(e.cy,a,a/2),innerRadius:pe(e.innerRadius,o,0),outerRadius:pe(e.outerRadius,o,o*.8),maxRadius:e.maxRadius||Math.sqrt(i*i+a*a)/2}}),Z(Q,`getComposedData`,function(e){var t=e.item,n=e.offset,r=t.type.defaultProps===void 0?t.props:X(X({},t.type.defaultProps),t.props),i=At.getRealPieData(r);if(!i||!i.length)return null;var a=r.cornerRadius,o=r.startAngle,s=r.endAngle,c=r.paddingAngle,l=r.dataKey,u=r.nameKey,d=r.valueKey,f=r.tooltipType,p=Math.abs(r.minAngle),m=At.parseCoordinateOfPie(r,n),h=At.parseDeltaAngle(o,s),g=Math.abs(h),_=l;(0,K.default)(l)&&(0,K.default)(d)?(re(!1,`Use "dataKey" to specify the value of pie,
2
+ the props "valueKey" will be deprecated in 1.1.0`),_=`value`):(0,K.default)(l)&&(re(!1,`Use "dataKey" to specify the value of pie,
3
+ the props "valueKey" will be deprecated in 1.1.0`),_=d);var v=i.filter(function(e){return E(e,_,0)!==0}).length,y=(g>=360?v:v-1)*c,b=g-v*p-y,x=i.reduce(function(e,t){var n=E(t,_,0);return e+(k(n)?n:0)},0),S;if(x>0){var C;S=i.map(function(e,t){var n=E(e,_,0),r=E(e,u,t),i=(k(n)?n:0)/x,s=t?C.endAngle+_e(h)*c*(n===0?0:1):o,l=s+_e(h)*((n===0?0:p)+i*b),d=(s+l)/2,g=(m.innerRadius+m.outerRadius)/2;return C=X(X(X({percent:i,cornerRadius:a,name:r,tooltipPayload:[{name:r,value:n,payload:e,dataKey:_,type:f}],midAngle:d,middleRadius:g,tooltipPosition:w(m.cx,m.cy,g,d)},e),m),{},{value:E(e,_),startAngle:s,endAngle:l,payload:e,paddingAngle:_e(h)*c}),C})}return X(X({},m),{},{sectors:S,data:i})});var Wt=ae({chartName:`PieChart`,GraphicalChild:Q,validateTooltipEventTypes:[`item`],defaultTooltipEventType:`item`,legendContent:`children`,axisComponents:[{axisType:`angleAxis`,AxisComp:Ce},{axisType:`radiusAxis`,AxisComp:Se}],formatAxisMap:C,defaultProps:{layout:`centric`,startAngle:0,endAngle:360,cx:`50%`,cy:`50%`,innerRadius:0,outerRadius:`80%`}}),$=n(),Gt=e=>e===`total-members`||e===`free-members`||e===`paid-members`||e===`mrr`,Kt=({active:e,payload:t,range:n,color:r,showBreakdown:i})=>{if(!e||!t?.length)return null;let a=t[0].payload,{date:o,formattedValue:s,label:c,comped:l,gift:u}=a,p=a.value-(l||0)-(u||0);return(0,$.jsxs)(`div`,{className:`min-w-[200px] rounded-lg border bg-background px-3 py-2 shadow-lg`,children:[o&&(0,$.jsx)(`div`,{className:`mb-1 text-sm text-foreground`,children:d(o,n||0)}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Paid subscriptions`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:f(p)})]})}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Gift subscriptions`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:u!==void 0&&u>0?f(u):`0`})]})}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Complimentary`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:l!==void 0&&l>0?f(l):`0`})]})}),(0,$.jsx)(Qe,{})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`inline-block size-2 rounded-full opacity-50`,style:{backgroundColor:r||`var(--chart-purple)`}}),(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[c&&(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:c}),(0,$.jsx)(`div`,{className:`font-mono font-medium`,children:s})]})]})]})]})},qt=({chartData:e,totals:t,initialTab:n,currencySymbol:r,isLoading:i,onTabChange:a})=>{let o=Gt(n)?n:`total-members`,[l,u]=(0,G.useState)(o),{range:d}=qe(),p=et(),m=c(),[h]=s();(0,G.useEffect)(()=>{u(o)},[o]);let g=e=>{u(e);let t=new URLSearchParams(h);t.set(`tab`,e),m(`?${t.toString()}`,{replace:!0}),a&&a(e)},{totalMembers:_,freeMembers:v,paidMembers:y,mrr:b,percentChanges:x,directions:S}=t,{chartData:C,chartRange:w}=(0,G.useMemo)(()=>{if(!e||e.length===0)return{chartData:[],chartRange:d};let t=[],n=`value`;switch(l){case`free-members`:n=`free`;break;case`paid-members`:n=`paid`;break;case`mrr`:n=`mrr`;break;default:n=`value`}t=z(e,d,n,`exact`);let i=[];switch(l){case`free-members`:i=t.map(e=>({...e,value:e.free,formattedValue:f(e.free),label:`Free members`}));break;case`paid-members`:i=t.map(e=>({...e,value:e.paid,formattedValue:f(e.paid),label:`Paid members`,comped:e.comped,gift:e.gift,paid_subscribed:e.paid_subscribed}));break;case`mrr`:i=t.map(e=>({...e,value:H(e.mrr),formattedValue:`${r}${f(H(e.mrr))}`,label:`MRR`}));break;default:i=t.map(e=>{let t=e.free+e.paid;return{...e,value:t,formattedValue:f(t),label:`Total members`}})}return{chartData:i,chartRange:ht(d,e,{fieldName:n})}},[l,e,d,r]),T={"total-members":{color:`var(--chart-darkblue)`},"free-members":{color:`var(--chart-blue)`},"paid-members":{color:`var(--chart-purple)`},mrr:{color:`var(--chart-teal)`}};return i?(0,$.jsx)(`div`,{className:`-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center`,children:(0,$.jsx)($e,{})}):(0,$.jsxs)(Ae,{defaultValue:o,variant:`kpis`,children:[(0,$.jsxs)(ke,{className:`-mx-6 ${p?`hidden grid-cols-4 lg:visible! lg:grid!`:`grid grid-cols-4`}`,children:[(0,$.jsx)(vt,{className:p?``:`cursor-auto after:hidden`,value:`total-members`,onClick:()=>{p&&g(`total-members`)},children:(0,$.jsx)(U,{color:`var(--chart-darkblue)`,diffDirection:d===R.allTime.value?`hidden`:S.total,diffValue:x.total,label:`Total members`,value:f(_)})}),p&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(vt,{value:`free-members`,onClick:()=>{g(`free-members`)},children:(0,$.jsx)(U,{color:`var(--chart-blue)`,diffDirection:d===R.allTime.value?`hidden`:S.free,diffValue:x.free,label:`Free members`,value:f(v)})}),(0,$.jsx)(vt,{value:`paid-members`,onClick:()=>{g(`paid-members`)},children:(0,$.jsx)(U,{color:`var(--chart-purple)`,diffDirection:d===R.allTime.value?`hidden`:S.paid,diffValue:x.paid,label:`Paid members`,value:f(y)})}),(0,$.jsx)(vt,{value:`mrr`,onClick:()=>{g(`mrr`)},children:(0,$.jsx)(U,{color:`var(--chart-teal)`,diffDirection:d===R.allTime.value?`hidden`:S.mrr,diffValue:x.mrr,label:`MRR`,value:`${r}${f(H(b))}`})})]})]}),p&&(0,$.jsxs)(it,{children:[(0,$.jsx)(nt,{className:`lg:hidden`,asChild:!0,children:(0,$.jsxs)(yt,{children:[l===`total-members`&&(0,$.jsx)(U,{color:`var(--chart-darkblue)`,diffDirection:d===R.allTime.value?`hidden`:S.total,diffValue:x.total,label:`Total members`,value:f(_)}),l===`free-members`&&(0,$.jsx)(U,{color:`var(--chart-blue)`,diffDirection:d===R.allTime.value?`hidden`:S.free,diffValue:x.free,label:`Free members`,value:f(v)}),l===`paid-members`&&(0,$.jsx)(U,{color:`var(--chart-purple)`,diffDirection:d===R.allTime.value?`hidden`:S.paid,diffValue:x.paid,label:`Paid members`,value:f(y)}),l===`mrr`&&(0,$.jsx)(U,{color:`var(--chart-teal)`,diffDirection:d===R.allTime.value?`hidden`:S.mrr,diffValue:x.mrr,label:`MRR`,value:`${r}${f(H(b))}`})]})}),(0,$.jsxs)(Ge,{align:`end`,className:`w-56`,children:[(0,$.jsx)(Ze,{onClick:()=>g(`total-members`),children:`Total members`}),(0,$.jsx)(Ze,{onClick:()=>g(`free-members`),children:`Free members`}),(0,$.jsx)(Ze,{onClick:()=>g(`paid-members`),children:`Paid members`}),(0,$.jsx)(Ze,{onClick:()=>g(`mrr`),children:`MRR`})]})]}),(0,$.jsx)(`div`,{className:`my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:(0,$.jsx)(De,{className:`-mb-3 h-[16vw] max-h-[320px] w-full min-h-[180px]`,color:T[l].color,data:C,dataFormatter:l===`mrr`?e=>`${r}${f(e)}`:f,id:l,range:w,tooltipContent:l===`paid-members`?(0,$.jsx)(Kt,{color:T[`paid-members`].color,range:w,showBreakdown:!0}):void 0})})]})},Jt=(e,t=`signups desc`,n=50)=>{let{startDate:r,endDate:i,timezone:a}=mt(e),o={date_from:V(r),date_to:V(i),member_status:xt(at),order:t,limit:n.toString()};return a&&(o.timezone=a),St({searchParams:o})},Yt=({data:e,currencySymbol:t,limit:n,defaultSourceIconUrl:r})=>{let i=n?e.slice(0,n):e,a=et();return(0,$.jsx)(I,{children:i.map(e=>(0,$.jsxs)(F,{className:`last:border-none`,children:[(0,$.jsx)(L,{className:`font-medium`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(o,{defaultSourceIconUrl:r,displayName:e.displayName,iconSrc:e.iconSrc}),e.linkUrl?(0,$.jsx)(`a`,{className:`hover:underline`,href:e.linkUrl,rel:`noreferrer`,target:`_blank`,children:e.displayName}):(0,$.jsx)(`span`,{children:e.displayName})]})}),(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[`+`,f(e.free_members)]}),a&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[`+`,f(e.paid_members)]}),(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[`+`,t,f(H(e.mrr))]})]})]},e.source))})},Xt=({range:e,limit:t=20,showViewAll:n=!1,sortBy:r,setSortBy:o})=>{let{site:s}=bt(),{data:c}=ft(),l=et(),u=rt(),[d,f]=(0,G.useState)(`free_members desc`),p=r||d,m=o||f,{data:_,isLoading:v}=Jt(e,p.replace(`free_members`,`signups`).replace(`paid_members`,`paid_conversions`),t),y=s.url,x=`https://www.google.com/s2/favicons?domain=ghost.org&sz=64`,S=G.useMemo(()=>{if(c?.stats&&c?.meta?.totals){let e=c.meta.totals,t=e[0];if(!t)return i(`usd`);for(let n of e)n.mrr>t.mrr&&(t=n);return i(t.currency)}return i(`usd`)},[c]),C=G.useMemo(()=>_?.stats?_.stats.map(e=>{let t=e.source||`Direct`,{domain:n}=a(t,y),r=n?`https://www.faviconextractor.com/favicon/${n}?larger=true`:x,i=n&&t!==`Direct`?`https://${n}`:void 0;return{source:t,free_members:e.signups,paid_members:e.paid_conversions,mrr:e.mrr,iconSrc:r,displayName:t,linkUrl:i}}):[],[_,y]),w=`Where did your growth come from ${B(e)}`;return u?v?(0,$.jsx)(I,{children:(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-2`,colSpan:1,children:(0,$.jsx)(Ie,{containerClassName:`space-y-2`,count:5,maxWidth:75,randomize:!0})})})}):(0,$.jsxs)($.Fragment,{children:[C.length>0?(0,$.jsx)(Yt,{currencySymbol:S,data:C,defaultSourceIconUrl:x,limit:t}):(0,$.jsx)(I,{children:(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:l?4:2,children:(0,$.jsx)(N,{description:`Try adjusting your date range to see more data.`,title:`No conversions ${B(e)}`,children:(0,$.jsx)(h,{strokeWidth:1.5})})})})}),n&&C.length>t&&(0,$.jsx)(Ve,{className:`border-none bg-transparent hover:bg-transparent!`,children:(0,$.jsx)(F,{children:(0,$.jsx)(L,{className:`border-none bg-transparent px-0 pb-0 hover:bg-transparent!`,colSpan:4,children:(0,$.jsxs)(We,{children:[(0,$.jsx)(Ke,{asChild:!0,children:(0,$.jsxs)(b,{variant:`outline`,children:[`View all `,(0,$.jsx)(g,{})]})}),(0,$.jsxs)(tt,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,$.jsxs)(Ye,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,$.jsx)(Xe,{children:`Top sources`}),(0,$.jsx)(Je,{children:w})]}),(0,$.jsx)(`div`,{className:`group/datalist`,children:(0,$.jsxs)(Ue,{children:[(0,$.jsx)(He,{children:(0,$.jsxs)(F,{children:[(0,$.jsx)(P,{children:`Source`}),(0,$.jsx)(P,{className:`w-[110px] text-right`,children:(0,$.jsx)(A,{activeSortBy:p,setSortBy:m,sortBy:`free_members desc`,children:`Free members`})}),l&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(P,{className:`w-[110px] text-right`,children:(0,$.jsx)(A,{activeSortBy:p,setSortBy:m,sortBy:`paid_members desc`,children:`Paid members`})}),(0,$.jsx)(P,{className:`w-[110px] text-right`,children:(0,$.jsx)(A,{activeSortBy:p,setSortBy:m,sortBy:`mrr desc`,children:`MRR impact`})})]})]})}),(0,$.jsx)(Yt,{currencySymbol:S,data:C,defaultSourceIconUrl:x})]})})]})]})})})})]}):(0,$.jsx)(I,{children:(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:l?4:2,children:(0,$.jsx)(ut,{})})})})};l();var Zt=({active:e,payload:t})=>{if(e&&t&&t.length){let e=t[0];return(0,$.jsx)(`div`,{className:`rounded-lg border bg-background p-2 shadow-sm`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:e.payload.color}}),(0,$.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,$.jsx)(`span`,{className:`font-mono`,children:f(e.value)})]})})}return null},Qt=({isLoading:e,range:t})=>{let{data:n}=dt(),{data:{tiers:r=[]}={}}=Ct(),[i,a]=(0,G.useState)(`billing-period`),{startDate:o,endDate:s}=(0,G.useMemo)(()=>mt(t),[t]),c=(0,G.useMemo)(()=>V(o),[o]),l=(0,G.useMemo)(()=>V(s),[s]),d=(0,G.useMemo)(()=>r.filter(e=>e.type===`paid`&&e.active).map(e=>({id:e.id,name:e.name})),[r]),p=(0,G.useMemo)(()=>{if(!n?.stats)return[];let e=u(c),t=u(l),r=n.stats.filter(n=>{let r=u(n.date);return r.isSameOrAfter(e)&&r.isSameOrBefore(t)}).reduce((e,t)=>{let n=t.cadence;return e[n]||(e[n]=0),e[n]+=t.signups,e},{});return Object.entries(r).map(([e,t],n)=>{let r=e,i=`url(#gradientPurple)`,a=`var(--chart-purple)`;return e===`month`?(r=`Monthly`,i=`url(#gradientPurple)`,a=`var(--chart-purple)`):e===`year`&&(r=`Annual`,i=`url(#gradientTeal)`,a=`var(--chart-teal)`),{id:`cadence-${n}`,name:r,count:t,fill:i,color:a}})},[n,c,l]),m=(0,G.useMemo)(()=>{if(!n?.stats||d.length===0)return[];let e=u(c),t=u(l),r=n.stats.filter(n=>{let r=u(n.date);return r.isSameOrAfter(e)&&r.isSameOrBefore(t)}).reduce((e,t)=>{let n=t.tier;return e[n]||(e[n]=0),e[n]+=t.signups,e},{}),i=[{gradient:`url(#gradientPurple)`,solid:`var(--chart-purple)`},{gradient:`url(#gradientTeal)`,solid:`var(--chart-teal)`},{gradient:`url(#gradientBlue)`,solid:`var(--chart-blue)`},{gradient:`url(#gradientRose)`,solid:`var(--chart-rose)`},{gradient:`url(#gradientOrange)`,solid:`var(--chart-orange)`},{gradient:`url(#gradientGreen)`,solid:`var(--chart-green)`},{gradient:`url(#gradientAmber)`,solid:`var(--chart-amber)`},{gradient:`url(#gradientYellow)`,solid:`var(--chart-yellow)`},{gradient:`url(#gradientDarkblue)`,solid:`var(--chart-darkblue)`},{gradient:`url(#gradientGray)`,solid:`var(--chart-darkgray)`}];return[...d.map(e=>{let t=r[e.id]||0;return{id:e.id,name:e.name,count:t}})].sort((e,t)=>t.count-e.count).map((e,t)=>{let n=t%i.length;return{...e,fill:i[n].gradient,color:i[n].solid}})},[n,d,c,l]),h=i===`billing-period`?p:m,g=(0,G.useMemo)(()=>h.reduce((e,t)=>e+t.count,0),[h]),_=(0,G.useMemo)(()=>{let e={count:{label:`Subscriptions`}};return h.forEach(t=>{e[t.id]={label:t.name,color:t.color}}),e},[h]),v=(0,G.useMemo)(()=>g===0?[]:h.map(e=>({label:e.name,count:e.count,percentage:e.count/g*100,color:e.color})),[h,g]);if(e||!n?.stats)return null;let b=h.length>0&&g>0;return(0,$.jsxs)(M,{children:[(0,$.jsx)(Le,{children:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(ze,{children:`Paid subscription breakdown`}),(0,$.jsxs)(Be,{children:[`New paid subscriptions `,B(t)]})]}),d.length>1&&(0,$.jsx)(`div`,{children:(0,$.jsxs)(Fe,{value:i,onValueChange:e=>a(e),children:[(0,$.jsx)(Ne,{className:`w-full`,children:(0,$.jsx)(Pe,{})}),(0,$.jsxs)(Me,{align:`end`,children:[(0,$.jsx)(je,{value:`billing-period`,children:`Billing period`}),(0,$.jsx)(je,{value:`tiers`,children:`Tiers`})]})]})})]})}),(0,$.jsx)(Re,{children:b?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(me,{className:`mx-auto aspect-square h-[250px] min-h-[250px] w-full`,config:_,children:(0,$.jsxs)(Wt,{children:[(0,$.jsxs)(`defs`,{children:[(0,$.jsxs)(`linearGradient`,{id:`gradientPurple`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-purple)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-purple)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientTeal`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-teal)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-teal)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientRose`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-rose)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-rose)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientBlue`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-blue)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-blue)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientOrange`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-orange)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-orange)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientGreen`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-green)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-green)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientAmber`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-amber)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-amber)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientYellow`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-yellow)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-yellow)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientDarkblue`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-darkblue)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-darkblue)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientGray`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-darkgray)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-darkgray)`,stopOpacity:.6})]})]}),(0,$.jsx)(ge,{content:(0,$.jsx)(Zt,{}),cursor:!1}),(0,$.jsx)(Q,{animationBegin:0,animationDuration:1e3,data:h,dataKey:`count`,innerRadius:70,nameKey:`name`,stroke:`var(--card)`,strokeWidth:5,children:(0,$.jsx)(O,{content:({viewBox:e})=>{if(e&&`cx`in e&&`cy`in e)return(0,$.jsxs)(`text`,{dominantBaseline:`middle`,textAnchor:`middle`,x:e.cx,y:e.cy,children:[(0,$.jsx)(`tspan`,{className:`fill-foreground text-2xl font-semibold tracking-tight`,x:e.cx,y:e.cy,children:f(g)}),(0,$.jsx)(`tspan`,{className:`fill-muted-foreground`,x:e.cx,y:(e.cy||0)+20,children:`Total`})]})}})})]})}),v.length>0&&(0,$.jsx)(`div`,{className:`mt-4 flex flex-wrap items-center justify-center gap-x-6 gap-y-1 text-sm text-muted-foreground`,children:v.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:e.color}}),(0,$.jsx)(`span`,{className:`max-w-[150px] truncate whitespace-nowrap`,title:e.label,children:e.label}),(0,$.jsxs)(`span`,{className:`font-medium text-foreground`,children:[Math.round(Number(e.percentage)||0),`%`]})]},e.label))})]}):(0,$.jsx)(`div`,{className:`py-12`,children:(0,$.jsx)(N,{description:`No new paid subscriptions ${B(t)}.`,title:`No new subscribers`,children:(0,$.jsx)(y,{strokeWidth:1.5})})})})]})};l();var $t=(e,t,n)=>{if(t===1){let t=u().format(`YYYY-MM-DD`),n=e.find(e=>e.date===t);return[{date:t,signups:n?.signups||0,cancellations:n?.cancellations||0}]}let{startDate:r,endDate:i}=mt(t),a=u(r).format(`YYYY-MM-DD`),o=new Map(e.map(e=>[e.date,e])),s=[],c=new Set;if(n===`monthly`){let e=u(r).startOf(`month`),t=u(i).startOf(`month`);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=t<a?a:t;if(!c.has(n)){c.add(n);let e=o.get(n);e?s.push(e):s.push({date:n,signups:0,cancellations:0})}e.add(1,`month`)}}else if(n===`weekly`){let e=u(r).startOf(`week`),t=u(i).startOf(`week`);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=t<a?a:t;if(!c.has(n)){c.add(n);let e=o.get(n);e?s.push(e):s.push({date:n,signups:0,cancellations:0})}e.add(1,`week`)}}else{let e=u(r),t=u(i);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=o.get(t);n?s.push(n):s.push({date:t,signups:0,cancellations:0}),e.add(1,`day`)}}return s},en=e=>{let t=gt(e);return t<30?[`daily`]:t>=91?[`weekly`,`monthly`]:[`daily`,`weekly`]},tn=e=>{let t=gt(e);return t<30?`daily`:t>=91?`monthly`:`weekly`},nn=({subscriptionData:e,memberData:t,range:n,isLoading:r})=>{let[i,a]=(0,G.useState)(()=>tn(n));(0,G.useEffect)(()=>{a(tn(n))},[n]);let o=(0,G.useMemo)(()=>en(n),[n]),s=(0,G.useMemo)(()=>{switch(i){case`daily`:return`none`;case`weekly`:return`weekly`;case`monthly`:return`monthly`}},[i]),c=(0,G.useMemo)(()=>ht(n,[],{overrideStrategy:s}),[n,s]),l=(0,G.useMemo)(()=>{if(e&&e.length>0){if(n===1){let t=u().format(`YYYY-MM-DD`),r=e.find(e=>e.date===t);return[{date:d(t,n),rawDate:t,new:r?.signups||0,cancelled:-(r?.cancellations||0)}]}let t=z(e,n,`signups`,`sum`,s),r=z(e,n,`cancellations`,`sum`,s),i=new Map(r.map(e=>[e.date,e])),a=t.map(e=>({date:e.date,signups:e.signups||0,cancellations:i.get(e.date)?.cancellations||0})),o=new Set(a.map(e=>e.date));return r.forEach(e=>{o.has(e.date)||a.push({date:e.date,signups:0,cancellations:e.cancellations||0})}),a.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),$t(a,n,s).map(e=>({date:d(e.date,c),rawDate:e.date,new:e.signups||0,cancelled:-(e.cancellations||0)}))}else{if(!t||t.length===0)return[];if(n===1){let e=u().format(`YYYY-MM-DD`),r=t.find(t=>t.date===e);return[{date:d(e,n),rawDate:e,new:r?.paid_subscribed||0,cancelled:-(r?.paid_canceled||0)}]}let e=z(t,n,`paid_subscribed`,`sum`,s),r=z(t,n,`paid_canceled`,`sum`,s),i=new Map(r.map(e=>[e.date,e])),a=e.map(e=>({date:e.date,paid_subscribed:e.paid_subscribed||0,paid_canceled:i.get(e.date)?.paid_canceled||0})),o=new Set(a.map(e=>e.date));return r.forEach(e=>{o.has(e.date)||a.push({date:e.date,paid_subscribed:0,paid_canceled:e.paid_canceled||0})}),a.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),a.map(e=>({date:d(e.date,c),rawDate:e.date,new:e.paid_subscribed||0,cancelled:-(e.paid_canceled||0)}))}},[t,e,n,s,c]),p={new:{label:`New`,color:`var(--chart-teal)`},cancelled:{label:`Cancelled`,color:`var(--chart-rose)`}},m=(0,G.useMemo)(()=>({new:l.reduce((e,t)=>e+t.new,0),cancelled:l.reduce((e,t)=>e+Math.abs(t.cancelled),0)}),[l]);if(r)return null;let h=l.length>0&&(m.new>0||m.cancelled>0),g=e=>e.charAt(0).toUpperCase()+e.slice(1);return(0,$.jsxs)(M,{"data-testid":`paid-members-change-card`,children:[(0,$.jsx)(Le,{children:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(ze,{children:`Paid subscriptions`}),(0,$.jsxs)(Be,{children:[`New and cancelled paid subscriptions `,B(n)]})]}),o.length>1&&(0,$.jsx)(`div`,{children:(0,$.jsxs)(Fe,{value:i,onValueChange:e=>a(e),children:[(0,$.jsx)(Ne,{className:`w-[110px]`,children:(0,$.jsx)(Pe,{})}),(0,$.jsx)(Me,{align:`end`,children:o.map(e=>(0,$.jsx)(je,{value:e,children:g(e)},e))})]})})]})}),(0,$.jsx)(Re,{children:h?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(me,{className:`aspect-auto h-[200px] w-full md:h-[220px] xl:h-[260px]`,config:p,children:(0,$.jsxs)(Oe,{data:l,stackOffset:`sign`,children:[(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`tealGradient`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--color-new)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--color-new)`,stopOpacity:.6})]})}),(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`roseGradient`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--color-cancelled)`,stopOpacity:.6}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--color-cancelled)`,stopOpacity:.8})]})}),(0,$.jsx)(Ee,{stroke:`var(--border)`,vertical:!1}),(0,$.jsx)(we,{axisLine:!1,dataKey:`date`,tickFormatter:()=>``,tickLine:!1,tickMargin:10}),(0,$.jsx)(Te,{axisLine:!1,tickFormatter:e=>f(e<0?e*-1:e),tickLine:!1}),(0,$.jsx)(ge,{content:(0,$.jsx)(fe,{className:`min-w-[120px]! px-3 py-2`,formatter:(e,t,n,r)=>{let i=Number(e),a=`0`;a=i===0?`0`:f(i<0?i*-1:i);let o=n?.payload,s=Number(o?.new||0)+Number(o?.cancelled||0),l=s===0?`0`:s>0?`+${f(s)}`:f(s),u=o?.date,m=o?.rawDate;return m&&(u=d(m,c)),(0,$.jsxs)(`div`,{className:`flex w-full flex-col`,children:[r===0&&(0,$.jsx)(`div`,{className:`mb-1 text-sm font-medium text-foreground`,children:u}),(0,$.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`div`,{className:`size-2 shrink-0 rounded-full bg-[var(--color-bg)] opacity-50`,style:{"--color-bg":`var(--color-${t})`}}),(0,$.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:p[t]?.label||t})]}),(0,$.jsx)(`div`,{className:`ml-auto flex items-baseline gap-0.5 font-mono font-medium text-foreground tabular-nums`,children:a})]}),r===1&&(0,$.jsxs)(`div`,{className:`mt-1 flex w-full items-center justify-between gap-4 border-t pt-1`,children:[(0,$.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`Net change`}),(0,$.jsx)(`div`,{className:`ml-auto flex items-baseline gap-0.5 font-mono font-medium text-foreground tabular-nums`,children:l})]})]})},hideLabel:!0}),cursor:!1,isAnimationActive:!1,position:{y:10}}),(0,$.jsx)(de,{activeBar:{fillOpacity:1},dataKey:`new`,fill:`url(#tealGradient)`,fillOpacity:.75,maxBarSize:32,minPointSize:3,radius:[4,4,0,0],stackId:`a`}),(0,$.jsx)(de,{activeBar:{fillOpacity:1},dataKey:`cancelled`,fill:`url(#roseGradient)`,fillOpacity:.75,maxBarSize:32,radius:[4,4,0,0],stackId:`a`})]})}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center justify-center gap-6 text-sm text-muted-foreground`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:p.new.color}}),(0,$.jsx)(`span`,{children:`New`}),(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:f(m.new)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:p.cancelled.color}}),(0,$.jsx)(`span`,{children:`Cancelled`}),(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:f(m.cancelled)})]})]})]}):(0,$.jsx)(`div`,{className:`py-12`,children:(0,$.jsx)(N,{description:`No paid subscription changes ${B(n)}.`,title:`No paid member changes`,children:(0,$.jsx)(_,{strokeWidth:1.5})})})})]})},rn=(e,t,n)=>{let r=e??30,i=t??`mrr desc`,{startDate:a,endDate:o}=(0,G.useMemo)(()=>mt(r),[r]),s=(0,G.useMemo)(()=>{let e={date_from:V(a),date_to:V(o),order:i};return n===`posts`?e.post_type=`post`:n===`pages`&&(e.post_type=`page`),e},[a,o,i,n]);return pt({searchParams:Object.fromEntries(Object.entries(s).filter(([,e])=>e!==void 0))})},an=()=>{let{range:e}=qe(),{site:t,settings:n}=bt(),i=Dt(n),a=c(),[o,l]=(0,G.useState)(`free_members desc`),[u,d]=(0,G.useState)(W.POSTS_AND_PAGES),[m]=s(),h=et(),g=rt(),_=m.get(`tab`)||`total-members`,[y,x]=(0,G.useState)(_);(0,G.useEffect)(()=>{_!==y&&x(_)},[_]);let{isLoading:S,chartData:C,totals:w,currencySymbol:T,subscriptionData:ee}=_t(e),{data:te,isLoading:E}=rn(e,o,u),D=(0,G.useMemo)(()=>{let e=(te?.stats||[]).reduce((e,t)=>{let n=t.post_id||(t.title&&t.title.trim()!==``?t.title:t.attribution_url);if(!n)return e;if(!e.has(n))e.set(n,t);else{let r=e.get(n);r.free_members+=t.free_members,r.paid_members+=t.paid_members,r.mrr+=t.mrr,e.set(n,r)}return e},new Map),t=Array.from(e.values()),n=t.reduce((e,t)=>e+t.free_members,0),r=t.reduce((e,t)=>e+t.paid_members,0),i=t.reduce((e,t)=>e+t.mrr,0);return t.map(e=>{let t=0;return o.includes(`free_members`)&&n>0?t=e.free_members/n:o.includes(`paid_members`)&&r>0?t=e.paid_members/r:o.includes(`mrr`)&&i>0&&(t=e.mrr/i),{title:e.title||e.attribution_url,post_id:e.post_id,attribution_url:e.attribution_url,attribution_type:e.attribution_type,attribution_id:e.attribution_id,free_members:e.free_members,paid_members:e.paid_members,mrr:e.mrr,percentage:t,published_at:e.published_at,url_exists:e.url_exists??!0}})},[te,o]),O=S,ne=S||E;return(0,$.jsxs)(st,{children:[(0,$.jsx)(ct,{children:(0,$.jsx)(r,{children:(0,$.jsx)(ot,{})})}),(0,$.jsxs)(lt,{data:O?void 0:C,isLoading:!1,loadingComponent:(0,$.jsx)($.Fragment,{}),children:[(0,$.jsx)(M,{"data-testid":`total-members-card`,children:(0,$.jsx)(Re,{children:(0,$.jsx)(qt,{chartData:C,currencySymbol:T,initialTab:_,isLoading:O,totals:w,onTabChange:x})})}),h&&y===`paid-members`&&(0,$.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-[2fr_minmax(460px,1fr)]`,children:[(0,$.jsx)(nn,{isLoading:O,memberData:C,range:e,subscriptionData:ee}),(0,$.jsx)(Qt,{isLoading:O,range:e})]}),(0,$.jsxs)(M,{className:`w-full overflow-x-auto`,"data-testid":`top-content-card`,children:[(0,$.jsxs)(Le,{children:[(0,$.jsx)(ze,{children:Tt(u)}),(0,$.jsx)(Be,{children:wt(u,e,B)})]}),(0,$.jsx)(Re,{children:(0,$.jsxs)(Ue,{children:[(0,$.jsx)(He,{children:(0,$.jsxs)(F,{className:`[&>th]:h-auto [&>th]:pt-0 [&>th]:pb-2`,children:[(0,$.jsx)(P,{className:`min-w-[320px] pl-0`,children:(0,$.jsx)(Ae,{defaultValue:u,variant:`button-sm`,onValueChange:e=>{d(e)},children:(0,$.jsxs)(ke,{children:[(0,$.jsx)(j,{value:W.POSTS_AND_PAGES,children:`Posts & pages`}),(0,$.jsx)(j,{value:W.POSTS,children:`Posts`}),(0,$.jsx)(j,{value:W.PAGES,children:`Pages`}),(0,$.jsx)(j,{value:W.SOURCES,children:`Sources`})]})})}),(0,$.jsx)(P,{className:`w-[140px] text-right`,children:h?(0,$.jsx)(A,{activeSortBy:o,setSortBy:l,sortBy:`free_members desc`,children:`Free members`}):(0,$.jsx)($.Fragment,{children:`Free members`})}),h&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(P,{className:`w-[140px] text-right`,children:(0,$.jsx)(A,{activeSortBy:o,setSortBy:l,sortBy:`paid_members desc`,children:`Paid members`})}),(0,$.jsx)(P,{className:`w-[140px] text-right`,children:(0,$.jsx)(A,{activeSortBy:o,setSortBy:l,sortBy:`mrr desc`,children:`MRR impact`})})]})]})}),u===W.SOURCES?(0,$.jsx)(Xt,{limit:20,range:e,setSortBy:e=>l(e),showViewAll:!0,sortBy:o}):(0,$.jsx)(I,{children:ne?(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-2`,colSpan:1,children:(0,$.jsx)(Ie,{containerClassName:`space-y-2`,count:5,maxWidth:75,randomize:!0})})}):g?D.length>0?D.map((e,n)=>(0,$.jsxs)(F,{className:`last:border-none`,children:[(0,$.jsx)(L,{children:(0,$.jsxs)(`div`,{className:`group/link inline-flex flex-col items-start gap-px`,children:[e.post_id&&e.attribution_type===`post`?(0,$.jsx)(b,{className:`h-auto p-0 text-left leading-tight font-medium whitespace-normal hover:underline!`,title:`View post analytics`,variant:`link`,onClick:Et(e.attribution_url,e.post_id,t.url||``,a,e.attribution_type),children:e.title}):(0,$.jsx)(`span`,{className:`font-medium`,children:e.title}),e.published_at&&p&&new Date(e.published_at).getTime()>0&&(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Published on `,p(e.published_at,i)]})]})}),(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[e.free_members>0&&`+`,f(e.free_members)]}),h&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[e.paid_members>0&&`+`,f(e.paid_members)]}),(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[e.mrr>0&&`+`,T,f(H(e.mrr))]})]})]},`${u}-${e.post_id||`${e.title}-${n}`}`)):(0,$.jsx)(F,{className:`border-none`,children:(0,$.jsx)(L,{className:`py-12 group-hover:bg-transparent!`,colSpan:h?4:2,children:(0,$.jsx)(N,{description:`Try adjusting your date range to see more data.`,title:`No conversions ${B(e)}`,children:(0,$.jsx)(v,{strokeWidth:1.5})})})}):(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:h?4:2,children:(0,$.jsx)(ut,{})})})})]})})]})]})]})};export{an as default};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{i as r,n as i,t as a}from"./source-icon-Ck5_5Kgq.js";import{h as o}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{a as s}from"./router-provider-B0gZyiGJ.js";import{l as c,m as l}from"./dist-B3keLvjj.js";import{L as u,Ln as d,c as f,g as p,t as m,u as h}from"./button-eNMKQWXr.js";import{n as g,t as _}from"./skeleton-Ce9GgUpf.js";import{a as v,i as y,n as b,o as x,r as S,t as C}from"./card--VNbfgo3.js";import{t as w}from"./empty-indicator-D9QdpuNX.js";import{a as T,c as E,n as D,r as O,s as k,t as A}from"./table-Do6iQ83Q.js";import{An as j,Fn as M,Mn as ee,Nn as N,P,Pn as F,Un as I,di as L,jn as R,li as z}from"./index-6MkPdCtr.js";import{t as B}from"./disabled-sources-indicator-DMRrxsiJ.js";import{t as V}from"./chart-helpers-CfBKt0vT.js";import{t as te}from"./use-analytics-data-CWCMAESo.js";import{a as H,i as U,n as W,r as G,t as K}from"./kpi-card-DFafD1qq.js";import{r as q,t as J}from"./post-analytics-header-BYCsT0GP.js";import{t as Y}from"./use-post-referrers-Czg47m8s.js";var X=e(t(),1),Z=n(),Q=`https://www.google.com/s2/favicons?domain=ghost.org&sz=64`,$=({headerStyle:e=`table`,children:t=`Source`,data:n,mode:r,defaultSourceIconUrl:i=Q})=>{let o=L();if(r===`growth`)return(0,Z.jsxs)(A,{children:[(0,Z.jsx)(k,{children:(0,Z.jsxs)(E,{children:[(0,Z.jsx)(T,{className:`min-w-[320px]`,variant:e===`table`?`default`:`cardhead`,children:t}),(0,Z.jsx)(T,{className:`w-[110px] text-right`,children:`Free members`}),o&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(T,{className:`w-[110px] text-right`,children:`Paid members`}),(0,Z.jsx)(T,{className:`w-[100px] text-right`,children:`MRR impact`})]})]})}),(0,Z.jsx)(D,{children:n?.map(e=>(0,Z.jsxs)(E,{className:`last:border-none`,children:[(0,Z.jsx)(O,{children:e.linkUrl?(0,Z.jsxs)(`a`,{className:`group flex items-center gap-2`,href:e.linkUrl,rel:`noreferrer`,target:`_blank`,children:[(0,Z.jsx)(a,{defaultSourceIconUrl:i,displayName:e.displayName,iconSrc:e.iconSrc}),(0,Z.jsx)(`span`,{className:`group-hover:underline`,children:e.displayName})]}):(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(a,{defaultSourceIconUrl:i,displayName:e.displayName,iconSrc:e.iconSrc}),(0,Z.jsx)(`span`,{children:e.displayName})]})}),(0,Z.jsxs)(O,{className:`text-right font-mono text-sm`,children:[`+`,l(e.free_members||0)]}),o&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(O,{className:`text-right font-mono text-sm`,children:[`+`,l(e.paid_members||0)]}),(0,Z.jsxs)(O,{className:`text-right font-mono text-sm`,children:[`+$`,l(V(e.mrr||0))]})]})]},e.source))})]})},ne=({title:e=`Top sources`,description:t,data:n,mode:a=`visits`,range:o=30,totalVisitors:s=0,siteUrl:l,siteIcon:d,defaultSourceIconUrl:f=Q,getPeriodText:h,className:g})=>{let _=z(),T=X.useMemo(()=>r({data:n,mode:a,siteUrl:l,siteIcon:d,defaultSourceIconUrl:f}),[n,l,d,a,f]),E=X.useMemo(()=>i({processedData:T,totalVisitors:s,mode:a}),[T,s,a]),D=E.slice(0,10),O=t||(a===`growth`?`Where did your growth come from?`:`How readers found your ${o?`site`:`post`}${o&&h?` ${h(o)}`:``}`),k=a===`growth`?`Sources`:`Top sources`,A=a===`growth`?`Where did your growth come from?`:`How readers found your ${o?`site`:`post`}${o&&h?` ${h(o)}`:``}`;return(0,Z.jsxs)(C,{className:c(`group/datalist w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]`,g),"data-testid":`top-sources-card`,children:[D.length<=0&&(0,Z.jsxs)(v,{children:[(0,Z.jsx)(x,{children:e}),(0,Z.jsx)(S,{children:O})]}),(0,Z.jsx)(b,{children:a===`growth`&&!_?(0,Z.jsx)(B,{className:`py-10`}):D.length>0?(0,Z.jsx)($,{data:D,defaultSourceIconUrl:f,getPeriodText:h,headerStyle:`card`,mode:a,range:o,children:(0,Z.jsxs)(v,{children:[(0,Z.jsx)(x,{children:e}),(0,Z.jsx)(S,{children:O})]})}):(0,Z.jsx)(`div`,{className:`py-20 text-center text-sm text-gray-700`,children:(0,Z.jsx)(w,{className:`h-full`,description:a===`growth`&&`Once someone signs up on this post, sources will show here`,title:`No sources data available ${h?h(o):``}`,children:(0,Z.jsx)(p,{strokeWidth:1.5})})})}),E.length>10&&(0,Z.jsx)(y,{children:(0,Z.jsxs)(j,{children:[(0,Z.jsx)(M,{asChild:!0,children:(0,Z.jsxs)(m,{variant:`outline`,children:[`View all `,(0,Z.jsx)(u,{})]})}),(0,Z.jsxs)(R,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,Z.jsxs)(N,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,Z.jsx)(F,{children:k}),(0,Z.jsx)(ee,{children:A})]}),(0,Z.jsx)(`div`,{className:`group/datalist`,children:(0,Z.jsx)($,{data:E,defaultSourceIconUrl:f,getPeriodText:h,mode:a,range:o})})]})]})})]})},re=()=>{let{site:e}=te(),{postId:t}=o(),{stats:n,totals:r,isLoading:i,currencySymbol:a}=Y(t||``),c=L(),u=s(),p=e=>u(P({filter:e})),m=e.url,y=e.icon,w=`flex flex-col items-stretch gap-6`,T=``;return c||(w=`grid grid-cols-1 border rounded-md`,T=`border-none hover:shadow-none`),(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(J,{currentTab:`Growth`}),(0,Z.jsx)(q,{children:i?(0,Z.jsxs)(`div`,{className:w,children:[(0,Z.jsx)(C,{className:T,children:(0,Z.jsx)(b,{className:`grid grid-cols-3 p-0`,children:Array.from({length:3},(e,t)=>(0,Z.jsxs)(`div`,{className:`h-[98px] gap-1 border-r px-6 py-5 last:border-r-0`,children:[(0,Z.jsx)(_,{className:`w-2/3`}),(0,Z.jsx)(_,{className:`h-7 w-12`})]},t))})}),(0,Z.jsxs)(C,{className:T,children:[(0,Z.jsxs)(v,{children:[(0,Z.jsx)(x,{children:`Top sources`}),(0,Z.jsx)(S,{children:`Where did your growth come from?`})]}),(0,Z.jsxs)(b,{children:[(0,Z.jsx)(I,{}),(0,Z.jsx)(g,{className:`pt-6`})]})]})]}):(0,Z.jsxs)(`div`,{className:w,children:[(0,Z.jsxs)(C,{className:T,"data-testid":`members-card`,children:[(0,Z.jsxs)(v,{className:`hidden`,children:[(0,Z.jsx)(x,{children:`Newsletters`}),(0,Z.jsx)(S,{children:`How did this post perform`})]}),(0,Z.jsx)(b,{className:`p-0`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col md:grid md:items-stretch ${c?`md:grid-cols-3`:`md:grid-cols-1`}`,children:[(0,Z.jsxs)(K,{className:`grow`,children:[(0,Z.jsx)(U,{onClick:()=>{p(`signup:'${t}'+conversion:-'${t}'`)},children:`View members →`}),(0,Z.jsxs)(G,{onClick:()=>{p(`signup:'${t}'+conversion:-'${t}'`)},children:[(0,Z.jsx)(h,{strokeWidth:1.5}),`Free members`]}),(0,Z.jsx)(W,{children:(0,Z.jsx)(H,{children:l(r?.free_members||0)})})]}),c&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(K,{className:`grow`,children:[(0,Z.jsx)(U,{onClick:()=>{p(`conversion:'${t}'`)},children:`View members →`}),(0,Z.jsxs)(G,{onClick:()=>{p(`conversion:'${t}'`)},children:[(0,Z.jsx)(f,{strokeWidth:1.5}),`Paid members`]}),(0,Z.jsx)(W,{children:(0,Z.jsx)(H,{children:l(r?.paid_members||0)})})]}),(0,Z.jsxs)(K,{className:`grow`,children:[(0,Z.jsxs)(G,{children:[(0,Z.jsx)(d,{strokeWidth:1.5}),`MRR`]}),(0,Z.jsx)(W,{children:(0,Z.jsxs)(H,{children:[`+`,a,V(r?.mrr||0)]})})]})]})]})})]}),!c&&(0,Z.jsx)(I,{}),(0,Z.jsx)(ne,{className:T,data:n,mode:`growth`,siteIcon:y,siteUrl:m})]})})]})};export{re as default};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{_ as r}from"./framework-provider-DqI25epG.js";import{t as i}from"./hooks-CuEZV2-q.js";import{t as a}from"./use-filterable-api-CzXcpUh8.js";import{h as o}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{m as s}from"./dist-B3keLvjj.js";import{t as c}from"./inline-BWSs_VzR.js";import{t as l}from"./stack-B2eszIiq.js";import{$n as u,D as d,a as f,ft as p,pn as m,t as h,xt as g}from"./button-eNMKQWXr.js";import{t as _}from"./switch-CI4gLWqb.js";import{t as v}from"./input-surface-BsrIZeSF.js";import{o as y,t as b}from"./use-settings-navigation-CZjGrhsp.js";import{i as x,n as S,t as C}from"./action-list-C4v0-du8.js";import{o as w,t as T}from"./field-Dihp5p18.js";import{t as E}from"./multi-select-combobox-BcITkUVr.js";import{In as D,Jn as O,Ln as k,N as A,Qn as j,dr as M,fr as N,lr as P}from"./index-6MkPdCtr.js";var F=e(t(),1),I=n(),L=({offset:e,onTrigger:t})=>{let n=(0,F.useRef)(null);return(0,F.useEffect)(()=>{let e=new IntersectionObserver(e=>{e[0].intersectionRatio<=0||t()});return n.current&&e.observe(n.current),()=>e.disconnect()},[t]),(0,I.jsx)(`div`,{ref:n,className:`absolute w-full`,style:{bottom:e}})},R=`ActionsResponseType`,z=(e,t)=>{let n=e=>e.event===`edited`&&typeof e.context?.action_name==`string`?e.context.action_name:``;return e.resource_id===t.resource_id&&e.resource_type===t.resource_type&&e.event===t.event&&n(e)===n(t)},B=i({dataType:R,path:`/actions/`,returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.actions.map(({context:e,...t})=>({...t,context:JSON.parse(e)})));n=n.reverse();let r=1;n.forEach((e,t)=>{let i=n[t+1];i&&z(e,i)?(e.skip=!0,r+=1):r>1&&(e.count=r,r=1)});let i=t[t.length-1].meta;return{actions:n.reverse(),meta:i,isEnd:i?i.pagination.pages===i.pagination.page:!0}}}),V=e=>{let t=e.resource_type;if(e.event!==`deleted`)switch(e.resource_type){case`page`:case`post`:return!e.resource||!e.resource.id?void 0:(t===`post`&&e.context?.type&&(t=e.context?.type),{isExternal:!0,route:`editor/${t}/${e.resource.id}`,models:[t,e.resource.id]});case`integration`:return!e.resource||!e.resource.id?void 0:{route:`integrations/${e.resource.id}`};case`offer`:return!e.resource||!e.resource.id?void 0:{isExternal:!0,route:`offers/${e.resource.id}`,models:[e.resource.id]};case`tag`:return!e.resource||!e.resource.slug?void 0:{isExternal:!0,route:`tag`,models:[e.resource.slug]};case`product`:return{route:`tiers`};case`user`:return!e.resource||!e.resource.slug?void 0:{route:`staff/${e.resource.slug}`}}},H=e=>{let t=e.resource_type;t===`api_key`?t=`API key`:t===`setting`?t=`settings`:t===`product`?t=`tier`:t===`gift_link`?t=`gift link`:t===`security_action`?t=`security action`:t===`member_custom_field`&&(t=`custom field`),t===`post`&&e.context?.type&&(t=e.context?.type);let n=e.event;return e.event===`edited`&&e.context?.action_name&&(n=e.context?.action_name),n===`reset_authentication`?n=`reset authentication`:n===`custom_fields_edited`&&(n=`custom fields edited`),e.context?.count&&e.context?.count>1?`${e.context?.count} ${t}s ${n}`:`${t.slice(0,1).toUpperCase()}${t.slice(1)} ${n}`},U=e=>{if(e.resource_type===`setting`&&e.context?.group&&e.context?.key)return{group:e.context?.group,key:e.context?.key}},W=e=>typeof e.context?.count==`number`&&e.context?.count>1,G=({action:e})=>{let t=g;switch(e.event){case`added`:t=p;break;case`deleted`:t=d;break}return(0,I.jsx)(t,{className:`size-3`})},K=({action:e})=>(0,I.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,I.jsx)(O,{className:`size-10`,...A({name:e.actor?.name||e.actor?.slug}),src:e.actor?.image}),(0,I.jsx)(`div`,{className:`absolute -right-1 -bottom-1 z-30 flex items-center justify-center rounded-full border border-border-default bg-background p-1 shadow-sm`,children:(0,I.jsx)(G,{action:e})})]}),q=({label:e,item:t,excludedItems:n,toggleItem:r})=>{let i=(0,F.useId)();return(0,I.jsxs)(T,{orientation:`horizontal`,children:[(0,I.jsx)(w,{htmlFor:i,children:e}),(0,I.jsx)(_,{checked:!n.includes(t),id:i,onCheckedChange:e=>r(t,e)})]})},J=({userId:e,excludedEvents:t,excludedResources:n,toggleEventType:r,toggleResourceType:i})=>{let{updateRoute:o}=b(),s=a({path:`/users/`,filterKey:`name`,responseKey:`users`}),[d,p]=(0,F.useState)([]),[m,g]=(0,F.useState)(),[_,y]=(0,F.useState)(!1),[x,S]=(0,F.useState)(!1),C=(0,F.useRef)(0),w=(0,F.useRef)(null),T=(0,F.useRef)(s);T.current=s;let D=(0,F.useCallback)(async(e,t)=>{try{let n=await T.current.loadData(e);t===C.current&&p(n.map(e=>({label:e.name,value:e.id})))}catch{t===C.current&&p([])}finally{t===C.current&&S(!1)}},[]),O=(0,F.useCallback)((e,t=!1)=>{C.current+=1;let n=C.current;S(!0),w.current&&clearTimeout(w.current),t?w.current=setTimeout(()=>void D(e,n),500):D(e,n)},[D]);(0,F.useEffect)(()=>(O(``),()=>{C.current+=1,w.current&&clearTimeout(w.current)}),[O]),(0,F.useEffect)(()=>{let t=!1;if(!e){g(null);return}return T.current.loadInitialValues([e],`id`).then(([e])=>{if(!t&&e){let t={label:e.name,value:e.id};g(t),p(e=>e.some(e=>e.value===t.value)?e:[t,...e])}}).catch(()=>{t||g(null)}),()=>{t=!0}},[e]);let k=()=>{g(null)};return(0,I.jsxs)(c,{align:`center`,gap:`md`,children:[(0,I.jsxs)(P,{children:[(0,I.jsx)(N,{asChild:!0,children:(0,I.jsx)(h,{type:`button`,variant:`outline`,children:`Filter`})}),(0,I.jsx)(M,{align:`end`,className:`z-[9999] w-[220px]`,"data-testid":`history-filters`,children:(0,I.jsxs)(l,{gap:`2xl`,children:[(0,I.jsxs)(l,{gap:`md`,children:[(0,I.jsx)(q,{excludedItems:t,item:`added`,label:`Added`,toggleItem:r}),(0,I.jsx)(q,{excludedItems:t,item:`edited`,label:`Edited`,toggleItem:r}),(0,I.jsx)(q,{excludedItems:t,item:`deleted`,label:`Deleted`,toggleItem:r})]}),(0,I.jsxs)(l,{gap:`md`,children:[(0,I.jsx)(q,{excludedItems:n,item:`post`,label:`Posts`,toggleItem:i}),(0,I.jsx)(q,{excludedItems:n,item:`page`,label:`Pages`,toggleItem:i}),(0,I.jsx)(q,{excludedItems:n,item:`tag`,label:`Tags`,toggleItem:i}),(0,I.jsx)(q,{excludedItems:n,item:`offer,product`,label:`Tiers & offers`,toggleItem:i}),(0,I.jsx)(q,{excludedItems:n,item:`api_key,integration,setting,user,webhook`,label:`Settings & staff`,toggleItem:i})]})]})})]}),(0,I.jsx)(`div`,{className:`w-[200px]`,children:(0,I.jsxs)(c,{className:`${v(`within`)} relative h-(--control-height) overflow-hidden`,gap:`none`,children:[(0,I.jsxs)(P,{open:_,onOpenChange:e=>{y(e),e&&O(``)},children:[(0,I.jsx)(N,{asChild:!0,children:(0,I.jsxs)(`button`,{"aria-label":`Staff`,className:`flex min-w-0 flex-1 items-center justify-between px-3 text-control`,"data-testid":`history-staff-filter`,role:`combobox`,type:`button`,children:[(0,I.jsx)(`span`,{className:m?`truncate pr-8`:`truncate pr-8 text-muted-foreground`,children:m?.label??`Search staff`}),(0,I.jsx)(u,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}),(0,I.jsx)(M,{align:`start`,className:`z-[9999] w-72 p-0`,children:(0,I.jsx)(E,{i18n:{searchPlaceholder:`Search staff`},isLoading:x,isMultiSelect:!1,options:m&&!d.some(e=>e.value===m.value)?[m,...d]:d,shouldFilter:!1,values:m?[m.value]:[],autoCloseOnSelect:!0,onChange:e=>{let t=d.find(t=>t.value===e[0]);t&&(g(t),o(`history/view/${t.value}`))},onClose:()=>y(!1),onSearchChange:e=>O(e,!0)})})]}),m&&(0,I.jsx)(`button`,{"aria-label":`Clear selection`,className:`absolute top-1/2 right-10 z-10 flex size-8 -translate-y-1/2 items-center justify-center text-muted-foreground hover:text-foreground`,type:`button`,onClick:()=>{k(),o(`history/view`)},children:(0,I.jsx)(f,{className:`size-4`})})]})})]})},Y=({action:e})=>{let{updateRoute:t}=b(),n=U(e);if(e.resource_type===`security_action`&&e.context?.action_name===`reset_authentication`){let t=typeof e.context.api_keys_rotated==`number`?e.context.api_keys_rotated:null,n=typeof e.context.users_locked==`number`?e.context.users_locked:null,r=[t===null?null:`${s(t)} API ${t===1?`key`:`keys`} rotated`,n===null?null:`${s(n)} ${n===1?`user`:`users`} locked`].filter(Boolean);return(0,I.jsx)(I.Fragment,{children:r.length?r.join(`, `):`Authentication reset`})}else if(n){let{group:e,key:t}=n;return(0,I.jsxs)(I.Fragment,{children:[e.slice(0,1).toUpperCase(),e.slice(1),e!==t&&(0,I.jsxs)(`span`,{children:[` `,(0,I.jsxs)(`code`,{className:`mb-1 bg-white text-gray-800 dark:bg-gray-900 dark:text-white`,children:[`(`,t,`)`]})]})]})}else if(e.resource?.title||e.resource?.name||e.context?.primary_name){let n=V(e);return n?(0,I.jsx)(`a`,{className:`cursor-pointer font-bold`,onClick:e=>{e.preventDefault(),t(n)},children:e.resource?.title||e.resource?.name}):(0,I.jsx)(I.Fragment,{children:e.resource?.title||e.resource?.name||e.context?.primary_name})}else return(0,I.jsx)(`span`,{className:`text-gray-500`,children:`(unknown)`})},X=e=>{let t=new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).formatToParts(e).reduce((e,{type:t,value:n})=>({...e,[t]:n}),{});return`${t.year}-${t.month}-${t.day} ${t.hour}:${t.minute}:${t.second}`},Z=200;function Q(){let{userId:e}=o(),{updateRoute:t}=b(),[n,i]=(0,F.useState)([]),[a,c]=(0,F.useState)([`label`]),{data:l,fetchNextPage:u,isFetchingNextPage:d}=B({searchParams:{include:`actor,resource`,limit:Z.toString(),filter:[n.length&&`event:-[${n.join(`,`)}]`,a.length&&`resource_type:-[${a.join(`,`)}]`,e&&`actor_id:'${e}'`].filter(Boolean).join(`+`)},getNextPageParams:(e,t)=>({...t,filter:[t.filter,e.actions.length&&`created_at:<'${X(new Date(e.actions[e.actions.length-1].created_at))}'`].join(`+`)}),placeholderData:r}),f=(0,F.useCallback)(()=>{l?.isEnd||u()},[l?.isEnd,u]),p=(e,t,n)=>{e(e=>n?e.concat(t):e.filter(e=>e!==t))},h=n.length>0||a.length>0||e;return(0,I.jsx)(y,{cancelLabel:``,okLabel:`Close`,scrolling:!0,size:`md`,stickyFooter:!0,stickyHeader:!0,testId:`history-modal`,title:`History`,topRightContent:(0,I.jsx)(J,{excludedEvents:n,excludedResources:a,toggleEventType:(e,t)=>p(i,e,!t),toggleResourceType:(e,t)=>p(c,e,!t),userId:e}),onClose:()=>{t(`history`)},onOk:()=>{t(`history`)},children:(0,I.jsx)(`div`,{className:`relative mt-6`,children:(0,I.jsxs)(C,{children:[l?.actions?l.actions.length>0?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(L,{offset:250,onTrigger:f}),l.actions.map(e=>!e.skip&&(0,I.jsx)(S,{children:(0,I.jsxs)(x,{className:`flex items-center gap-3 py-3`,children:[(0,I.jsx)(K,{action:e}),(0,I.jsxs)(`div`,{className:`min-w-0 grow`,children:[(0,I.jsxs)(`div`,{children:[H(e),W(e)?``:`: `,!W(e)&&(0,I.jsx)(Y,{action:e}),e.count?(0,I.jsxs)(I.Fragment,{children:[` `,s(e.count),` times`]}):null,(0,I.jsxs)(`span`,{children:[` — by `,e.actor?.name||e.actor?.slug]})]}),(0,I.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:[new Date(e.created_at).toLocaleDateString(`default`,{year:`numeric`,month:`short`,day:`2-digit`}),new Date(e.created_at).toLocaleTimeString(`default`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})].join(` | `)})]})]})},e.id)),d&&(0,I.jsx)(`div`,{className:`flex items-center justify-center p-5`,children:(0,I.jsx)(j,{size:`md`})})]}):(0,I.jsxs)(D,{children:[(0,I.jsx)(k,{children:(0,I.jsx)(m,{})}),h?`No entries match your current filters.`:`No history entries found.`]}):l===void 0?(0,I.jsx)(`div`,{className:`flex items-center justify-center px-5 pt-12 pb-10`,children:(0,I.jsx)(`div`,{className:`flex h-64 items-center justify-center`,children:(0,I.jsx)(j,{size:`lg`})})}):(0,I.jsx)(D,{children:`No entries found.`}),l?.isEnd&&l.actions.length>0&&(0,I.jsx)(`div`,{className:`border-t border-border pt-2 text-sm text-muted-foreground`,children:`End of history log`})]})})})}export{Q as default};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{i as r}from"./framework-provider-DqI25epG.js";import{w as i}from"./dist-B3keLvjj.js";import{t as a}from"./stack-B2eszIiq.js";import{s as o}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{t as s}from"./input-surface-BsrIZeSF.js";import{o as c,r as l}from"./field-Cj8lmDOo.js";import{n as u,t as d}from"./koenig-loader-DYZpm6El.js";var f=e(t(),1),p=n(),m=({editor:e,onBlur:t,placeholder:n,nodes:i,emojiPicker:a=!0,darkMode:s=!1,singleParagraph:c=!1,children:l,initialEditorState:u,onChange:d,fileUploader:m,cardConfig:h,registerAPI:g})=>{let _=(0,f.useCallback)(e=>{try{r({error:e,tags:{lexical:!0},contexts:{koenig:{version:window[`@tryghost/koenig-lexical`]?.version}}})}catch(e){console.error(e)}console.error(e)},[]),{setFocusState:v}=o(),y=()=>{t&&t(),v(!1)},b=()=>{v(!0)},x=(0,f.useMemo)(()=>new Proxy({},{get:(t,n)=>e.read()[n]}),[e]),S={DEFAULT_NODES:x.DEFAULT_TRANSFORMERS,BASIC_NODES:x.BASIC_TRANSFORMERS,MINIMAL_NODES:x.MINIMAL_TRANSFORMERS,EMAIL_NODES:x.EMAIL_TRANSFORMERS,EMAIL_EDITOR_NODES:x.EMAIL_TRANSFORMERS},C=i||`DEFAULT_NODES`;return(0,p.jsx)(x.KoenigComposer,{cardConfig:h,darkMode:s,fileUploader:m,initialEditorState:u,nodes:x[C],onError:_,children:(0,p.jsxs)(x.KoenigComposableEditor,{className:`koenig-lexical koenig-lexical-editor-input`,isSnippetsEnabled:!1,markdownTransformers:S[C],placeholderClassName:`koenig-lexical-editor-input-placeholder line-clamp-1`,placeholderText:n,registerAPI:g,singleParagraph:c,onBlur:y,onChange:d,onFocus:b,children:[l(x),a?(0,p.jsx)(x.EmojiPickerPlugin,{}):null]})})},h=({className:e,children:t,initialEditorState:n,onChange:r,inheritFontStyles:i=!0,loadingFallback:a,...s})=>{let{darkMode:c}=o(),l=(0,f.useMemo)(()=>d(),[]);return(0,p.jsx)(`div`,{className:e||`w-full`,children:(0,p.jsx)(`div`,{className:`koenig-react-editor w-full ${i?`[&_*]:font-inherit! [&_*]:[font-size:inherit]!`:``}`,children:(0,p.jsx)(u,{name:`editor`,children:(0,p.jsx)(f.Suspense,{fallback:a||(0,p.jsx)(`p`,{className:`koenig-react-editor-loading`,children:`Loading editor...`}),children:(0,p.jsx)(m,{...s,darkMode:c,editor:l,initialEditorState:n,onChange:r,children:t})})})})})},g=({value:e,onChange:t,singleParagraph:n=!0,...r})=>{let i=(0,f.useCallback)(n=>{let r=new DOMParser().parseFromString(n,`text/html`);r.querySelectorAll(`*`).forEach(e=>{e.style.removeProperty(`white-space`),e.getAttribute(`style`)||e.removeAttribute(`style`)}),r.body.innerHTML!==e&&t?.(r.body.innerHTML)},[e,t]);return(0,p.jsx)(h,{...r,singleParagraph:n,children:t=>(0,p.jsx)(t.HtmlOutputPlugin,{html:e,setHtml:i})})},_=({title:e,hideTitle:t,error:n,hint:r,value:o,clearBg:u=!1,className:d=``,containerClassName:f=``,hintClassName:m=``,unstyled:h=!1,..._})=>{let v=h?``:i(s(`within`),`flex min-h-8 items-center py-1.5 md:min-h-[var(--control-height)]`,u?`bg-transparent`:`px-3`,n&&`border-destructive`,e&&!t&&!u&&`mt-2`,d);return(0,p.jsxs)(a,{className:f,gap:`none`,children:[e&&(0,p.jsx)(c,{className:t?`sr-only`:void 0,children:e}),(0,p.jsx)(`div`,{className:v,children:(0,p.jsx)(g,{..._,value:o})}),r&&(0,p.jsx)(l,{className:i(`last:mt-2`,n&&`text-destructive`,m),children:r})]})};export{_ as t};
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{i as r}from"./framework-provider-DqI25epG.js";import{w as i}from"./dist-B3keLvjj.js";import{t as a}from"./stack-B2eszIiq.js";import{s as o}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{t as s}from"./input-surface-BsrIZeSF.js";import{o as c,r as l}from"./field-Dihp5p18.js";import{n as u,t as d}from"./koenig-loader-aFQNlJlD.js";var f=e(t(),1),p=n(),m=({editor:e,onBlur:t,placeholder:n,nodes:i,emojiPicker:a=!0,darkMode:s=!1,singleParagraph:c=!1,children:l,initialEditorState:u,onChange:d,fileUploader:m,cardConfig:h,registerAPI:g})=>{let _=(0,f.useCallback)(e=>{try{r({error:e,tags:{lexical:!0},contexts:{koenig:{version:window[`@tryghost/koenig-lexical`]?.version}}})}catch(e){console.error(e)}console.error(e)},[]),{setFocusState:v}=o(),y=()=>{t&&t(),v(!1)},b=()=>{v(!0)},x=(0,f.useMemo)(()=>new Proxy({},{get:(t,n)=>e.read()[n]}),[e]),S={DEFAULT_NODES:x.DEFAULT_TRANSFORMERS,BASIC_NODES:x.BASIC_TRANSFORMERS,MINIMAL_NODES:x.MINIMAL_TRANSFORMERS,EMAIL_NODES:x.EMAIL_TRANSFORMERS,EMAIL_EDITOR_NODES:x.EMAIL_TRANSFORMERS},C=i||`DEFAULT_NODES`;return(0,p.jsx)(x.KoenigComposer,{cardConfig:h,darkMode:s,fileUploader:m,initialEditorState:u,nodes:x[C],onError:_,children:(0,p.jsxs)(x.KoenigComposableEditor,{className:`koenig-lexical koenig-lexical-editor-input`,isSnippetsEnabled:!1,markdownTransformers:S[C],placeholderClassName:`koenig-lexical-editor-input-placeholder line-clamp-1`,placeholderText:n,registerAPI:g,singleParagraph:c,onBlur:y,onChange:d,onFocus:b,children:[l(x),a?(0,p.jsx)(x.EmojiPickerPlugin,{}):null]})})},h=({className:e,children:t,initialEditorState:n,onChange:r,inheritFontStyles:i=!0,loadingFallback:a,...s})=>{let{darkMode:c}=o(),l=(0,f.useMemo)(()=>d(),[]);return(0,p.jsx)(`div`,{className:e||`w-full`,children:(0,p.jsx)(`div`,{className:`koenig-react-editor w-full ${i?`[&_*]:font-inherit! [&_*]:[font-size:inherit]!`:``}`,children:(0,p.jsx)(u,{name:`editor`,children:(0,p.jsx)(f.Suspense,{fallback:a||(0,p.jsx)(`p`,{className:`koenig-react-editor-loading`,children:`Loading editor...`}),children:(0,p.jsx)(m,{...s,darkMode:c,editor:l,initialEditorState:n,onChange:r,children:t})})})})})},g=({value:e,onChange:t,singleParagraph:n=!0,...r})=>{let i=(0,f.useCallback)(n=>{let r=new DOMParser().parseFromString(n,`text/html`);r.querySelectorAll(`*`).forEach(e=>{e.style.removeProperty(`white-space`),e.getAttribute(`style`)||e.removeAttribute(`style`)}),r.body.innerHTML!==e&&t?.(r.body.innerHTML)},[e,t]);return(0,p.jsx)(h,{...r,singleParagraph:n,children:t=>(0,p.jsx)(t.HtmlOutputPlugin,{html:e,setHtml:i})})},_=({title:e,hideTitle:t,error:n,hint:r,value:o,clearBg:u=!1,className:d=``,containerClassName:f=``,hintClassName:m=``,unstyled:h=!1,..._})=>{let v=h?``:i(s(`within`),`flex min-h-8 items-center py-1.5 md:min-h-[var(--control-height)]`,u?`bg-transparent`:`px-3`,n&&`border-destructive`,e&&!t&&!u&&`mt-2`,d);return(0,p.jsxs)(a,{className:f,gap:`none`,children:[e&&(0,p.jsx)(c,{className:t?`sr-only`:void 0,children:e}),(0,p.jsx)(`div`,{className:v,children:(0,p.jsx)(g,{..._,value:o})}),r&&(0,p.jsx)(l,{className:i(`last:mt-2`,n&&`text-destructive`,m),children:r})]})};export{_ as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{n as r}from"./hooks-CuEZV2-q.js";import{l as i,o as a}from"./dist-B3keLvjj.js";import{t as o}from"./button-B2jcu6bk.js";import{t as s}from"./dropzone-Bb-5zQTk.js";var c=e(t(),1),l=n(),u=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`div`,{ref:n,className:i(`relative overflow-hidden rounded-md`,e),"data-slot":`image-upload`,...t}));u.displayName=`ImageUpload`;var d=c.forwardRef(({className:e,variant:t=`filled`,...n},r)=>(0,l.jsx)(s,{ref:r,className:i(`size-full text-foreground`,e),"data-slot":`image-upload-dropzone`,variant:t,...n}));d.displayName=`ImageUploadDropzone`;var f=a(`group relative flex size-full items-center justify-center overflow-hidden rounded-md bg-muted`,{variants:{background:{default:``,checkerboard:`[background-image:repeating-conic-gradient(var(--border-default)_0%_25%,var(--surface-elevated)_0%_50%)] [background-size:16px_16px]`}},defaultVariants:{background:`default`}}),p=c.forwardRef(({background:e,className:t,...n},r)=>(0,l.jsx)(`div`,{ref:r,className:i(f({background:e}),t),"data-slot":`image-upload-preview`,"data-testid":`image-upload-container`,...n}));p.displayName=`ImageUploadPreview`;var m=c.forwardRef(({alt:e=``,className:t,...n},r)=>(0,l.jsx)(`img`,{ref:r,alt:e,className:i(`size-full object-cover`,t),"data-slot":`image-upload-image`,...n}));m.displayName=`ImageUploadImage`;var h=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`div`,{ref:n,className:i(`absolute top-2 right-2 flex gap-1 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 [@media(hover:none)]:opacity-100`,e),"data-slot":`image-upload-actions`,...t}));h.displayName=`ImageUploadActions`;var g=c.forwardRef(({className:e,size:t=`icon`,variant:n=`ghost`,...r},a)=>(0,l.jsx)(o,{ref:a,className:i(`size-8 bg-surface-inverse text-surface-inverse-foreground hover:bg-surface-inverse/90 hover:text-surface-inverse-foreground`,e),"data-slot":`image-upload-action`,size:t,variant:n,...r}));g.displayName=`ImageUploadAction`;var _=r({method:`POST`,path:()=>`/images/upload/`,body:({file:e})=>{let t=new FormData;return t.append(`file`,e),t.append(`purpose`,`image`),t}}),v=e=>e.images[0].url;export{h as a,p as c,g as i,_ as n,d as o,u as r,m as s,v as t};
1
+ import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-DX3WBWVO.js";import{n as r}from"./hooks-CuEZV2-q.js";import{l as i,o as a}from"./dist-B3keLvjj.js";import{t as o}from"./button-eNMKQWXr.js";import{t as s}from"./dropzone-D7nFdAe5.js";var c=e(t(),1),l=n(),u=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`div`,{ref:n,className:i(`relative overflow-hidden rounded-md`,e),"data-slot":`image-upload`,...t}));u.displayName=`ImageUpload`;var d=c.forwardRef(({className:e,variant:t=`filled`,...n},r)=>(0,l.jsx)(s,{ref:r,className:i(`size-full text-foreground`,e),"data-slot":`image-upload-dropzone`,variant:t,...n}));d.displayName=`ImageUploadDropzone`;var f=a(`group relative flex size-full items-center justify-center overflow-hidden rounded-md bg-muted`,{variants:{background:{default:``,checkerboard:`[background-image:repeating-conic-gradient(var(--border-default)_0%_25%,var(--surface-elevated)_0%_50%)] [background-size:16px_16px]`}},defaultVariants:{background:`default`}}),p=c.forwardRef(({background:e,className:t,...n},r)=>(0,l.jsx)(`div`,{ref:r,className:i(f({background:e}),t),"data-slot":`image-upload-preview`,"data-testid":`image-upload-container`,...n}));p.displayName=`ImageUploadPreview`;var m=c.forwardRef(({alt:e=``,className:t,...n},r)=>(0,l.jsx)(`img`,{ref:r,alt:e,className:i(`size-full object-cover`,t),"data-slot":`image-upload-image`,...n}));m.displayName=`ImageUploadImage`;var h=c.forwardRef(({className:e,...t},n)=>(0,l.jsx)(`div`,{ref:n,className:i(`absolute top-2 right-2 flex gap-1 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100 [@media(hover:none)]:opacity-100`,e),"data-slot":`image-upload-actions`,...t}));h.displayName=`ImageUploadActions`;var g=c.forwardRef(({className:e,size:t=`icon`,variant:n=`ghost`,...r},a)=>(0,l.jsx)(o,{ref:a,className:i(`size-8 bg-surface-inverse text-surface-inverse-foreground hover:bg-surface-inverse/90 hover:text-surface-inverse-foreground`,e),"data-slot":`image-upload-action`,size:t,variant:n,...r}));g.displayName=`ImageUploadAction`;var _=r({method:`POST`,path:()=>`/images/upload/`,body:({file:e})=>{let t=new FormData;return t.append(`file`,e),t.append(`purpose`,`image`),t}}),v=e=>e.images[0].url;export{h as a,p as c,g as i,_ as n,d as o,u as r,m as s,v as t};
@@ -1,4 +1,4 @@
1
- import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{t as r}from"./jsx-runtime-DX3WBWVO.js";import{h as i}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{s as a}from"./router-provider-B0gZyiGJ.js";import{C as o}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{dt as s,jt as c,on as l,t as u}from"./button-B2jcu6bk.js";import{i as d,o as f,r as p,s as m,t as h}from"./dialog-B44iRwlc.js";import{i as g,r as _,t as v}from"./popover-CCy0h5rq.js";import{t as y}from"./skeleton-Ce9GgUpf.js";import{n as b}from"./loading-indicator-BpFWTVgh.js";import{t as x}from"./empty-indicator-D9QdpuNX.js";import{t as S}from"./use-navigate-with-base-path-BHPA228f.js";import{Bt as C,Ct as w,It as T,Jt as E,Rn as ee,St as te,W as D,Y as O,_t as k,an as A,at as ne,dt as re,ft as ie,gt as j,ht as ae,in as M,it as N,lt as oe,mt as se,on as ce,ot as le,pt as ue,q as de,rn as P,rt as fe,st as pe,ut as me,vt as F,yt as I}from"./index-DjQe-e5s.js";import"./layout-c_B_1hax.js";import{t as L}from"./topic-filter-DY4gNHn2.js";import{i as he,n as ge,r as _e,t as ve}from"./use-reply-chain-data-BeQwz8oF.js";var R=e(n(),1),z=r(),B=[`1.5rem`,`1.6rem`,`1.7rem`,`1.8rem`,`2rem`],V={BACKGROUND_COLOR:`ghost-ap-background-color`,FONT_SIZE:`ghost-ap-font-size`,FONT_FAMILY:`ghost-ap-font-family`,FONT_STYLE:`ghost-ap-font-style`},H={SYSTEM:{id:`system`,color:`#fff`,background:`bg-white dark:bg-black`,button:`bg-white dark:bg-black`,border:`border-black/[8%] dark:border-gray-950`},SEPIA:{id:`sepia`,color:`#FCF8F1`,background:`bg-[#FCF8F1]`,button:`bg-[#FCF8F1] hover:bg-black/[3%] text-black hover:text-black`,border:`border-black/[8%]`},LIGHT:{id:`light`,color:`#fff`,background:`bg-white`,button:`hover:bg-black/[3%] text-black hover:text-black`,border:`border-black/[8%] dark:border-gray-950`},DARK:{id:`dark`,color:`#15171a`,background:`bg-black`,button:`text-white dark:bg-black dark:hover:bg-gray-900`,border:`border-black/[8%] dark:border-gray-950`}},ye=()=>{let[e,t]=(0,R.useState)(()=>localStorage.getItem(V.BACKGROUND_COLOR)?.toUpperCase()||`SYSTEM`),[n,r]=(0,R.useState)(()=>{let e=localStorage.getItem(V.FONT_SIZE);return e?parseInt(e):2}),[i,a]=(0,R.useState)(()=>localStorage.getItem(V.FONT_STYLE)||`sans`);return(0,R.useEffect)(()=>{localStorage.setItem(V.FONT_SIZE,n.toString())},[n]),(0,R.useEffect)(()=>{localStorage.setItem(V.FONT_STYLE,i)},[i]),{backgroundColor:e,currentFontSizeIndex:n,fontStyle:i,handleColorChange:e=>{t(e),localStorage.setItem(V.BACKGROUND_COLOR,H[e].id)},setFontStyle:a,increaseFontSize:()=>{r(e=>Math.min(e+1,B.length-1))},decreaseFontSize:()=>{r(e=>Math.max(e-1,0))},resetFontSize:()=>r(2),fontSize:B[n]}},be=({backgroundColor:e,currentFontSizeIndex:t,fontStyle:n,onColorChange:r,onFontStyleChange:i,onDecreaseFontSize:a,onIncreaseFontSize:o,onResetFontSize:s,onOpenChange:c})=>(0,z.jsx)(U,{backgroundColor:e,currentFontSizeIndex:t,fontStyle:n,isActiveColor:t=>e===t,isActiveFont:e=>n===e,onColorChange:r,onDecreaseFontSize:a,onFontStyleChange:i,onIncreaseFontSize:o,onOpenChange:c,onResetFontSize:s}),U=({backgroundColor:e,isActiveColor:t,isActiveFont:n,onColorChange:r,onFontStyleChange:i,currentFontSizeIndex:a,onDecreaseFontSize:l,onIncreaseFontSize:d,onResetFontSize:f,onOpenChange:p})=>(0,z.jsxs)(v,{modal:!1,onOpenChange:p,children:[(0,z.jsx)(g,{asChild:!0,children:(0,z.jsx)(u,{"aria-label":`Reading options`,className:`size-9 rounded-full ${H[e].button}`,variant:`ghost`,children:(0,z.jsx)(o.Typography,{className:`size-[18px]!`})})}),(0,z.jsx)(_,{align:`end`,className:`w-[224px]`,onCloseAutoFocus:e=>e.preventDefault(),onOpenAutoFocus:e=>e.preventDefault(),children:(0,z.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-[6px]`,children:[(0,z.jsx)(u,{className:`h-7 flex-1 rounded-[6px] bg-gray-200 p-0 text-[1.1rem] text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px] ${t(`SYSTEM`)?`outline-2 outline-green`:``}`,variant:`secondary`,onClick:()=>r(`SYSTEM`),children:`Auto`}),(0,z.jsx)(u,{className:`h-7 flex-1 rounded-[6px] bg-[#ece6d9] p-0 hover:bg-[#ece6d9] ${t(`SEPIA`)?`outline-2 outline-green`:`border border-[#ece6d9]`}`,onClick:()=>r(`SEPIA`)}),(0,z.jsx)(u,{className:`h-7 flex-1 rounded-[6px] bg-white p-0 hover:bg-white ${t(`LIGHT`)?`outline-2 outline-green`:`border border-gray-200`}`,onClick:()=>r(`LIGHT`)}),(0,z.jsx)(u,{className:`h-7 flex-1 rounded-[6px] bg-black p-0 hover:bg-black dark:border dark:border-gray-950 ${t(`DARK`)?`outline-2 outline-green`:``}`,onClick:()=>r(`DARK`)})]}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsxs)(u,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 ${n(`sans`)&&`outline-2 outline-green`}`,variant:`secondary`,onClick:()=>i(`sans`),children:[(0,z.jsx)(`span`,{className:`text-[2rem] leading-none font-bold`,children:`Aa`}),(0,z.jsx)(`span`,{className:`text-[1.1rem]`,children:`System`})]}),(0,z.jsxs)(u,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 ${n(`serif`)&&`outline-2 outline-green`}`,variant:`secondary`,onClick:()=>i(`serif`),children:[(0,z.jsx)(`span`,{className:`pt-1 font-serif text-[2rem] leading-none font-bold`,children:`Aa`}),(0,z.jsx)(`span`,{className:`font-serif text-[1.2rem]`,children:`Serif`})]})]}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(u,{"aria-label":`Decrease text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]`,disabled:a===0,variant:`secondary`,onClick:l,children:(0,z.jsx)(c,{})}),(0,z.jsx)(u,{"aria-label":`Reset text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900`,variant:`secondary`,onClick:f,children:(0,z.jsx)(`span`,{className:`text-[1.6rem] font-bold`,children:`Aa`})}),(0,z.jsx)(u,{"aria-label":`Increase text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]`,disabled:a===B.length-1,variant:`secondary`,onClick:d,children:(0,z.jsx)(s,{})})]})]})})]}),xe=({tocItems:e,iframeElement:t,modalRef:n,className:r=`visible! absolute inset-y-0 right-7 z-40 hidden lg:block!`,onOpenChange:i})=>{let[a,o]=(0,R.useState)(null),s=R.useRef(!1);return(0,R.useEffect)(()=>{if(!t?.contentDocument||e.length<=1)return;let r=n.current;if(!r)return;let i=()=>{if(s.current)return;let n=t.contentDocument;if(!n)return;let i=r.scrollTop,a=e.map(e=>n.getElementById(e.id)).filter(e=>e!==null).map(e=>({id:e.id,top:e.offsetTop}));if(!a.length)return;let c=a.reduce((e,t)=>t.top-100<=i?t:e);o(c?.id||null)},a=()=>{requestAnimationFrame(i)};return r.addEventListener(`scroll`,a),i(),()=>{r.removeEventListener(`scroll`,a)}},[t,e,n]),e.length<=1?null:(0,z.jsx)(`div`,{className:r,children:(0,z.jsx)(`div`,{className:`sticky top-1/2 -translate-y-1/2`,children:(0,z.jsx)(W,{activeHeading:a||``,items:e,onItemClick:e=>{if(!t?.contentDocument)return;let r=t.contentDocument.getElementById(e);r&&n.current&&(s.current=!0,o(e),n.current.scrollTo({top:r.offsetTop-20,behavior:`smooth`}),setTimeout(()=>{s.current=!1},1e3))},onOpenChange:i})})})},Se={1:`w-3`,2:`w-2`,3:`w-1`},Ce={1:`pl-2`,2:`pl-6`,3:`pl-10`},W=({items:e,activeHeading:t,onItemClick:n,onOpenChange:r})=>{let[i,a]=(0,R.useState)(!1),o=R.useRef();if(R.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]),e.length===0)return null;let s=e=>Math.min(e,3),c=e=>Se[s(e)],l=e=>Ce[s(e)],u=()=>{o.current&&clearTimeout(o.current),a(!0),r?.(!0)},d=()=>{o.current=setTimeout(()=>{a(!1),r?.(!1)},100)};return(0,z.jsxs)(v,{modal:!1,open:i,onOpenChange:a,children:[(0,z.jsx)(g,{asChild:!0,children:(0,z.jsx)(`div`,{className:`absolute top-1/2 right-2 flex -translate-y-1/2 flex-col items-end gap-2 rounded-md p-2 text-base dark:bg-black`,onMouseEnter:u,onMouseLeave:d,children:e.map(e=>(0,z.jsx)(`div`,{className:`h-[2px] rounded-sm ${t===e.id?`bg-black dark:bg-white`:`bg-gray-400 dark:bg-gray-700`} pr-1 transition-all ${c(e.level)}`},e.id))})}),(0,z.jsx)(_,{align:`center`,className:`w-[240px] p-2`,side:`left`,sideOffset:-28,onCloseAutoFocus:e=>e.preventDefault(),onMouseEnter:u,onMouseLeave:d,onOpenAutoFocus:e=>e.preventDefault(),children:(0,z.jsx)(`nav`,{"aria-label":`Table of contents navigation`,className:`max-h-[60vh] overflow-y-auto`,role:`navigation`,children:e.map(e=>(0,z.jsx)(`button`,{className:`line-clamp-2 block w-full cursor-pointer rounded py-1 text-left text-sm leading-tight ${t===e.id?`text-black dark:text-white`:`text-gray-700 dark:text-gray-600`} hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-grey-950 dark:hover:text-white ${l(e.level)}`,type:`button`,onClick:()=>n(e.id),children:(0,z.jsx)(`span`,{className:`line-clamp-2`,children:e.text})},e.id))})})]})},we=()=>`<style>
1
+ import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{t as r}from"./jsx-runtime-DX3WBWVO.js";import{h as i}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{s as a}from"./router-provider-B0gZyiGJ.js";import{C as o}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{Mt as s,cn as c,ft as l,t as u}from"./button-eNMKQWXr.js";import{t as d}from"./skeleton-Ce9GgUpf.js";import{t as f}from"./empty-indicator-D9QdpuNX.js";import{t as p}from"./use-navigate-with-base-path-BHPA228f.js";import{Bt as m,Dn as h,Dt as g,En as _,Et as v,Ft as y,Gt as ee,It as b,Lt as x,Mt as S,Nt as C,On as w,Ot as T,Pt as E,Qn as D,Rt as O,Tn as k,Tt as te,Un as ne,Vt as re,Wt as ie,_t as ae,cn as oe,dr as se,fr as A,ft as ce,gn as j,gr as le,hr as M,ht as N,in as ue,jt as de,kt as fe,lr as P,pr as F,vr as pe,yr as me,zt as I}from"./index-6MkPdCtr.js";import"./layout-Bjv2Ll-5.js";import{t as L}from"./topic-filter-BgC3g5_v.js";import{i as he,n as ge,r as _e,t as ve}from"./use-reply-chain-data-ns0caK8k.js";var R=e(n(),1),z=r(),B=[`1.5rem`,`1.6rem`,`1.7rem`,`1.8rem`,`2rem`],V={BACKGROUND_COLOR:`ghost-ap-background-color`,FONT_SIZE:`ghost-ap-font-size`,FONT_FAMILY:`ghost-ap-font-family`,FONT_STYLE:`ghost-ap-font-style`},H={SYSTEM:{id:`system`,color:`#fff`,background:`bg-white dark:bg-black`,button:`bg-white dark:bg-black`,border:`border-black/[8%] dark:border-gray-950`},SEPIA:{id:`sepia`,color:`#FCF8F1`,background:`bg-[#FCF8F1]`,button:`bg-[#FCF8F1] hover:bg-black/[3%] text-black hover:text-black`,border:`border-black/[8%]`},LIGHT:{id:`light`,color:`#fff`,background:`bg-white`,button:`hover:bg-black/[3%] text-black hover:text-black`,border:`border-black/[8%] dark:border-gray-950`},DARK:{id:`dark`,color:`#15171a`,background:`bg-black`,button:`text-white dark:bg-black dark:hover:bg-gray-900`,border:`border-black/[8%] dark:border-gray-950`}},ye=()=>{let[e,t]=(0,R.useState)(()=>localStorage.getItem(V.BACKGROUND_COLOR)?.toUpperCase()||`SYSTEM`),[n,r]=(0,R.useState)(()=>{let e=localStorage.getItem(V.FONT_SIZE);return e?parseInt(e):2}),[i,a]=(0,R.useState)(()=>localStorage.getItem(V.FONT_STYLE)||`sans`);return(0,R.useEffect)(()=>{localStorage.setItem(V.FONT_SIZE,n.toString())},[n]),(0,R.useEffect)(()=>{localStorage.setItem(V.FONT_STYLE,i)},[i]),{backgroundColor:e,currentFontSizeIndex:n,fontStyle:i,handleColorChange:e=>{t(e),localStorage.setItem(V.BACKGROUND_COLOR,H[e].id)},setFontStyle:a,increaseFontSize:()=>{r(e=>Math.min(e+1,B.length-1))},decreaseFontSize:()=>{r(e=>Math.max(e-1,0))},resetFontSize:()=>r(2),fontSize:B[n]}},be=({backgroundColor:e,currentFontSizeIndex:t,fontStyle:n,onColorChange:r,onFontStyleChange:i,onDecreaseFontSize:a,onIncreaseFontSize:o,onResetFontSize:s,onOpenChange:c})=>(0,z.jsx)(U,{backgroundColor:e,currentFontSizeIndex:t,fontStyle:n,isActiveColor:t=>e===t,isActiveFont:e=>n===e,onColorChange:r,onDecreaseFontSize:a,onFontStyleChange:i,onIncreaseFontSize:o,onOpenChange:c,onResetFontSize:s}),U=({backgroundColor:e,isActiveColor:t,isActiveFont:n,onColorChange:r,onFontStyleChange:i,currentFontSizeIndex:a,onDecreaseFontSize:c,onIncreaseFontSize:d,onResetFontSize:f,onOpenChange:p})=>(0,z.jsxs)(P,{modal:!1,onOpenChange:p,children:[(0,z.jsx)(A,{asChild:!0,children:(0,z.jsx)(u,{"aria-label":`Reading options`,className:`size-9 rounded-full ${H[e].button}`,variant:`ghost`,children:(0,z.jsx)(o.Typography,{className:`size-[18px]!`})})}),(0,z.jsx)(se,{align:`end`,className:`w-[224px]`,onCloseAutoFocus:e=>e.preventDefault(),onOpenAutoFocus:e=>e.preventDefault(),children:(0,z.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-[6px]`,children:[(0,z.jsx)(u,{className:`h-7 flex-1 rounded-[6px] bg-gray-200 p-0 text-[1.1rem] text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px] ${t(`SYSTEM`)?`outline-2 outline-green`:``}`,variant:`secondary`,onClick:()=>r(`SYSTEM`),children:`Auto`}),(0,z.jsx)(u,{className:`h-7 flex-1 rounded-[6px] bg-[#ece6d9] p-0 hover:bg-[#ece6d9] ${t(`SEPIA`)?`outline-2 outline-green`:`border border-[#ece6d9]`}`,onClick:()=>r(`SEPIA`)}),(0,z.jsx)(u,{className:`h-7 flex-1 rounded-[6px] bg-white p-0 hover:bg-white ${t(`LIGHT`)?`outline-2 outline-green`:`border border-gray-200`}`,onClick:()=>r(`LIGHT`)}),(0,z.jsx)(u,{className:`h-7 flex-1 rounded-[6px] bg-black p-0 hover:bg-black dark:border dark:border-gray-950 ${t(`DARK`)?`outline-2 outline-green`:``}`,onClick:()=>r(`DARK`)})]}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsxs)(u,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 ${n(`sans`)&&`outline-2 outline-green`}`,variant:`secondary`,onClick:()=>i(`sans`),children:[(0,z.jsx)(`span`,{className:`text-[2rem] leading-none font-bold`,children:`Aa`}),(0,z.jsx)(`span`,{className:`text-[1.1rem]`,children:`System`})]}),(0,z.jsxs)(u,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 ${n(`serif`)&&`outline-2 outline-green`}`,variant:`secondary`,onClick:()=>i(`serif`),children:[(0,z.jsx)(`span`,{className:`pt-1 font-serif text-[2rem] leading-none font-bold`,children:`Aa`}),(0,z.jsx)(`span`,{className:`font-serif text-[1.2rem]`,children:`Serif`})]})]}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(u,{"aria-label":`Decrease text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]`,disabled:a===0,variant:`secondary`,onClick:c,children:(0,z.jsx)(s,{})}),(0,z.jsx)(u,{"aria-label":`Reset text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900`,variant:`secondary`,onClick:f,children:(0,z.jsx)(`span`,{className:`text-[1.6rem] font-bold`,children:`Aa`})}),(0,z.jsx)(u,{"aria-label":`Increase text size`,className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]`,disabled:a===B.length-1,variant:`secondary`,onClick:d,children:(0,z.jsx)(l,{})})]})]})})]}),xe=({tocItems:e,iframeElement:t,modalRef:n,className:r=`visible! absolute inset-y-0 right-7 z-40 hidden lg:block!`,onOpenChange:i})=>{let[a,o]=(0,R.useState)(null),s=R.useRef(!1);return(0,R.useEffect)(()=>{if(!t?.contentDocument||e.length<=1)return;let r=n.current;if(!r)return;let i=()=>{if(s.current)return;let n=t.contentDocument;if(!n)return;let i=r.scrollTop,a=e.map(e=>n.getElementById(e.id)).filter(e=>e!==null).map(e=>({id:e.id,top:e.offsetTop}));if(!a.length)return;let c=a.reduce((e,t)=>t.top-100<=i?t:e);o(c?.id||null)},a=()=>{requestAnimationFrame(i)};return r.addEventListener(`scroll`,a),i(),()=>{r.removeEventListener(`scroll`,a)}},[t,e,n]),e.length<=1?null:(0,z.jsx)(`div`,{className:r,children:(0,z.jsx)(`div`,{className:`sticky top-1/2 -translate-y-1/2`,children:(0,z.jsx)(W,{activeHeading:a||``,items:e,onItemClick:e=>{if(!t?.contentDocument)return;let r=t.contentDocument.getElementById(e);r&&n.current&&(s.current=!0,o(e),n.current.scrollTo({top:r.offsetTop-20,behavior:`smooth`}),setTimeout(()=>{s.current=!1},1e3))},onOpenChange:i})})})},Se={1:`w-3`,2:`w-2`,3:`w-1`},Ce={1:`pl-2`,2:`pl-6`,3:`pl-10`},W=({items:e,activeHeading:t,onItemClick:n,onOpenChange:r})=>{let[i,a]=(0,R.useState)(!1),o=R.useRef();if(R.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]),e.length===0)return null;let s=e=>Math.min(e,3),c=e=>Se[s(e)],l=e=>Ce[s(e)],u=()=>{o.current&&clearTimeout(o.current),a(!0),r?.(!0)},d=()=>{o.current=setTimeout(()=>{a(!1),r?.(!1)},100)};return(0,z.jsxs)(P,{modal:!1,open:i,onOpenChange:a,children:[(0,z.jsx)(A,{asChild:!0,children:(0,z.jsx)(`div`,{className:`absolute top-1/2 right-2 flex -translate-y-1/2 flex-col items-end gap-2 rounded-md p-2 text-base dark:bg-black`,onMouseEnter:u,onMouseLeave:d,children:e.map(e=>(0,z.jsx)(`div`,{className:`h-[2px] rounded-sm ${t===e.id?`bg-black dark:bg-white`:`bg-gray-400 dark:bg-gray-700`} pr-1 transition-all ${c(e.level)}`},e.id))})}),(0,z.jsx)(se,{align:`center`,className:`w-[240px] p-2`,side:`left`,sideOffset:-28,onCloseAutoFocus:e=>e.preventDefault(),onMouseEnter:u,onMouseLeave:d,onOpenAutoFocus:e=>e.preventDefault(),children:(0,z.jsx)(`nav`,{"aria-label":`Table of contents navigation`,className:`max-h-[60vh] overflow-y-auto`,role:`navigation`,children:e.map(e=>(0,z.jsx)(`button`,{className:`line-clamp-2 block w-full cursor-pointer rounded py-1 text-left text-sm leading-tight ${t===e.id?`text-black dark:text-white`:`text-gray-700 dark:text-gray-600`} hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-950 dark:hover:text-white ${l(e.level)}`,type:`button`,onClick:()=>n(e.id),children:(0,z.jsx)(`span`,{className:`line-clamp-2`,children:e.text})},e.id))})})]})},we=()=>`<style>
2
2
 
3
3
  /* Variables */
4
4
 
@@ -3975,10 +3975,10 @@ a.kg-cta-button {
3975
3975
 
3976
3976
  `),lt=Object.values(st).map(e=>e.default).join(`
3977
3977
 
3978
- `),Q=`gh-sensitive-media-hidden`,ut=`audio, canvas, embed, iframe, img, object, picture, source, svg, video`,dt=({postUrl:e,heading:t,image:n,excerpt:r,authors:i,html:a,hideMedia:o=!1,backgroundColor:s,fontSize:c,fontStyle:l,onHeadingsExtracted:u,onIframeLoad:d,onLoadingChange:f,isPopoverOpen:p})=>{let m=(0,R.useRef)(null),[h,g]=(0,R.useState)(!0),[_,v]=(0,R.useState)(`0px`),b=(0,R.useRef)(null),x=document.documentElement.classList.contains(`dark`)&&s===`SYSTEM`||s===`DARK`,S=we(),C=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(hover: none) and (pointer: coarse)`).matches,w=(0,R.useMemo)(()=>I(F(C?ae(a):a)),[a,C]),T=(0,R.useCallback)(()=>{let e=m.current,t=e?.contentDocument;if(!t)return;t.documentElement.classList.toggle(Q,o);let n=e.contentWindow;n&&typeof n.resizeIframe==`function`&&n.resizeIframe()},[o]),E=`
3979
- <html class="${o?`${Q} `:``}has-${x?`light`:`dark`}-text has-${l}-body ${s===`SEPIA`&&`has-sepia-bg`}">
3978
+ `),Q=`gh-sensitive-media-hidden`,ut=`audio, canvas, embed, iframe, img, object, picture, source, svg, video`,dt=({postUrl:e,heading:t,image:n,excerpt:r,authors:i,html:a,hideMedia:o=!1,backgroundColor:s,fontSize:c,fontStyle:l,onHeadingsExtracted:u,onIframeLoad:f,onLoadingChange:p,isPopoverOpen:h})=>{let g=(0,R.useRef)(null),[_,v]=(0,R.useState)(!0),[y,ee]=(0,R.useState)(`0px`),b=(0,R.useRef)(null),S=document.documentElement.classList.contains(`dark`)&&s===`SYSTEM`||s===`DARK`,C=we(),w=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(hover: none) and (pointer: coarse)`).matches,T=(0,R.useMemo)(()=>re(m(w?x(a):a)),[a,w]),E=(0,R.useCallback)(()=>{let e=g.current,t=e?.contentDocument;if(!t)return;t.documentElement.classList.toggle(Q,o);let n=e.contentWindow;n&&typeof n.resizeIframe==`function`&&n.resizeIframe()},[o]),D=`
3979
+ <html class="${o?`${Q} `:``}has-${S?`light`:`dark`}-text has-${l}-body ${s===`SEPIA`&&`has-sepia-bg`}">
3980
3980
  <head>
3981
- ${S}
3981
+ ${C}
3982
3982
  <style>
3983
3983
  :root {
3984
3984
  --font-size: ${c};
@@ -4073,14 +4073,14 @@ a.kg-cta-button {
4073
4073
  </head>
4074
4074
  <body>
4075
4075
  <header class='gh-article-header gh-canvas'>
4076
- <h1 class='gh-article-title is-title' data-test-article-heading>${j(t)}</h1>
4077
- ${r?`<p class='gh-article-excerpt'>${j(r)}</p>`:``}
4078
- <a href="${e&&k(e)?j(e):`#`}" target="_blank" rel="noopener noreferrer" class="gh-article-meta">
4076
+ <h1 class='gh-article-title is-title' data-test-article-heading>${O(t)}</h1>
4077
+ ${r?`<p class='gh-article-excerpt'>${O(r)}</p>`:``}
4078
+ <a href="${e&&I(e)?O(e):`#`}" target="_blank" rel="noopener noreferrer" class="gh-article-meta">
4079
4079
  ${i&&i.length>0?`
4080
4080
  <div class="gh-article-author-image">
4081
4081
  ${i.map(e=>`
4082
4082
  <span>
4083
- ${e.profile_image?`<img src="${j(e.profile_image)}" alt="${j(e.name)}">`:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="24" width="24"><path d="M6.75 6a5.25 5.25 0 1 0 10.5 0 5.25 5.25 0 1 0 -10.5 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.25 23.25a9.75 9.75 0 0 1 19.5 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>`}
4083
+ ${e.profile_image?`<img src="${O(e.profile_image)}" alt="${O(e.name)}">`:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="24" width="24"><path d="M6.75 6a5.25 5.25 0 1 0 10.5 0 5.25 5.25 0 1 0 -10.5 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.25 23.25a9.75 9.75 0 0 1 19.5 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>`}
4084
4084
  </span>
4085
4085
  `).join(``)}
4086
4086
  </div>
@@ -4088,20 +4088,20 @@ a.kg-cta-button {
4088
4088
  <div class="gh-article-meta-wrapper">
4089
4089
  ${i&&i.length>0?`
4090
4090
  <span class="gh-article-author-name">
4091
- ${i.length>1?`${j(i[0].name)} and ${i.length-1} ${i.length-1==1?`other`:`others`}`:j(i[0].name)}
4091
+ ${i.length>1?`${O(i[0].name)} and ${i.length-1} ${i.length-1==1?`other`:`others`}`:O(i[0].name)}
4092
4092
  </span>
4093
4093
  `:``}
4094
- <span class="gh-article-source">${e&&k(e)?j(new URL(e).hostname):``} <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link-icon lucide-external-link"><path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></svg></span>
4094
+ <span class="gh-article-source">${e&&I(e)?O(new URL(e).hostname):``} <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link-icon lucide-external-link"><path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></svg></span>
4095
4095
  </div>
4096
4096
  </a>
4097
4097
  ${n?`
4098
4098
  <figure class='gh-article-image'>
4099
- <img src='${j(n)}' alt='${j(t)}' />
4099
+ <img src='${O(n)}' alt='${O(t)}' />
4100
4100
  </figure>
4101
4101
  `:``}
4102
4102
  </header>
4103
4103
  <div class='gh-content gh-canvas is-body'>
4104
- ${w}
4104
+ ${T}
4105
4105
  </div>
4106
4106
  <script>
4107
4107
  (function () {
@@ -4121,6 +4121,6 @@ a.kg-cta-button {
4121
4121
  <\/script>
4122
4122
  </body>
4123
4123
  </html>
4124
- `;return(0,R.useEffect)(()=>{let a=m.current;if(!a)return;let o=e=>{if(e.data.type===`resize`){let t=`${e.data.bodyHeight+24}px`;v(t),a.style.height=t,e.data.isLoaded&&(T(),g(!1))}},s=e=>{if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=new KeyboardEvent(`keydown`,{key:`Escape`,code:`Escape`,keyCode:27,which:27,bubbles:!0,cancelable:!0});document.dispatchEvent(t)}},c=()=>{let e=a.contentWindow;e&&e.addEventListener(`keydown`,s),T()};a.addEventListener(`load`,c),window.addEventListener(`message`,o);let l=[w,t,r??``,n??``,e??``,(i??[]).map(e=>`${e.name}\0${e.profile_image}`).join(`
4124
+ `;return(0,R.useEffect)(()=>{let a=g.current;if(!a)return;let o=e=>{if(e.data.type===`resize`){let t=`${e.data.bodyHeight+24}px`;ee(t),a.style.height=t,e.data.isLoaded&&(E(),v(!1))}},s=e=>{if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=new KeyboardEvent(`keydown`,{key:`Escape`,code:`Escape`,keyCode:27,which:27,bubbles:!0,cancelable:!0});document.dispatchEvent(t)}},c=()=>{let e=a.contentWindow;e&&e.addEventListener(`keydown`,s),E()};a.addEventListener(`load`,c),window.addEventListener(`message`,o);let l=[T,t,r??``,n??``,e??``,(i??[]).map(e=>`${e.name}\0${e.profile_image}`).join(`
4125
4125
  `)].join(`
4126
- `);return b.current!==l&&(b.current=l,g(!0),a.srcdoc=E),()=>{window.removeEventListener(`message`,o),a.removeEventListener(`load`,c);let e=a.contentWindow;e&&e.removeEventListener(`keydown`,s)}},[w,i,r,t,E,n,e,T]),(0,R.useEffect)(()=>{T()},[T]),(0,R.useEffect)(()=>{let e=m.current;if(!e)return;let t=e.contentDocument||e.contentWindow?.document;if(!t)return;let n=t.documentElement;n.style.setProperty(`--font-size`,c),n.classList.remove(`has-sans-body`,`has-serif-body`),n.classList.add(`has-${l}-body`),n.classList.remove(`has-dark-text`,`has-light-text`),n.classList.add(`has-${x?`light`:`dark`}-text`),s===`SEPIA`?n.classList.add(`has-sepia-bg`):n.classList.remove(`has-sepia-bg`);let r=e.contentWindow;if(r&&typeof r.resizeIframe==`function`)r.resizeIframe();else{let e=new Event(`resize`);t.dispatchEvent(e)}},[c,l,s,x]),(0,R.useEffect)(()=>{let e=m.current;if(!e)return;let t=()=>{if(!e.contentDocument)return;let t=Array.from(e.contentDocument.querySelectorAll(`.gh-content > :is(h2, h3, h4, h5, h6)[id]`));if(t.length===0)return;let n=Math.min(...t.map(e=>parseInt(e.tagName[1]))),r=t.map((e,t)=>{let r=`heading-${t}`;e.id=r;let i=parseInt(e.tagName[1])-n+1;return{id:r,text:e.textContent||``,level:i,element:e}});u?.(r),d?.(e)};return e.addEventListener(`load`,t),()=>e.removeEventListener(`load`,t)},[u,d]),(0,R.useEffect)(()=>{f?.(h)},[h,f]),(0,z.jsx)(`div`,{className:`w-full pb-6`,children:(0,z.jsxs)(`div`,{className:`relative -mx-6`,children:[h&&(0,z.jsxs)(`div`,{className:`mx-auto mt-6 w-full max-w-[640px] max-lg:px-4`,children:[(0,z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,z.jsx)(y,{className:`h-8`}),(0,z.jsx)(y,{className:`h-8 w-full max-w-md`})]}),(0,z.jsx)(y,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,z.jsx)(y,{className:`mt-8 h-[400px]`}),(0,z.jsx)(y,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]}),(0,z.jsx)(`iframe`,{ref:m,id:`gh-ap-article-iframe`,style:{width:`100%`,border:`none`,height:_,overflow:`hidden`,opacity:+!h,transition:`opacity 0.2s ease-in-out`,pointerEvents:p?`none`:`auto`},title:`Embedded Content`})]})})},ft=()=>(0,z.jsx)(`div`,{className:`h-px bg-black/[8%] dark:bg-gray-950`});function pt(e){return new DOMParser().parseFromString(e,`text/html`).querySelector(ut)!==null}var $=new Map,mt=({postId:e=null,onClose:t})=>{let{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,fontSize:a,handleColorChange:o,setFontStyle:s,increaseFontSize:c,decreaseFontSize:l,resetFontSize:u}=ye(),d=(0,R.useRef)(null),[f,p]=(0,R.useState)(!1),[m,h]=(0,R.useState)(!1),[g,_]=(0,R.useState)(new Set),[v,x]=(0,R.useState)(new Set),[C,T]=(0,R.useState)(new Set),[E,ee]=(0,R.useState)(!1),D=(0,R.useRef)(null),k=(0,R.useRef)(null),{post:j,processedReplies:ae,isLoading:M,loadMoreChildren:de,loadMoreChildReplies:F,hasMoreChildren:I,hasMoreChildReplies:L}=ve(e??``,{includeAncestors:!1}),B=j,V=B?.object,U=B?.actor,Se=B?.object?.metadata?.ghostAuthors,Ce=V?.replyCount??0,W=V?.content??``,we=typeof V?.image==`string`?V.image:V?.image?.url,Te=(0,R.useMemo)(()=>pt(W),[W]),{contentWarning:Ee,shouldHideContentWarning:De,shouldHideSensitiveMedia:Oe,canHideSensitiveMedia:ke,revealSensitiveMedia:Ae,hideSensitiveMedia:je,revealContentWarning:Me}=oe({contentWarning:V?.contentWarning,sensitive:V?.sensitive,hasMedia:!!we||(V?pe(V)!==null:!1)||Te,resetKey:e??void 0});(0,R.useEffect)(()=>{if(!I)return;D.current&&D.current.disconnect();let e=d.current;if(e)return D.current=new IntersectionObserver(async e=>{if(e[0].isIntersecting&&I&&!E){ee(!0);try{await de()}catch(e){console.error(`Failed to load more top-level replies:`,e)}finally{ee(!1)}}},{root:e,rootMargin:`200px`}),k.current&&D.current.observe(k.current),()=>{D.current&&D.current.disconnect()}},[I,E,de]);function G(){}function Ne(e){_(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),x(t=>{let n=new Set(t);return n.add(e),n})),n})}async function Pe(e,t){if(!C.has(e)){T(t=>new Set(t).add(e));try{F&&await F(t)}catch(e){console.error(`Failed to load more replies for chain:`,e)}finally{T(t=>{let n=new Set(t);return n.delete(e),n})}}}let Fe=()=>{},Ie=(0,R.useRef)(null),K=`640px`,[Le,Re]=(0,R.useState)(0),[q,ze]=(0,R.useState)(!0),[J]=O(Re,100);(0,R.useEffect)(()=>{let e=d.current,t=document.getElementById(`object-content`),n=()=>{if(q||!e||!t)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();if(n.height<=r.height){J(100);return}let i=Math.max(0,r.top-n.top),a=t.offsetHeight-e.offsetHeight,o=Math.min(Math.max(i/a*100,0),100),s=Math.round(o/1)*1;J(s)};if(q)return;let r=new MutationObserver(n);return t&&r.observe(t,{childList:!0,subtree:!0,characterData:!0}),e?.addEventListener(`scroll`,n),n(),()=>{e?.removeEventListener(`scroll`,n),r.disconnect()}},[q,J]);let[Y,Be]=(0,R.useState)([]),[Ve,He]=(0,R.useState)(null),[X,Ue]=(0,R.useState)(null),We=(0,R.useCallback)(e=>{Be(e)},[]),Ge=(0,R.useCallback)(e=>{Ue(e)},[]);(0,R.useEffect)(()=>{if(!X?.contentDocument||!Y.length)return;let e=setTimeout(()=>{let e=d.current;if(!e)return;let t=()=>{let t=X.contentDocument;if(!t||!t.documentElement)return;let n=e.scrollTop,r=Y.map(e=>t.getElementById(e.id)).filter(e=>e!==null).map(e=>({element:e,id:e.id,top:e.offsetTop}));if(!r.length)return;let i=null;for(let e of r)if(e.top-100<=n)i=e;else break;He(i?.id||null)};return e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`scroll`,t)}},100);return()=>clearTimeout(e)},[X,Y,Ve]);let Z=S();return(0,R.useEffect)(()=>{let t=d.current;return()=>{t&&e&&$.set(e,t.scrollTop)}},[e]),(0,R.useEffect)(()=>{if(!q&&!M&&e&&d.current){let t=$.get(e);t!==void 0&&t>0&&setTimeout(()=>{d.current&&(d.current.scrollTop=t)},100)}},[q,M,e]),M?(0,z.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,children:(0,z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(ce,{className:H[n].button,onClick:t})}),(0,z.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:[(0,z.jsx)(y,{className:`size-10 rounded-full`}),(0,z.jsxs)(`div`,{className:`grow pt-1`,children:[(0,z.jsx)(y,{className:`w-full`}),(0,z.jsx)(y,{className:`w-2/3`})]})]}),(0,z.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,z.jsx)(be,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:p,onResetFontSize:u})})]})}),(0,z.jsx)(`div`,{className:`relative flex-1 max-lg:px-4`,children:(0,z.jsxs)(`div`,{className:`mx-auto mt-11 w-full max-w-[640px]`,children:[(0,z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,z.jsx)(y,{className:`h-8`}),(0,z.jsx)(y,{className:`h-8 w-full max-w-md`})]}),(0,z.jsx)(y,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,z.jsx)(y,{className:`mt-8 h-[400px]`}),(0,z.jsx)(y,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]})})]})})}):j?(0,z.jsx)(`div`,{ref:d,className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,"data-scrollable-container":!0,children:(0,z.jsx)(z.Fragment,{children:(0,z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(ce,{className:H[n].button,onClick:t})}),(0,z.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center justify-between gap-3 max-md:hidden`,children:[(0,z.jsx)(se,{actor:U,isCurrentUser:V.authored,children:(0,z.jsxs)(`div`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,z.jsx)(`div`,{className:`relative z-10 pt-0.5`,children:(0,z.jsx)(w,{author:U})}),(0,z.jsxs)(`div`,{className:`relative z-10 mt-0.5 flex min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]`,onClick:e=>re(U,Z,e),children:[(0,z.jsx)(`div`,{className:`flex w-full`,children:(0,z.jsx)(`span`,{className:`min-w-0 truncate font-semibold whitespace-nowrap text-black hover:underline dark:text-white`,children:M?(0,z.jsx)(y,{className:`w-20`}):U.name})}),(0,z.jsxs)(`div`,{className:`flex w-full`,children:[!M&&(0,z.jsx)(`span`,{className:`truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]`,children:A(U)}),(0,z.jsx)(`span`,{className:`text-gray-700`,children:M?(0,z.jsx)(y,{className:`w-[120px]`}):me(V,!V.authored)})]})]})]})}),!V.authored&&!M&&(0,z.jsx)(te,{following:U.followedByMe??!1,handle:A(U)})]}),(0,z.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,z.jsx)(be,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:p,onResetFontSize:u})})]})}),(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(xe,{iframeElement:X,modalRef:d,tocItems:Y,onOpenChange:h}),!M&&(0,z.jsx)(`div`,{className:`grow overflow-y-auto`,children:(0,z.jsxs)(`div`,{className:`mx-auto px-6 pt-5 pb-10`,style:{maxWidth:`904px`},children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center pb-8`,id:`object-content`,children:[De&&Ee?(0,z.jsx)(fe,{className:`w-full`,label:Ee,onReveal:Me}):(0,z.jsxs)(z.Fragment,{children:[Oe&&(0,z.jsx)(le,{className:`w-full`,onReveal:Ae}),ke&&(0,z.jsx)(`div`,{className:`mb-3 flex w-full justify-end`,children:(0,z.jsx)(ne,{layout:`inline`,onHide:je})}),(0,z.jsx)(`div`,{className:`w-full`,children:(0,z.jsx)(dt,{authors:Se,backgroundColor:n,excerpt:V.summary??``,fontSize:a,fontStyle:i,heading:V.name,hideMedia:Oe,html:W,image:we,isPopoverOpen:f||m,postUrl:V?.url||``,onHeadingsExtracted:We,onIframeLoad:Ge,onLoadingChange:ze})})]}),(0,z.jsx)(`div`,{className:`-ml-3 w-full`,style:{maxWidth:K},children:(0,z.jsx)(ue,{actor:U,commentCount:Ce,layout:`modal`,likeCount:V.likeCount??0,object:V,repostCount:V.repostCount??0,onLikeClick:Fe})})]}),V.type===`Tombstone`&&(0,z.jsx)(_e,{last:!0}),(0,z.jsxs)(`div`,{className:`mx-auto w-full border-t border-black/[8%] dark:border-gray-950`,style:{maxWidth:K},children:[(0,z.jsx)(he,{object:V}),(0,z.jsx)(ft,{})]}),M&&(0,z.jsx)(b,{size:`lg`}),(0,z.jsxs)(`div`,{ref:Ie,className:`mx-auto w-full`,style:{maxWidth:K},children:[ae.map((t,n)=>{let r=n===ae.length-1,i=t.mainReply.id,a=g.has(i),o=v.has(i),s=C.has(i),c=t.chain.length>0;return(0,z.jsxs)(R.Fragment,{children:[(0,z.jsx)(N,{actor:t.mainReply.actor,allowDelete:t.mainReply.object.authored,commentCount:t.mainReply.object.replyCount??0,isChainParent:c,isPending:P(t.mainReply.id),last:!c,layout:`reply`,likeCount:t.mainReply.object.likeCount??0,object:t.mainReply.object,parentId:V.id,repostCount:t.mainReply.object.repostCount??0,type:`Note`,onClick:()=>{let n=d.current;n&&e&&$.set(e,n.scrollTop),Z(`/notes/${encodeURIComponent(t.mainReply.id)}`)},onDelete:G}),c&&t.chain[0]&&(0,z.jsx)(N,{actor:t.chain[0].actor,allowDelete:t.chain[0].object.authored,commentCount:t.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:P(t.chain[0].id),last:t.chain.length===1,layout:`reply`,likeCount:t.chain[0].object.likeCount??0,object:t.chain[0].object,parentId:V.id,repostCount:t.chain[0].object.repostCount??0,type:`Note`,onClick:()=>{let n=d.current;n&&e&&$.set(e,n.scrollTop),Z(`/notes/${encodeURIComponent(t.chain[0].id)}`)},onDelete:G},t.chain[0].id),c&&a&&t.chain.slice(1).map((r,i)=>{let a=i===t.chain.slice(1).length-1,o=L&&L(n),s=a&&o;return(0,z.jsx)(N,{actor:r.actor,allowDelete:r.object.authored,commentCount:r.object.replyCount??0,isChainContinuation:!0,isPending:P(r.id),last:a&&!s,layout:`reply`,likeCount:r.object.likeCount??0,object:r.object,parentId:V.id,repostCount:r.object.repostCount??0,type:`Note`,onClick:()=>{let t=d.current;t&&e&&$.set(e,t.scrollTop),Z(`/notes/${encodeURIComponent(r.id)}`)},onDelete:G},r.id)}),c&&t.chain.length>1&&!a&&(0,z.jsx)(ge,{variant:`expand`,onClick:()=>Ne(i)}),c&&a&&o&&L&&L(n)&&(0,z.jsx)(ge,{loading:s,variant:`loadMore`,onClick:()=>Pe(i,n)}),!r&&(0,z.jsx)(ft,{})]},t.mainReply.id)}),E&&(0,z.jsx)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:(0,z.jsx)(b,{size:`md`})})]}),I&&(0,z.jsx)(`div`,{ref:k,className:`h-1`})]})})]})]}),!M&&(0,z.jsxs)(`div`,{className:`pointer-events-none visible! sticky bottom-0 hidden items-end justify-between px-10 pb-[42px] lg:flex!`,children:[(0,z.jsx)(`div`,{className:`pointer-events-auto text-gray-600`,children:ie(V.content??``)}),(0,z.jsxs)(`div`,{className:`pointer-events-auto min-w-10 text-right text-gray-600 transition-all duration-200 ease-out`,children:[Le,`%`]},Le)]})]})})}):(0,z.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,children:(0,z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,z.jsx)(`div`,{className:`relative flex-1`,children:(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(ce,{className:H[n].button,onClick:t})}),(0,z.jsx)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:(0,z.jsx)(`div`,{className:`grow text-center`,children:(0,z.jsx)(`span`,{children:`Error loading article.`})})})]})})})})})},ht=({isLoading:e,activities:t,currentTopic:n,fetchNextPage:r,hasNextPage:o,isFetchingNextPage:s,onTopicChange:c})=>{let g=S(),{canGoBack:_,goBack:v}=a(),[y,C]=(0,R.useState)(!1),w=i(),{topicsQuery:T}=E(),{data:te}=T,D=te&&te.topics.length>0;(0,R.useEffect)(()=>{C(!!w.postId)},[w.postId]);let O=(0,R.useRef)(null),k=(0,R.useRef)(null),A=(0,R.useRef)(null);(0,R.useEffect)(()=>(O.current&&O.current.disconnect(),O.current=new IntersectionObserver(e=>{e[0].isIntersecting&&o&&!s&&r()}),k.current&&O.current.observe(k.current),A.current&&O.current.observe(A.current),()=>{O.current&&O.current.disconnect()}),[o,s,r]);let ne=Math.max(0,Math.floor(t.length*.75)-1);return(0,z.jsxs)(de,{children:[D&&(0,z.jsx)(L,{currentTopic:n,excludeTopics:[`top`],onTopicChange:c}),(0,z.jsx)(`div`,{className:`flex w-full flex-col`,children:(0,z.jsx)(`div`,{className:`w-full`,children:t.length>0?(0,z.jsx)(`div`,{className:`my-4`,children:(0,z.jsx)(`div`,{className:`mx-auto flex min-h-[calc(100dvh_-_117px)] items-start gap-11`,children:(0,z.jsx)(`div`,{className:`flex w-full min-w-0 flex-col items-center`,children:(0,z.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col items-start`,children:[(0,z.jsxs)(`ul`,{className:`mx-auto flex w-full flex-col`,"data-testid":`inbox-list`,children:[t.map((n,r)=>(0,z.jsxs)(`li`,{"data-testid":`inbox-item`,"data-test-view-article":!0,children:[(0,z.jsx)(N,{actor:n.actor,allowDelete:n.object.authored,commentCount:n.object.replyCount??0,isLoading:e,isPending:P(n.id),layout:`inbox`,likeCount:n.object.likeCount??0,object:n.object,repostCount:n.object.repostCount??0,type:n.type,onClick:()=>{g(`/reader/${encodeURIComponent(n.id)}`)}}),r<t.length-1&&(0,z.jsx)(ee,{}),r===ne&&(0,z.jsx)(`div`,{ref:k,className:`h-1`})]},`${n.id}-${n.type}-${r}`)),s&&(0,z.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,z.jsx)(b,{size:`md`})})]}),(0,z.jsx)(`div`,{ref:A,className:`h-1`})]})})})}):n===`following`?(0,z.jsx)(`div`,{className:`mt-[24vh]`,children:(0,z.jsx)(x,{actions:D?(0,z.jsx)(u,{onClick:()=>g(`/explore`),children:`Find accounts to follow →`}):(0,z.jsx)(u,{asChild:!0,children:(0,z.jsx)(`a`,{href:`https://explore.ghost.org/social-web`,rel:`noopener noreferrer`,target:`_blank`,children:`Find accounts to follow →`})}),description:`Start following publishers to see their long-form posts here.`,title:`Your Reader is empty`,children:(0,z.jsx)(l,{})})}):(0,z.jsx)(`div`,{className:`mt-[24vh]`,children:(0,z.jsx)(x,{description:`Explore other topics for more content.`,title:`Nothing here yet`,children:(0,z.jsx)(l,{})})})})}),(0,z.jsx)(h,{open:y,onOpenChange:e=>{e||(_?v():g(`/reader`)),C(e)},children:(0,z.jsxs)(p,{className:`inset-y-3 h-[calc(100vh-24px)] w-screen max-w-[calc(100vw-24px)] animate-none! p-0 focus:outline-hidden dark:bg-gray-950`,children:[(0,z.jsxs)(f,{className:`hidden`,children:[(0,z.jsx)(m,{children:`Reader`}),(0,z.jsx)(d,{children:`Ghost reader for long form articles`})]}),w.postId&&(0,z.jsx)(mt,{postId:w.postId,onClose:()=>{_?v():g(`/reader`)}})]})})]})},gt=()=>{let[e,t]=(0,R.useState)(`following`),{inboxQuery:n}=C({enabled:e===`following`}),{discoveryFeedQuery:r}=T({enabled:e!==`following`,topic:e}),{data:i,error:a,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l}=e===`following`?n:r,u=a&&M(a)&&a.statusCode===404&&e!==`following`;return a&&M(a)&&!u?(0,z.jsx)(D,{errorCode:a.code,statusCode:a.statusCode}):(0,z.jsx)(ht,{activities:u?[]:i?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}})),currentTopic:e,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l,onTopicChange:t})};export{gt as default};
4126
+ `);return b.current!==l&&(b.current=l,v(!0),a.srcdoc=D),()=>{window.removeEventListener(`message`,o),a.removeEventListener(`load`,c);let e=a.contentWindow;e&&e.removeEventListener(`keydown`,s)}},[T,i,r,t,D,n,e,E]),(0,R.useEffect)(()=>{E()},[E]),(0,R.useEffect)(()=>{let e=g.current;if(!e)return;let t=e.contentDocument||e.contentWindow?.document;if(!t)return;let n=t.documentElement;n.style.setProperty(`--font-size`,c),n.classList.remove(`has-sans-body`,`has-serif-body`),n.classList.add(`has-${l}-body`),n.classList.remove(`has-dark-text`,`has-light-text`),n.classList.add(`has-${S?`light`:`dark`}-text`),s===`SEPIA`?n.classList.add(`has-sepia-bg`):n.classList.remove(`has-sepia-bg`);let r=e.contentWindow;if(r&&typeof r.resizeIframe==`function`)r.resizeIframe();else{let e=new Event(`resize`);t.dispatchEvent(e)}},[c,l,s,S]),(0,R.useEffect)(()=>{let e=g.current;if(!e)return;let t=()=>{if(!e.contentDocument)return;let t=Array.from(e.contentDocument.querySelectorAll(`.gh-content > :is(h2, h3, h4, h5, h6)[id]`));if(t.length===0)return;let n=Math.min(...t.map(e=>parseInt(e.tagName[1]))),r=t.map((e,t)=>{let r=`heading-${t}`;e.id=r;let i=parseInt(e.tagName[1])-n+1;return{id:r,text:e.textContent||``,level:i,element:e}});u?.(r),f?.(e)};return e.addEventListener(`load`,t),()=>e.removeEventListener(`load`,t)},[u,f]),(0,R.useEffect)(()=>{p?.(_)},[_,p]),(0,z.jsx)(`div`,{className:`w-full pb-6`,children:(0,z.jsxs)(`div`,{className:`relative -mx-6`,children:[_&&(0,z.jsxs)(`div`,{className:`mx-auto mt-6 w-full max-w-[640px] max-lg:px-4`,children:[(0,z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,z.jsx)(d,{className:`h-8`}),(0,z.jsx)(d,{className:`h-8 w-full max-w-md`})]}),(0,z.jsx)(d,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,z.jsx)(d,{className:`mt-8 h-[400px]`}),(0,z.jsx)(d,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]}),(0,z.jsx)(`iframe`,{ref:g,id:`gh-ap-article-iframe`,style:{width:`100%`,border:`none`,height:y,overflow:`hidden`,opacity:+!_,transition:`opacity 0.2s ease-in-out`,pointerEvents:h?`none`:`auto`},title:`Embedded Content`})]})})},ft=()=>(0,z.jsx)(`div`,{className:`h-px bg-black/[8%] dark:bg-gray-950`});function pt(e){return new DOMParser().parseFromString(e,`text/html`).querySelector(ut)!==null}var $=new Map,mt=({postId:e=null,onClose:t})=>{let{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,fontSize:a,handleColorChange:o,setFontStyle:s,increaseFontSize:c,decreaseFontSize:l,resetFontSize:u}=ye(),f=(0,R.useRef)(null),[m,_]=(0,R.useState)(!1),[x,O]=(0,R.useState)(!1),[ne,re]=(0,R.useState)(new Set),[oe,se]=(0,R.useState)(new Set),[A,ce]=(0,R.useState)(new Set),[j,le]=(0,R.useState)(!1),M=(0,R.useRef)(null),N=(0,R.useRef)(null),{post:ue,processedReplies:P,isLoading:F,loadMoreChildren:pe,loadMoreChildReplies:me,hasMoreChildren:I,hasMoreChildReplies:L}=ve(e??``,{includeAncestors:!1}),B=ue,V=B?.object,U=B?.actor,Se=B?.object?.metadata?.ghostAuthors,Ce=V?.replyCount??0,W=V?.content??``,we=typeof V?.image==`string`?V.image:V?.image?.url,Te=(0,R.useMemo)(()=>pt(W),[W]),{contentWarning:Ee,shouldHideContentWarning:De,shouldHideSensitiveMedia:Oe,canHideSensitiveMedia:ke,revealSensitiveMedia:Ae,hideSensitiveMedia:je,revealContentWarning:Me}=de({contentWarning:V?.contentWarning,sensitive:V?.sensitive,hasMedia:!!we||(V?fe(V)!==null:!1)||Te,resetKey:e??void 0});(0,R.useEffect)(()=>{if(!I)return;M.current&&M.current.disconnect();let e=f.current;if(e)return M.current=new IntersectionObserver(async e=>{if(e[0].isIntersecting&&I&&!j){le(!0);try{await pe()}catch(e){console.error(`Failed to load more top-level replies:`,e)}finally{le(!1)}}},{root:e,rootMargin:`200px`}),N.current&&M.current.observe(N.current),()=>{M.current&&M.current.disconnect()}},[I,j,pe]);function G(){}function Ne(e){re(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),se(t=>{let n=new Set(t);return n.add(e),n})),n})}async function Pe(e,t){if(!A.has(e)){ce(t=>new Set(t).add(e));try{me&&await me(t)}catch(e){console.error(`Failed to load more replies for chain:`,e)}finally{ce(t=>{let n=new Set(t);return n.delete(e),n})}}}let Fe=()=>{},Ie=(0,R.useRef)(null),K=`640px`,[Le,Re]=(0,R.useState)(0),[q,ze]=(0,R.useState)(!0),[J]=ae(Re,100);(0,R.useEffect)(()=>{let e=f.current,t=document.getElementById(`object-content`),n=()=>{if(q||!e||!t)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();if(n.height<=r.height){J(100);return}let i=Math.max(0,r.top-n.top),a=t.offsetHeight-e.offsetHeight,o=Math.min(Math.max(i/a*100,0),100),s=Math.round(o/1)*1;J(s)};if(q)return;let r=new MutationObserver(n);return t&&r.observe(t,{childList:!0,subtree:!0,characterData:!0}),e?.addEventListener(`scroll`,n),n(),()=>{e?.removeEventListener(`scroll`,n),r.disconnect()}},[q,J]);let[Y,Be]=(0,R.useState)([]),[Ve,He]=(0,R.useState)(null),[X,Ue]=(0,R.useState)(null),We=(0,R.useCallback)(e=>{Be(e)},[]),Ge=(0,R.useCallback)(e=>{Ue(e)},[]);(0,R.useEffect)(()=>{if(!X?.contentDocument||!Y.length)return;let e=setTimeout(()=>{let e=f.current;if(!e)return;let t=()=>{let t=X.contentDocument;if(!t||!t.documentElement)return;let n=e.scrollTop,r=Y.map(e=>t.getElementById(e.id)).filter(e=>e!==null).map(e=>({element:e,id:e.id,top:e.offsetTop}));if(!r.length)return;let i=null;for(let e of r)if(e.top-100<=n)i=e;else break;He(i?.id||null)};return e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`scroll`,t)}},100);return()=>clearTimeout(e)},[X,Y,Ve]);let Z=p();return(0,R.useEffect)(()=>{let t=f.current;return()=>{t&&e&&$.set(e,t.scrollTop)}},[e]),(0,R.useEffect)(()=>{if(!q&&!F&&e&&f.current){let t=$.get(e);t!==void 0&&t>0&&setTimeout(()=>{f.current&&(f.current.scrollTop=t)},100)}},[q,F,e]),F?(0,z.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,children:(0,z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(w,{className:H[n].button,onClick:t})}),(0,z.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:[(0,z.jsx)(d,{className:`size-10 rounded-full`}),(0,z.jsxs)(`div`,{className:`grow pt-1`,children:[(0,z.jsx)(d,{className:`w-full`}),(0,z.jsx)(d,{className:`w-2/3`})]})]}),(0,z.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,z.jsx)(be,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:_,onResetFontSize:u})})]})}),(0,z.jsx)(`div`,{className:`relative flex-1 max-lg:px-4`,children:(0,z.jsxs)(`div`,{className:`mx-auto mt-11 w-full max-w-[640px]`,children:[(0,z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,z.jsx)(d,{className:`h-8`}),(0,z.jsx)(d,{className:`h-8 w-full max-w-md`})]}),(0,z.jsx)(d,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,z.jsx)(d,{className:`mt-8 h-[400px]`}),(0,z.jsx)(d,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]})})]})})}):ue?(0,z.jsx)(`div`,{ref:f,className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,"data-scrollable-container":!0,children:(0,z.jsx)(z.Fragment,{children:(0,z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(w,{className:H[n].button,onClick:t})}),(0,z.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center justify-between gap-3 max-md:hidden`,children:[(0,z.jsx)(b,{actor:U,isCurrentUser:V.authored,children:(0,z.jsxs)(`div`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,z.jsx)(`div`,{className:`relative z-10 pt-0.5`,children:(0,z.jsx)(ee,{author:U})}),(0,z.jsxs)(`div`,{className:`relative z-10 mt-0.5 flex min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]`,onClick:e=>C(U,Z,e),children:[(0,z.jsx)(`div`,{className:`flex w-full`,children:(0,z.jsx)(`span`,{className:`min-w-0 truncate font-semibold whitespace-nowrap text-black hover:underline dark:text-white`,children:F?(0,z.jsx)(d,{className:`w-20`}):U.name})}),(0,z.jsxs)(`div`,{className:`flex w-full`,children:[!F&&(0,z.jsx)(`span`,{className:`truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]`,children:h(U)}),(0,z.jsx)(`span`,{className:`text-gray-700`,children:F?(0,z.jsx)(d,{className:`w-[120px]`}):S(V,!V.authored)})]})]})]})}),!V.authored&&!F&&(0,z.jsx)(ie,{following:U.followedByMe??!1,handle:h(U)})]}),(0,z.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,z.jsx)(be,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:_,onResetFontSize:u})})]})}),(0,z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,z.jsx)(xe,{iframeElement:X,modalRef:f,tocItems:Y,onOpenChange:O}),!F&&(0,z.jsx)(`div`,{className:`grow overflow-y-auto`,children:(0,z.jsxs)(`div`,{className:`mx-auto px-6 pt-5 pb-10`,style:{maxWidth:`904px`},children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center pb-8`,id:`object-content`,children:[De&&Ee?(0,z.jsx)(te,{className:`w-full`,label:Ee,onReveal:Me}):(0,z.jsxs)(z.Fragment,{children:[Oe&&(0,z.jsx)(T,{className:`w-full`,onReveal:Ae}),ke&&(0,z.jsx)(`div`,{className:`mb-3 flex w-full justify-end`,children:(0,z.jsx)(g,{layout:`inline`,onHide:je})}),(0,z.jsx)(`div`,{className:`w-full`,children:(0,z.jsx)(dt,{authors:Se,backgroundColor:n,excerpt:V.summary??``,fontSize:a,fontStyle:i,heading:V.name,hideMedia:Oe,html:W,image:we,isPopoverOpen:m||x,postUrl:V?.url||``,onHeadingsExtracted:We,onIframeLoad:Ge,onLoadingChange:ze})})]}),(0,z.jsx)(`div`,{className:`-ml-3 w-full`,style:{maxWidth:K},children:(0,z.jsx)(y,{actor:U,commentCount:Ce,layout:`modal`,likeCount:V.likeCount??0,object:V,repostCount:V.repostCount??0,onLikeClick:Fe})})]}),V.type===`Tombstone`&&(0,z.jsx)(_e,{last:!0}),(0,z.jsxs)(`div`,{className:`mx-auto w-full border-t border-black/[8%] dark:border-gray-950`,style:{maxWidth:K},children:[(0,z.jsx)(he,{object:V}),(0,z.jsx)(ft,{})]}),F&&(0,z.jsx)(D,{size:`lg`}),(0,z.jsxs)(`div`,{ref:Ie,className:`mx-auto w-full`,style:{maxWidth:K},children:[P.map((t,n)=>{let r=n===P.length-1,i=t.mainReply.id,a=ne.has(i),o=oe.has(i),s=A.has(i),c=t.chain.length>0;return(0,z.jsxs)(R.Fragment,{children:[(0,z.jsx)(v,{actor:t.mainReply.actor,allowDelete:t.mainReply.object.authored,commentCount:t.mainReply.object.replyCount??0,isChainParent:c,isPending:k(t.mainReply.id),last:!c,layout:`reply`,likeCount:t.mainReply.object.likeCount??0,object:t.mainReply.object,parentId:V.id,repostCount:t.mainReply.object.repostCount??0,type:`Note`,onClick:()=>{let n=f.current;n&&e&&$.set(e,n.scrollTop),Z(`/notes/${encodeURIComponent(t.mainReply.id)}`)},onDelete:G}),c&&t.chain[0]&&(0,z.jsx)(v,{actor:t.chain[0].actor,allowDelete:t.chain[0].object.authored,commentCount:t.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:k(t.chain[0].id),last:t.chain.length===1,layout:`reply`,likeCount:t.chain[0].object.likeCount??0,object:t.chain[0].object,parentId:V.id,repostCount:t.chain[0].object.repostCount??0,type:`Note`,onClick:()=>{let n=f.current;n&&e&&$.set(e,n.scrollTop),Z(`/notes/${encodeURIComponent(t.chain[0].id)}`)},onDelete:G},t.chain[0].id),c&&a&&t.chain.slice(1).map((r,i)=>{let a=i===t.chain.slice(1).length-1,o=L&&L(n),s=a&&o;return(0,z.jsx)(v,{actor:r.actor,allowDelete:r.object.authored,commentCount:r.object.replyCount??0,isChainContinuation:!0,isPending:k(r.id),last:a&&!s,layout:`reply`,likeCount:r.object.likeCount??0,object:r.object,parentId:V.id,repostCount:r.object.repostCount??0,type:`Note`,onClick:()=>{let t=f.current;t&&e&&$.set(e,t.scrollTop),Z(`/notes/${encodeURIComponent(r.id)}`)},onDelete:G},r.id)}),c&&t.chain.length>1&&!a&&(0,z.jsx)(ge,{variant:`expand`,onClick:()=>Ne(i)}),c&&a&&o&&L&&L(n)&&(0,z.jsx)(ge,{loading:s,variant:`loadMore`,onClick:()=>Pe(i,n)}),!r&&(0,z.jsx)(ft,{})]},t.mainReply.id)}),j&&(0,z.jsx)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:(0,z.jsx)(D,{size:`md`})})]}),I&&(0,z.jsx)(`div`,{ref:N,className:`h-1`})]})})]})]}),!F&&(0,z.jsxs)(`div`,{className:`pointer-events-none visible! sticky bottom-0 hidden items-end justify-between px-10 pb-[42px] lg:flex!`,children:[(0,z.jsx)(`div`,{className:`pointer-events-auto text-gray-600`,children:E(V.content??``)}),(0,z.jsxs)(`div`,{className:`pointer-events-auto min-w-10 text-right text-gray-600 transition-all duration-200 ease-out`,children:[Le,`%`]},Le)]})]})})}):(0,z.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${H[n].background}`,children:(0,z.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,z.jsx)(`div`,{className:`relative flex-1`,children:(0,z.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${H[n].background} ${H[n].border}`,children:(0,z.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${K}) 1fr`},children:[(0,z.jsx)(`div`,{className:`flex items-center`,children:(0,z.jsx)(w,{className:H[n].button,onClick:t})}),(0,z.jsx)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:(0,z.jsx)(`div`,{className:`grow text-center`,children:(0,z.jsx)(`span`,{children:`Error loading article.`})})})]})})})})})},ht=({isLoading:e,activities:t,currentTopic:n,fetchNextPage:r,hasNextPage:o,isFetchingNextPage:s,onTopicChange:l})=>{let d=p(),{canGoBack:m,goBack:h}=a(),[g,_]=(0,R.useState)(!1),y=i(),{topicsQuery:ee}=j(),{data:b}=ee,x=b&&b.topics.length>0;(0,R.useEffect)(()=>{_(!!y.postId)},[y.postId]);let S=(0,R.useRef)(null),C=(0,R.useRef)(null),w=(0,R.useRef)(null);(0,R.useEffect)(()=>(S.current&&S.current.disconnect(),S.current=new IntersectionObserver(e=>{e[0].isIntersecting&&o&&!s&&r()}),C.current&&S.current.observe(C.current),w.current&&S.current.observe(w.current),()=>{S.current&&S.current.disconnect()}),[o,s,r]);let T=Math.max(0,Math.floor(t.length*.75)-1);return(0,z.jsxs)(N,{children:[x&&(0,z.jsx)(L,{currentTopic:n,excludeTopics:[`top`],onTopicChange:l}),(0,z.jsx)(`div`,{className:`flex w-full flex-col`,children:(0,z.jsx)(`div`,{className:`w-full`,children:t.length>0?(0,z.jsx)(`div`,{className:`my-4`,children:(0,z.jsx)(`div`,{className:`mx-auto flex min-h-[calc(100dvh_-_117px)] items-start gap-11`,children:(0,z.jsx)(`div`,{className:`flex w-full min-w-0 flex-col items-center`,children:(0,z.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col items-start`,children:[(0,z.jsxs)(`ul`,{className:`mx-auto flex w-full flex-col`,"data-testid":`inbox-list`,children:[t.map((n,r)=>(0,z.jsxs)(`li`,{"data-testid":`inbox-item`,"data-test-view-article":!0,children:[(0,z.jsx)(v,{actor:n.actor,allowDelete:n.object.authored,commentCount:n.object.replyCount??0,isLoading:e,isPending:k(n.id),layout:`inbox`,likeCount:n.object.likeCount??0,object:n.object,repostCount:n.object.repostCount??0,type:n.type,onClick:()=>{d(`/reader/${encodeURIComponent(n.id)}`)}}),r<t.length-1&&(0,z.jsx)(ne,{}),r===T&&(0,z.jsx)(`div`,{ref:C,className:`h-1`})]},`${n.id}-${n.type}-${r}`)),s&&(0,z.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,z.jsx)(D,{size:`md`})})]}),(0,z.jsx)(`div`,{ref:w,className:`h-1`})]})})})}):n===`following`?(0,z.jsx)(`div`,{className:`mt-[24vh]`,children:(0,z.jsx)(f,{actions:x?(0,z.jsx)(u,{onClick:()=>d(`/explore`),children:`Find accounts to follow →`}):(0,z.jsx)(u,{asChild:!0,children:(0,z.jsx)(`a`,{href:`https://explore.ghost.org/social-web`,rel:`noopener noreferrer`,target:`_blank`,children:`Find accounts to follow →`})}),description:`Start following publishers to see their long-form posts here.`,title:`Your Reader is empty`,children:(0,z.jsx)(c,{})})}):(0,z.jsx)(`div`,{className:`mt-[24vh]`,children:(0,z.jsx)(f,{description:`Explore other topics for more content.`,title:`Nothing here yet`,children:(0,z.jsx)(c,{})})})})}),(0,z.jsx)(F,{open:g,onOpenChange:e=>{e||(m?h():d(`/reader`)),_(e)},children:(0,z.jsxs)(M,{className:`inset-y-3 h-[calc(100vh-24px)] w-screen max-w-[calc(100vw-24px)] animate-none! p-0 focus:outline-hidden dark:bg-gray-950`,children:[(0,z.jsxs)(pe,{className:`hidden`,children:[(0,z.jsx)(me,{children:`Reader`}),(0,z.jsx)(le,{children:`Ghost reader for long form articles`})]}),y.postId&&(0,z.jsx)(mt,{postId:y.postId,onClose:()=>{m?h():d(`/reader`)}})]})})]})},gt=()=>{let[e,t]=(0,R.useState)(`following`),{inboxQuery:n}=oe({enabled:e===`following`}),{discoveryFeedQuery:r}=ue({enabled:e!==`following`,topic:e}),{data:i,error:a,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l}=e===`following`?n:r,u=a&&_(a)&&a.statusCode===404&&e!==`following`;return a&&_(a)&&!u?(0,z.jsx)(ce,{errorCode:a.code,statusCode:a.statusCode}):(0,z.jsx)(ht,{activities:u?[]:i?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}})),currentTopic:e,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l,onTopicChange:t})};export{gt as default};