ghost 6.62.0 → 6.63.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 (439) hide show
  1. package/components/tryghost-adapter-base-jobs-0.0.0.tgz +0 -0
  2. package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
  3. package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
  4. package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
  5. package/components/tryghost-checkout-0.0.0.tgz +0 -0
  6. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  7. package/components/tryghost-kg-card-factory-5.2.4.tgz +0 -0
  8. package/components/tryghost-kg-clean-basic-html-4.3.4.tgz +0 -0
  9. package/components/tryghost-kg-converters-1.2.5.tgz +0 -0
  10. package/components/tryghost-kg-default-cards-10.3.5.tgz +0 -0
  11. package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
  12. package/components/tryghost-kg-default-transforms-1.3.4.tgz +0 -0
  13. package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
  14. package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
  15. package/components/tryghost-kg-markdown-html-renderer-7.2.4.tgz +0 -0
  16. package/components/tryghost-kg-utils-1.1.4.tgz +0 -0
  17. package/components/tryghost-limit-service-0.0.0.tgz +0 -0
  18. package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
  19. package/content/themes/source/package.json +2 -2
  20. package/content/themes/source/partials/post-card.hbs +1 -1
  21. package/core/boot.js +7 -5
  22. package/core/built/admin/assets/{about-Dyae_UT6.js → about-C1C3s5-g.js} +1 -1
  23. package/core/built/admin/assets/accordion-CxGsDKwa.js +1 -0
  24. package/core/built/admin/assets/{account-migration-CESa0mnX.js → account-migration-CbUhW6gk.js} +1 -1
  25. package/core/built/admin/assets/activitypub/{account-migration-By69CgCp.js → account-migration-KA6Jjf9L.js} +7 -7
  26. package/core/built/admin/assets/activitypub/activitypub.js +3 -3
  27. package/core/built/admin/assets/activitypub/{avatar-DLPL3Abs.js → avatar-DVJF5bxP.js} +2 -2
  28. package/core/built/admin/assets/activitypub/{avatar-flipboard-C9iDY-QV.js → avatar-flipboard-csQaNeYK.js} +2 -2
  29. package/core/built/admin/assets/activitypub/{bluesky-sharing-BJcPMrDd.js → bluesky-sharing-C7nTDMvw.js} +9 -9
  30. package/core/built/admin/assets/activitypub/{content-formatters-3rTHg3mp.js → content-formatters-CLcjaBwV.js} +4 -4
  31. package/core/built/admin/assets/activitypub/{copy-DIAOQoCZ.js → copy-DcOh8kXw.js} +2 -2
  32. package/core/built/admin/assets/activitypub/{domain-DUR4xSkV.js → domain-fZ-X8i4-.js} +9 -9
  33. package/core/built/admin/assets/activitypub/{edit-profile-BqtfzxCp.js → edit-profile-BqMLQV88.js} +6 -6
  34. package/core/built/admin/assets/activitypub/{explore-BxuJd-J4.js → explore-B4yPoP8E.js} +10 -10
  35. package/core/built/admin/assets/activitypub/{feed-BM1TcksA.js → feed-BRC_mvAe.js} +9 -9
  36. package/core/built/admin/assets/activitypub/{field-Dn7HHx2-.js → field-COacNgOt.js} +3 -3
  37. package/core/built/admin/assets/activitypub/{hash-Bm3WxYN4.js → hash-C7u-irQQ.js} +2 -2
  38. package/core/built/admin/assets/activitypub/{inbox-CCjkuow2.js → inbox-BW-yvUoN.js} +10 -10
  39. package/core/built/admin/assets/activitypub/{inbox-d8oJRTf4.js → inbox-CbTTdDQ3.js} +2 -2
  40. package/core/built/admin/assets/activitypub/{label-1AA_s9Fa.js → label-kPMmYI7l.js} +3 -3
  41. package/core/built/admin/assets/activitypub/layout-BL4_jtuV.js +1 -0
  42. package/core/built/admin/assets/activitypub/{moderation-CnmxEB8w.js → moderation-CuidJzc0.js} +10 -10
  43. package/core/built/admin/assets/activitypub/{note-ZKc_Bnba.js → note-CAMRRSqD.js} +7 -7
  44. package/core/built/admin/assets/activitypub/{notifications-CB2tJZau.js → notifications-BmNlXGgp.js} +9 -9
  45. package/core/built/admin/assets/activitypub/{onboarding-BsJ9E5qf.js → onboarding-Bqg7fh_L.js} +2 -2
  46. package/core/built/admin/assets/activitypub/{onboarding-CSUJJIlh.js → onboarding-Dmun9jr_.js} +2 -2
  47. package/core/built/admin/assets/activitypub/{preferences-0-JZnUkI.js → preferences--oH19wf9.js} +11 -11
  48. package/core/built/admin/assets/activitypub/{profile-C35cFIhM.js → profile-DH_tQx2D.js} +14 -14
  49. package/core/built/admin/assets/activitypub/{reply-DYK5vVqb.js → reply-Cap9PxSH.js} +2 -2
  50. package/core/built/admin/assets/activitypub/{routes-BD4vscyc.js → routes-DdyY9uFF.js} +30 -30
  51. package/core/built/admin/assets/activitypub/{separator-BbQqTm-p.js → separator-CAxxu8VV.js} +3 -3
  52. package/core/built/admin/assets/activitypub/{settings-BsMROdqh.js → settings-B6EEcVkW.js} +6 -6
  53. package/core/built/admin/assets/activitypub/{site-O0RL9YCN.js → site-BYps63oh.js} +2 -2
  54. package/core/built/admin/assets/activitypub/{step-1-BMSx7c_X.js → step-1-CKjR2KAm.js} +6 -6
  55. package/core/built/admin/assets/activitypub/{step-2-DtPQzlTH.js → step-2-B6PKfOUQ.js} +6 -6
  56. package/core/built/admin/assets/activitypub/{step-3-CLlOZTyt.js → step-3-C-qBbcUo.js} +11 -11
  57. package/core/built/admin/assets/activitypub/{tabs-Dxk-b9M-.js → tabs-DLhZtVde.js} +6 -6
  58. package/core/built/admin/assets/activitypub/{topic-filter-5yZH6tId.js → topic-filter-DsUOuu0k.js} +3 -3
  59. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CV50qe03.js → use-activity-pub-queries-CX9snsLs.js} +3 -3
  60. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-Bmk5h4lW.js → use-navigate-with-base-path-DsJTGDSS.js} +988 -959
  61. package/core/built/admin/assets/activitypub/{use-reply-chain-data-Cbvzgjzd.js → use-reply-chain-data-AJi9zkzm.js} +5 -5
  62. package/core/built/admin/assets/activitypub/{users-BjcoP_HC.js → users-inweyKL5.js} +186 -160
  63. package/core/built/admin/assets/activitypub/{x-DbQZOLiI.js → x-DR8AT3-4.js} +2 -2
  64. package/core/built/admin/assets/{add-integration-modal-BlF6rs_f.js → add-integration-modal-BT_onDJy.js} +1 -1
  65. package/core/built/admin/assets/{add-newsletter-modal-CglVQqah.js → add-newsletter-modal-Cx1kQpiY.js} +1 -1
  66. package/core/built/admin/assets/{add-recommendation-modal-wz7BsuaG.js → add-recommendation-modal-B5nvAhvr.js} +1 -1
  67. package/core/built/admin/assets/{analytics-C4HE1gBg.js → analytics-DjoJWPI7.js} +1 -1
  68. package/core/built/admin/assets/{announcement-bar-modal-Ci4zz8jO.js → announcement-bar-modal-Dwd0EGFP.js} +1 -1
  69. package/core/built/admin/assets/{api-keys-3-0vJC3Y.js → api-keys-BGPzLHzA.js} +1 -1
  70. package/core/built/admin/assets/{api-keys-Ck-Yteiv.js → api-keys-BoeacM-s.js} +1 -1
  71. package/core/built/admin/assets/{audience-CtbA54Sn.js → audience-ceV3XVHq.js} +1 -1
  72. package/core/built/admin/assets/automated-emails-BLesE41L.js +1 -0
  73. package/core/built/admin/assets/{automations-sAcJ1334.js → automations-BN4u3GR8.js} +1 -1
  74. package/core/built/admin/assets/automations-C-ZTUwW3.js +1 -0
  75. package/core/built/admin/assets/{bluesky-sharing-BEtJ_gL_.js → bluesky-sharing-vzh-oPXL.js} +1 -1
  76. package/core/built/admin/assets/{breadcrumb-zUrZrBtW.js → breadcrumb-CaLk2b7D.js} +1 -1
  77. package/core/built/admin/assets/{button-eNMKQWXr.js → button-Dvcv1QSR.js} +1 -1
  78. package/core/built/admin/assets/calendar-Bl9RLcZX.js +1 -0
  79. package/core/built/admin/assets/{chart-helpers-CfBKt0vT.js → chart-helpers-FHywU0pj.js} +1 -1
  80. package/core/built/admin/assets/{checkbox-CgOn_tKW.js → checkbox-BtayFtjg.js} +1 -1
  81. package/core/built/admin/assets/chunk.254.035b85ec456ebbd7336b.js +440 -0
  82. package/core/built/admin/assets/{chunk.524.a697dee88db67fdf6021.js → chunk.524.e6975095fccdf22d90f8.js} +5 -5
  83. package/core/built/admin/assets/{chunk.582.5ed5d124cfca9c259b9c.js → chunk.582.98b485f9b2802f540897.js} +6 -6
  84. package/core/built/admin/assets/{chunk.492.f24d855d7e3f3aad261c.js → chunk.901.4ccc639821020230bcca.js} +9949 -7921
  85. package/core/built/admin/assets/{code-editor-view-K2wI-I5f.js → code-editor-view-C3ZfoF1X.js} +1 -1
  86. package/core/built/admin/assets/{code-editor-view-BYNoAoNV.js → code-editor-view-CAyRWy1s.js} +1 -1
  87. package/core/built/admin/assets/{color-picker-Ddw80xX6.js → color-picker-G4kGR7rp.js} +1 -1
  88. package/core/built/admin/assets/{color-picker-field-D9nUhvA7.js → color-picker-field-DQFVTNnT.js} +1 -1
  89. package/core/built/admin/assets/{combobox-w9j8PPQT.js → combobox-BnYzgEB4.js} +1 -1
  90. package/core/built/admin/assets/{command-BfpHORBv.js → command-C_vyTikI.js} +1 -1
  91. package/core/built/admin/assets/comments-aBrxfnZf.js +1 -0
  92. package/core/built/admin/assets/{config-DOMQDZGZ.js → config-kSHvwdTG.js} +1 -1
  93. package/core/built/admin/assets/{confirmation-context-CBM8G0Vj.js → confirmation-context-DwXX_Y5h.js} +1 -1
  94. package/core/built/admin/assets/{content-api-modal-TXRz3U7S.js → content-api-modal-D2G0nJP6.js} +1 -1
  95. package/core/built/admin/assets/{context-menu-_QMdd3kp.js → context-menu-DOVB6yaz.js} +1 -1
  96. package/core/built/admin/assets/{copy-field-6N01S07E.js → copy-field-DCJwh9qf.js} +1 -1
  97. package/core/built/admin/assets/{create-ghost-browse-value-source-qIBymvvf.js → create-ghost-browse-value-source-5C53jJaX.js} +1 -1
  98. package/core/built/admin/assets/custom-field-type-option-BAuW0F-E.js +1 -0
  99. package/core/built/admin/assets/{custom-integration-modal-DmNquxUV.js → custom-integration-modal-AbJGVyKc.js} +1 -1
  100. package/core/built/admin/assets/{date-range-select-uvz_DtPh.js → date-range-select-BY3K-ukj.js} +1 -1
  101. package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +2 -0
  102. package/core/built/admin/assets/{dirty-confirm-dialog-BZ1iytEd.js → dirty-confirm-dialog-DVPuGz3U.js} +1 -1
  103. package/core/built/admin/assets/{disabled-sources-indicator-DMRrxsiJ.js → disabled-sources-indicator-Cy7Zp4c8.js} +1 -1
  104. package/core/built/admin/assets/{domain-BNYrt0aD.js → domain-Dl61QGuk.js} +1 -1
  105. package/core/built/admin/assets/{dropzone-D7nFdAe5.js → dropzone-Dtz5Rmjt.js} +4 -4
  106. package/core/built/admin/assets/edit-profile-DNJSMDwm.js +1 -0
  107. package/core/built/admin/assets/editor-DbAen9zf.js +8 -0
  108. package/core/built/admin/assets/editor-screen-BFWThIai.js +26 -0
  109. package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +1 -0
  110. package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +1 -0
  111. package/core/built/admin/assets/emails-vFMk4yYl.js +1 -0
  112. package/core/built/admin/assets/{embed-signup-form-modal-Ds6mPEi5.js → embed-signup-form-modal-DGqsORxS.js} +1 -1
  113. package/core/built/admin/assets/{explore-UY10Egsp.js → explore-nnRr1Fja.js} +1 -1
  114. package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +1 -0
  115. package/core/built/admin/assets/{feature-image-placeholder-D1iF_8bc.js → feature-image-placeholder-BrIHmPs8.js} +1 -1
  116. package/core/built/admin/assets/{feed-81C8mJWR.js → feed-BNUcNu-W.js} +1 -1
  117. package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +1 -0
  118. package/core/built/admin/assets/{field-Dihp5p18.js → field-C93_Mg6j.js} +1 -1
  119. package/core/built/admin/assets/filter-sources-CGJb4C5r.js +1 -0
  120. package/core/built/admin/assets/{filters-DirqNXjH.js → filters--kKP-EC8.js} +1 -1
  121. package/core/built/admin/assets/filters-DxA_a4FP.js +1 -0
  122. package/core/built/admin/assets/{first-promoter-modal-CT6MxYZb.js → first-promoter-modal-BYDtrz2S.js} +1 -1
  123. package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +1 -0
  124. package/core/built/admin/assets/{ghost-8eabfc1ece81b03cf7b90780d31487e8.css → ghost-8fd5bb799356bbefb254210ba7e1236d.css} +1 -1
  125. package/core/built/admin/assets/{ghost-c2848508292937415f20f5a830eea59e.js → ghost-b4e8a403baba61905cd7560e30b9732d.js} +43 -27
  126. package/core/built/admin/assets/{ghost-dark-a7bebe2c561f55369dcf29f4c820f7ff.css → ghost-dark-cac0cb2d5bb78e9bd14d8d1c2768ed45.css} +1 -1
  127. package/core/built/admin/assets/{gift-link-modal-CQVAye17.js → gift-link-modal-B7u5bD4e.js} +1 -1
  128. package/core/built/admin/assets/{gift-links-DLDS7ljO.js → gift-links-CfLSnst2.js} +1 -1
  129. package/core/built/admin/assets/growth-Cd1uO9d2.js +1 -0
  130. package/core/built/admin/assets/growth-aG32xfdE.js +3 -0
  131. package/core/built/admin/assets/{history-modal-CFd1Hvx6.js → history-modal-Df8lW8h-.js} +1 -1
  132. package/core/built/admin/assets/hooks-Cy_-oZ4o.js +2 -0
  133. package/core/built/admin/assets/{html-field-CJBCLTvv.js → html-field-DA4eU7eq.js} +1 -1
  134. package/core/built/admin/assets/{images-scfkWZiK.js → images-KXmyO3Ss.js} +1 -1
  135. package/core/built/admin/assets/{inbox-Mcp4DXZN.js → inbox-gJHG7_xd.js} +6 -6
  136. package/core/built/admin/assets/index-BHHXtR5C.css +2 -0
  137. package/core/built/admin/assets/index-CgMCwsxN.js +4 -0
  138. package/core/built/admin/assets/index.es-CY6-yuw9.js +1 -0
  139. package/core/built/admin/assets/{input-group-CMhe2DvY.js → input-group-BE8rM2y1.js} +1 -1
  140. package/core/built/admin/assets/{integrations-Bjbu86Z0.js → integrations-B4kuRBFY.js} +1 -1
  141. package/core/built/admin/assets/{invite-user-modal-DfheMXs0.js → invite-user-modal-B4CuNcx4.js} +1 -1
  142. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +2 -2
  143. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +2 -2
  144. package/core/built/admin/assets/{koenig-lexical-DBSqAuiI.js → koenig-lexical-CGXb0F8o.js} +2 -2
  145. package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +2 -0
  146. package/core/built/admin/assets/{kpi-card-DBRMfGOW.js → kpi-card-B21aToe8.js} +1 -1
  147. package/core/built/admin/assets/{kpi-card-DFafD1qq.js → kpi-card-pz6Wv4Ae.js} +1 -1
  148. package/core/built/admin/assets/{kpi-helpers-Cv8i8hns.js → kpi-helpers-Dq5jelmP.js} +1 -1
  149. package/core/built/admin/assets/{kpi-tabs-BJItvLYm.js → kpi-tabs-DEZHpKUt.js} +1 -1
  150. package/core/built/admin/assets/{label-BnSCvffu.js → label-OLCzze8N.js} +1 -1
  151. package/core/built/admin/assets/label-picker-BigOvMPV.js +1 -0
  152. package/core/built/admin/assets/{labels-CH3Kn8RV.js → labels-Dr0SgUQD.js} +1 -1
  153. package/core/built/admin/assets/layout-DUTL8SH5.js +1 -0
  154. package/core/built/admin/assets/lib-7QPTI0FS.js +1 -0
  155. package/core/built/admin/assets/link-helpers-BRAg9SCj.js +1 -0
  156. package/core/built/admin/assets/links-BDHPTlyj.js +1 -0
  157. package/core/built/admin/assets/{member-custom-fields-DDQV6QeG.js → member-custom-fields-TRTHCAz9.js} +1 -1
  158. package/core/built/admin/assets/member-detail-b6dRwc3C.js +1 -0
  159. package/core/built/admin/assets/members-Czt5lJSc.js +4 -0
  160. package/core/built/admin/assets/{moderation-AgCIEso4.js → moderation-ZWefD9uH.js} +1 -1
  161. package/core/built/admin/assets/{multi-select-combobox-BcITkUVr.js → multi-select-combobox-CT13MTo-.js} +1 -1
  162. package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +1 -0
  163. package/core/built/admin/assets/newsletter-5VYW4RyJ.js +1 -0
  164. package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +1 -0
  165. package/core/built/admin/assets/{newsletter-emails-DKzwafuh.js → newsletter-emails-DZH6I-PY.js} +1 -1
  166. package/core/built/admin/assets/{newsletters-BRBb_uQC.js → newsletters-DOC9KBcX.js} +1 -1
  167. package/core/built/admin/assets/newsletters-Rq1M3GD-.js +1 -0
  168. package/core/built/admin/assets/{note-DyGHtS9a.js → note-DIV-Pojr.js} +1 -1
  169. package/core/built/admin/assets/{notifications-ZgWniKna.js → notifications-s20-H49V.js} +1 -1
  170. package/core/built/admin/assets/{offers-9J1CSiLy.js → offers--e2nGvkW.js} +1 -1
  171. package/core/built/admin/assets/{offers-container-modal-B-E8TIWr.js → offers-container-modal-BmG5M5Tv.js} +1 -1
  172. package/core/built/admin/assets/onboarding-CUuy9unR.js +1 -0
  173. package/core/built/admin/assets/{onboarding-CzIsre-d.js → onboarding-pXyct0Jm.js} +1 -1
  174. package/core/built/admin/assets/{onboarding-route-CaavZulg.js → onboarding-route-CK4pcXoR.js} +1 -1
  175. package/core/built/admin/assets/overview-CaPsciMs.js +1 -0
  176. package/core/built/admin/assets/overview-a8GfcsKX.js +1 -0
  177. package/core/built/admin/assets/{page-header-De0VzKBi.js → page-header-DM_KyoFI.js} +1 -1
  178. package/core/built/admin/assets/{pagemenu-B5KKCpbA.js → pagemenu-vgZVUVKR.js} +1 -1
  179. package/core/built/admin/assets/pages-CjDY2CBI.js +1 -0
  180. package/core/built/admin/assets/pages-route-BzKZYdV5.js +1 -0
  181. package/core/built/admin/assets/{pintura-modal-BZ2J9w3n.js → pintura-modal-DExCF1ii.js} +1 -1
  182. package/core/built/admin/assets/{portal-frame-B6Hr9wHc.js → portal-frame-Cqanidq4.js} +1 -1
  183. package/core/built/admin/assets/portal-modal-oinBgA27.js +1 -0
  184. package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +1 -0
  185. package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +1 -0
  186. package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +1 -0
  187. package/core/built/admin/assets/post-helpers-C88JBa4D.js +1 -0
  188. package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +1 -0
  189. package/core/built/admin/assets/post-utils-DKF4mfuo.js +1 -0
  190. package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +2 -0
  191. package/core/built/admin/assets/posts-pCPrhQeR.js +1 -0
  192. package/core/built/admin/assets/posts-route-9F--xdIb.js +1 -0
  193. package/core/built/admin/assets/{preferences-C5YJLp74.js → preferences--vNubsqD.js} +2 -2
  194. package/core/built/admin/assets/{preview-modal-BfeFqi5y.js → preview-modal-YYbzlYdO.js} +1 -1
  195. package/core/built/admin/assets/profile-BllKV3dR.js +1 -0
  196. package/core/built/admin/assets/radio-group-DL8GI8rt.js +1 -0
  197. package/core/built/admin/assets/{referrers-CnhCMWCs.js → referrers-D8oHPmDB.js} +1 -1
  198. package/core/built/admin/assets/router-provider-BSvTXgZY.js +1 -0
  199. package/core/built/admin/assets/schemas-BoYdB6YU.js +64 -0
  200. package/core/built/admin/assets/{select-cb0t_TAJ.js → select-v5YbA3Mw.js} +1 -1
  201. package/core/built/admin/assets/settings-PEsZupw1.js +4 -0
  202. package/core/built/admin/assets/{settings-breadcrumbs-DLzbRRSt.js → settings-breadcrumbs-NwPnCTC7.js} +1 -1
  203. package/core/built/admin/assets/{settings-DZqxR0Da.js → settings-u_s1CRkr.js} +1 -1
  204. package/core/built/admin/assets/{share-modal-D2-Bz1_I.js → share-modal-SskCmVGL.js} +1 -1
  205. package/core/built/admin/assets/{slack-modal-DYDTUria.js → slack-modal-XxSJiYgo.js} +1 -1
  206. package/core/built/admin/assets/{sort-button-VVeQjjbu.js → sort-button-Cx1KtINE.js} +1 -1
  207. package/core/built/admin/assets/{source-icon-Ck5_5Kgq.js → source-icon-Bdp9Im_5.js} +1 -1
  208. package/core/built/admin/assets/stats-D9PDLS3x.js +1 -0
  209. package/core/built/admin/assets/stats-view-W2g6Jsd-.js +1 -0
  210. package/core/built/admin/assets/{step-1-CsaBjeN4.js → step-1-BQYzvBzr.js} +1 -1
  211. package/core/built/admin/assets/{step-2-D2vnxOOM.js → step-2-xES32xJV.js} +1 -1
  212. package/core/built/admin/assets/{step-3-wBoLdGEb.js → step-3-DA_XK5kW.js} +2 -2
  213. package/core/built/admin/assets/{stripe-button-CDgLz0S0.js → stripe-button-CVsLHelt.js} +1 -1
  214. package/core/built/admin/assets/{stripe-connect-modal-CSjMJetP.js → stripe-connect-modal-ClmLOMGS.js} +1 -1
  215. package/core/built/admin/assets/style-Wd9nQubI.css +1 -0
  216. package/core/built/admin/assets/{table-Do6iQ83Q.js → table-BenqVupI.js} +1 -1
  217. package/core/built/admin/assets/{tabs-D2yWLMp_.js → tabs-eBBlxPp8.js} +1 -1
  218. package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +2 -0
  219. package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +1 -0
  220. package/core/built/admin/assets/tags-B-kJxCs7.js +1 -0
  221. package/core/built/admin/assets/{tags-zTFiKRpb.js → tags-ChfdwJyS.js} +1 -1
  222. package/core/built/admin/assets/{testimonials-modal-CtnZBJKl.js → testimonials-modal-9Q6fT06V.js} +1 -1
  223. package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +1 -0
  224. package/core/built/admin/assets/tiers-BCpIOGQr.js +1 -0
  225. package/core/built/admin/assets/{toggle-group-ByUJsxwD.js → toggle-group-CviIkyok.js} +1 -1
  226. package/core/built/admin/assets/{topic-filter-BgC3g5_v.js → topic-filter-I2jCBGxm.js} +1 -1
  227. package/core/built/admin/assets/{transistor-modal-Drr0SNfo.js → transistor-modal-p53u3W8y.js} +1 -1
  228. package/core/built/admin/assets/{trend-badge-6ye93YAW.js → trend-badge-CideVzQd.js} +1 -1
  229. package/core/built/admin/assets/{unsplash-modal-p6AoQoWp.js → unsplash-modal-DY8UcKcE.js} +1 -1
  230. package/core/built/admin/assets/{use-analytics-data-CWCMAESo.js → use-analytics-data-DAIGcr2f.js} +1 -1
  231. package/core/built/admin/assets/{use-check-theme-limit-error-Cw3WQHy8.js → use-check-theme-limit-error-DRUjK4YM.js} +1 -1
  232. package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +1 -0
  233. package/core/built/admin/assets/{use-filterable-api-CzXcpUh8.js → use-filterable-api-BVEVMrhZ.js} +1 -1
  234. package/core/built/admin/assets/{use-growth-stats-DCVG3s9w.js → use-growth-stats-937CUj6j.js} +1 -1
  235. package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +1 -0
  236. package/core/built/admin/assets/{use-limiter-D2WRRx0H.js → use-limiter-CohWfzvK.js} +1 -1
  237. package/core/built/admin/assets/{use-navigate-with-base-path-BHPA228f.js → use-navigate-with-base-path-BkxcPj5l.js} +1 -1
  238. package/core/built/admin/assets/use-pintura-config-xgytjU35.js +1 -0
  239. package/core/built/admin/assets/{use-pintura-editor-BfN1UwzH.js → use-pintura-editor-CaV1mbfO.js} +1 -1
  240. package/core/built/admin/assets/{use-post-referrers-Czg47m8s.js → use-post-referrers-BCQI7fDg.js} +1 -1
  241. package/core/built/admin/assets/{use-reply-chain-data-ns0caK8k.js → use-reply-chain-data-CYRhoaxY.js} +1 -1
  242. package/core/built/admin/assets/{use-router-history-entry-uldn7zJO.js → use-router-history-entry-NOKcd--l.js} +1 -1
  243. package/core/built/admin/assets/{use-setting-group-DpcuCUDg.js → use-setting-group-bLKMwoBT.js} +1 -1
  244. package/core/built/admin/assets/{use-settings-navigation-CZjGrhsp.js → use-settings-navigation-B-qrriKD.js} +1 -1
  245. package/core/built/admin/assets/{use-simple-pagination-DzJWobPR.js → use-simple-pagination-CNPd6Rf6.js} +1 -1
  246. package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +1 -0
  247. package/core/built/admin/assets/{use-tinybird-query-CSnGXzZh.js → use-tinybird-query-CmdbCS9X.js} +1 -1
  248. package/core/built/admin/assets/{use-tinybird-token-DTOKRR7e.js → use-tinybird-token-KLne235s.js} +1 -1
  249. package/core/built/admin/assets/{use-unsaved-changes-guard-CBzs-KPi.js → use-unsaved-changes-guard-7-ug0JdH.js} +1 -1
  250. package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +1 -0
  251. package/core/built/admin/assets/{use-url-input-DFr8lCbS.js → use-url-input-fvp-TpPx.js} +1 -1
  252. package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +1 -0
  253. package/core/built/admin/assets/{users-Cg-OeGzC.js → users-DVNWrqg9.js} +1 -1
  254. package/core/built/admin/assets/{vendor-5753232c7d6ffb3c44e1eb0a02133953.js → vendor-2dd263291938d407802568d3357ec69e.js} +19 -17
  255. package/core/built/admin/assets/{virtual-list-BW-padMe.js → virtual-list-CZ3RK2Yf.js} +1 -1
  256. package/core/built/admin/assets/{web-C1v33ehA.js → web-ClEJsCAj.js} +2 -2
  257. package/core/built/admin/assets/web-X9rdnrtq.js +1 -0
  258. package/core/built/admin/assets/{zapier-modal-BBFfI6Ml.js → zapier-modal-DfVhV17j.js} +1 -1
  259. package/core/built/admin/index.html +19 -18
  260. package/core/server/adapters/jobs/InMemoryJobsBackend.js +74 -29
  261. package/core/server/api/endpoints/authentication.js +1 -2
  262. package/core/server/api/endpoints/authors-public.js +15 -5
  263. package/core/server/api/endpoints/emails.js +13 -0
  264. package/core/server/api/endpoints/index.js +8 -0
  265. package/core/server/api/endpoints/member-metafields-members.js +23 -0
  266. package/core/server/api/endpoints/member-metafields.js +33 -20
  267. package/core/server/api/endpoints/members-account.js +42 -0
  268. package/core/server/api/endpoints/newsletters-public.js +10 -1
  269. package/core/server/api/endpoints/pages-public.js +15 -5
  270. package/core/server/api/endpoints/posts-public.js +15 -5
  271. package/core/server/api/endpoints/tags-public.js +22 -3
  272. package/core/server/api/endpoints/tiers-checkout-config.js +2 -2
  273. package/core/server/api/endpoints/tiers-public.js +38 -1
  274. package/core/server/api/endpoints/users.js +2 -2
  275. package/core/server/api/endpoints/utils/api-filter-utils.js +170 -3
  276. package/core/server/api/endpoints/utils/public-cache-keys.js +3 -0
  277. package/core/server/api/endpoints/utils/serializers/input/authors.js +2 -0
  278. package/core/server/api/endpoints/utils/serializers/input/members.js +16 -2
  279. package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -0
  280. package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -0
  281. package/core/server/api/endpoints/utils/serializers/input/tags.js +2 -0
  282. package/core/server/api/endpoints/utils/serializers/output/emails.js +7 -0
  283. package/core/server/api/endpoints/utils/serializers/output/index.js +4 -0
  284. package/core/server/api/endpoints/utils/serializers/output/member-metafields.js +3 -3
  285. package/core/server/api/endpoints/utils/serializers/output/members-account.js +19 -0
  286. package/core/server/api/endpoints/utils/serializers/output/members-csv-transform.js +1 -1
  287. package/core/server/api/endpoints/utils/serializers/output/tiers.js +10 -2
  288. package/core/server/api/endpoints/utils/serializers/output/users.js +0 -10
  289. package/core/server/data/exporter/table-lists.js +3 -3
  290. package/core/server/data/migrations/versions/6.53/2026-07-15-20-22-53-add-members-custom-field-values.js +1 -1
  291. package/core/server/data/migrations/versions/6.57/2026-08-04-18-00-00-store-custom-field-values-as-leaf-rows.js +10 -1
  292. package/core/server/data/migrations/versions/6.63/2026-09-03-10-07-03-rename-custom-field-tables-to-metafields.js +169 -0
  293. package/core/server/data/migrations/versions/6.63/2026-09-03-11-03-31-remove-member-custom-field-read-permissions.js +30 -0
  294. package/core/server/data/schema/fixtures/fixtures.json +0 -11
  295. package/core/server/data/schema/lib/default-index-name.js +8 -11
  296. package/core/server/data/schema/schema.js +18 -18
  297. package/core/server/data/seeders/README.md +48 -0
  298. package/core/server/data/tinybird/pipes/mv_hits.pipe +86 -50
  299. package/core/server/lib/db-types/count.js +16 -0
  300. package/core/server/lib/validate-password.js +81 -120
  301. package/core/server/models/action.js +4 -4
  302. package/core/server/models/base/plugins/filtered-collection.js +16 -0
  303. package/core/server/models/member.js +6 -6
  304. package/core/server/models/user.js +1 -1
  305. package/core/server/services/automations/automations-api.js +1 -1
  306. package/core/server/services/automations/database-automations-repository.js +11 -4
  307. package/core/server/services/email-service/CONTEXT.md +37 -0
  308. package/core/server/services/email-service/README.md +42 -0
  309. package/core/server/services/email-service/batch-sending-service.js +2 -0
  310. package/core/server/services/email-service/email-controller.js +18 -2
  311. package/core/server/services/email-service/email-service-wrapper.js +3 -0
  312. package/core/server/services/email-service/sending-status-schema.js +21 -0
  313. package/core/server/services/email-service/sending-status-serializers.js +33 -0
  314. package/core/server/services/email-service/sending-status-service.js +47 -0
  315. package/core/server/services/email-service/sending-status.js +111 -0
  316. package/core/server/services/email-suppression-list/email-suppression-list.js +0 -33
  317. package/core/server/services/email-suppression-list/mailgun-email-suppression-list.js +6 -7
  318. package/core/server/services/gifts/README.md +2 -2
  319. package/core/server/services/gifts/constants.js +1 -1
  320. package/core/server/services/gifts/gift-service.js +19 -57
  321. package/core/server/services/gifts/index.js +0 -2
  322. package/core/server/services/jobs-service/index.js +8 -0
  323. package/core/server/services/jobs-service/jobs-service.js +52 -3
  324. package/core/server/services/jobs-service/register-job-handlers.js +13 -2
  325. package/core/server/services/members/account-service.js +98 -0
  326. package/core/server/services/members/api.js +4 -4
  327. package/core/server/services/members/import-export/export/exporter.js +20 -20
  328. package/core/server/services/members/import-export/import/completion-email.js +6 -6
  329. package/core/server/services/members/import-export/import/importer.js +13 -13
  330. package/core/server/services/members/import-export/index.js +7 -7
  331. package/core/server/services/members/members-api/members-api.js +26 -6
  332. package/core/server/services/members/members-api/repositories/member-repository.js +4 -4
  333. package/core/server/services/members/members-api/services/member-bread-service.js +45 -39
  334. package/core/server/services/members/members-ssr.js +18 -0
  335. package/core/server/services/members/middleware.js +95 -81
  336. package/core/server/services/members/service.js +70 -42
  337. package/core/server/services/members/utils.js +9 -0
  338. package/core/server/services/members-metafields/access.js +28 -0
  339. package/core/server/services/{members-custom-fields → members-metafields}/actions.js +5 -5
  340. package/core/server/services/members-metafields/bindings-service.js +147 -0
  341. package/core/server/services/{members-custom-fields → members-metafields}/codec.js +4 -4
  342. package/core/server/services/{members-custom-fields → members-metafields}/config.js +1 -1
  343. package/core/server/services/{members-custom-fields → members-metafields}/definitions-service.js +17 -23
  344. package/core/server/services/{members-custom-fields → members-metafields}/filter.js +9 -9
  345. package/core/server/services/{members-custom-fields → members-metafields}/index.js +16 -7
  346. package/core/server/services/{members-custom-fields → members-metafields}/key.js +1 -1
  347. package/core/server/services/{members-custom-fields → members-metafields}/models.js +4 -4
  348. package/core/server/services/members-metafields/namespaces.js +34 -0
  349. package/core/server/services/{members-custom-fields → members-metafields}/queries.js +1 -1
  350. package/core/server/services/{members-custom-fields → members-metafields}/schema.js +16 -12
  351. package/core/server/services/{members-custom-fields → members-metafields}/serializers.js +6 -6
  352. package/core/server/services/{members-custom-fields → members-metafields}/values-service.js +32 -22
  353. package/core/server/services/mentions/mention-sending-service.js +26 -9
  354. package/core/server/services/mentions/send-webmentions-job.js +18 -0
  355. package/core/server/services/mentions/service.js +1 -31
  356. package/core/server/services/stripe/services/webhook/checkout-session-event-service.js +2 -2
  357. package/core/server/services/stripe/stripe-service.js +4 -4
  358. package/core/server/services/tier-checkout-config/codec.js +2 -2
  359. package/core/server/services/tier-checkout-config/index.js +2 -1
  360. package/core/server/services/tier-checkout-config/models.js +2 -2
  361. package/core/server/services/tier-checkout-config/queries.js +8 -8
  362. package/core/server/services/tier-checkout-config/serializers.js +57 -0
  363. package/core/server/services/tier-checkout-config/service.js +1 -1
  364. package/core/server/services/tiers/service.js +3 -3
  365. package/core/server/services/url/router-filter.js +8 -10
  366. package/core/server/services/users.js +1 -19
  367. package/core/server/web/api/endpoints/admin/routes.js +1 -0
  368. package/core/server/web/members/account/index.js +2 -0
  369. package/core/server/web/members/account/routes.js +46 -0
  370. package/core/server/web/members/app.js +4 -18
  371. package/core/shared/config/defaults.json +1 -1
  372. package/core/shared/labs.js +4 -2
  373. package/package.json +22 -22
  374. package/pnpm-lock.yaml +513 -571
  375. package/pnpm-workspace.yaml +12 -12
  376. package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
  377. package/core/built/admin/assets/activitypub/layout-2-0bw6HN.js +0 -1
  378. package/core/built/admin/assets/automated-emails-D5VVMND9.js +0 -1
  379. package/core/built/admin/assets/automations-CzKt5fb8.js +0 -1
  380. package/core/built/admin/assets/chunk.598.7e056fabb47ce7dbd73f.js +0 -366
  381. package/core/built/admin/assets/comments-BLmCmyCs.js +0 -1
  382. package/core/built/admin/assets/custom-field-type-option-BddFlJFa.js +0 -1
  383. package/core/built/admin/assets/design-and-theme-modal-BSmo12Op.js +0 -2
  384. package/core/built/admin/assets/edit-profile-C5Asm4LA.js +0 -1
  385. package/core/built/admin/assets/editor-REokrzci.js +0 -8
  386. package/core/built/admin/assets/filter-sources-BO9xUPj7.js +0 -1
  387. package/core/built/admin/assets/filters-CRUWecfY.js +0 -1
  388. package/core/built/admin/assets/growth-BWIu-6xj.js +0 -3
  389. package/core/built/admin/assets/growth-DU29oxeA.js +0 -1
  390. package/core/built/admin/assets/hooks-CuEZV2-q.js +0 -2
  391. package/core/built/admin/assets/index-6MkPdCtr.js +0 -4
  392. package/core/built/admin/assets/index-Bn7QhcZu.css +0 -2
  393. package/core/built/admin/assets/index.es-CNnuNH0d.js +0 -1
  394. package/core/built/admin/assets/koenig-loader-aFQNlJlD.js +0 -2
  395. package/core/built/admin/assets/label-picker-KVoo91sh.js +0 -1
  396. package/core/built/admin/assets/layout-Bjv2Ll-5.js +0 -1
  397. package/core/built/admin/assets/link-helpers-MVDdnFCY.js +0 -1
  398. package/core/built/admin/assets/member-detail-CdJF6Agw.js +0 -1
  399. package/core/built/admin/assets/members-DjQbq9Z2.js +0 -4
  400. package/core/built/admin/assets/navigation-modal-BkT7b1M2.js +0 -1
  401. package/core/built/admin/assets/newsletter-BMMAuvgq.js +0 -1
  402. package/core/built/admin/assets/newsletter-detail-modal-0SCJ7Zpm.js +0 -1
  403. package/core/built/admin/assets/newsletters-DhNigJUh.js +0 -1
  404. package/core/built/admin/assets/onboarding-qg8Akovm.js +0 -1
  405. package/core/built/admin/assets/overview-BW8GLeYi.js +0 -1
  406. package/core/built/admin/assets/overview-BkXZNzaZ.js +0 -1
  407. package/core/built/admin/assets/pages-jgaFm69d.js +0 -1
  408. package/core/built/admin/assets/pages-route-CIUAQxtY.js +0 -1
  409. package/core/built/admin/assets/portal-modal-D4ceei3t.js +0 -1
  410. package/core/built/admin/assets/post-analytics-header-BYCsT0GP.js +0 -1
  411. package/core/built/admin/assets/post-analytics-ot7f6pih.js +0 -1
  412. package/core/built/admin/assets/post-analytics-provider-Bo1gmYaP.js +0 -1
  413. package/core/built/admin/assets/post-helpers-C5OQMBoi.js +0 -1
  414. package/core/built/admin/assets/post-share-modal-C-PaYZ_e.js +0 -1
  415. package/core/built/admin/assets/posts-DuGazgTb.js +0 -1
  416. package/core/built/admin/assets/posts-list-screen-CBGGgjjj.js +0 -2
  417. package/core/built/admin/assets/posts-route-D6xmS7Vf.js +0 -1
  418. package/core/built/admin/assets/profile-B8mx2yAu.js +0 -1
  419. package/core/built/admin/assets/radio-group-DczlLKOn.js +0 -1
  420. package/core/built/admin/assets/router-provider-B0gZyiGJ.js +0 -1
  421. package/core/built/admin/assets/schemas-DppqmpeJ.js +0 -64
  422. package/core/built/admin/assets/settings-DvfTNdHQ.js +0 -4
  423. package/core/built/admin/assets/stats-Rjmk5owg.js +0 -1
  424. package/core/built/admin/assets/stats-view-BGGmkmgv.js +0 -1
  425. package/core/built/admin/assets/tag-detail-BhXlOsCa.js +0 -2
  426. package/core/built/admin/assets/tags-ldukRApe.js +0 -1
  427. package/core/built/admin/assets/tier-detail-modal-BOs8e_G8.js +0 -1
  428. package/core/built/admin/assets/tiers-Nd_z4BZY.js +0 -1
  429. package/core/built/admin/assets/use-filter-params-BIni9taJ.js +0 -1
  430. package/core/built/admin/assets/use-host-limits-DZtR08oa.js +0 -1
  431. package/core/built/admin/assets/use-pintura-config-h-J0Lvta.js +0 -1
  432. package/core/built/admin/assets/use-staff-users-Csipb-O0.js +0 -1
  433. package/core/built/admin/assets/use-upgrade-route-DhRSo7at.js +0 -1
  434. package/core/built/admin/assets/user-detail-modal-B_iUClI6.js +0 -1
  435. package/core/built/admin/assets/web-C4BKzn2T.js +0 -1
  436. package/core/server/services/email-suppression-list/in-memory-email-suppression-list.js +0 -39
  437. package/core/server/services/members-custom-fields/bindings-service.js +0 -120
  438. /package/core/built/admin/assets/{chunk.492.f24d855d7e3f3aad261c.js.LICENSE.txt → chunk.901.4ccc639821020230bcca.js.LICENSE.txt} +0 -0
  439. /package/core/server/services/{members-custom-fields → members-metafields}/storage.js +0 -0
@@ -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{_ as r}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{a as i,t as a}from"./router-provider-B0gZyiGJ.js";import{Tr as o,at as s,dn as c,er as l,t as u}from"./button-eNMKQWXr.js";import{L as d,R as f,dt as p,ei as m,ii as h}from"./index-6MkPdCtr.js";import{t as g}from"./share-modal-D2-Bz1_I.js";var _=e(t(),1),v=``+new URL(`logo-loader-dark-CuSPz-zc.mp4`,import.meta.url).href,y=``+new URL(`logo-loader-88VPEpXE.mp4`,import.meta.url).href,b=n();function x(){return(0,b.jsxs)(`div`,{className:`relative mb-6 size-20`,children:[(0,b.jsx)(`video`,{"aria-hidden":`true`,className:`size-20 dark:hidden`,height:80,preload:`metadata`,role:`presentation`,tabIndex:-1,width:80,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,children:(0,b.jsx)(`source`,{src:y,type:`video/mp4`})}),(0,b.jsx)(`video`,{"aria-hidden":`true`,className:`hidden size-20 dark:block`,height:80,preload:`metadata`,role:`presentation`,tabIndex:-1,width:80,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,children:(0,b.jsx)(`source`,{src:v,type:`video/mp4`})}),(0,b.jsx)(`div`,{className:`pointer-events-none absolute inset-0 hidden bg-[hsl(216deg_11%_70%/1%)] dark:block`})]})}function S({complete:e,id:t,isBeforeNext:n,isLast:r,isNext:i,onClick:a,step:s}){let c=s.icon;return(0,b.jsxs)(`button`,{className:`group ${i?`relative z-10 -mx-8 flex w-[calc(100%+64px)] items-center justify-between rounded-md bg-background px-8 py-6 text-left shadow-[0_1px_0_rgba(17,17,26,0.05),0_0_8px_rgba(17,17,26,0.10)] transition-none dark:ring-1 dark:ring-border ${r?`-mb-[18px]`:`mb-1.5`}`:`relative flex w-full items-center justify-between bg-transparent py-6 text-left ${r||n||i?``:`after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border after:content-['']`}`}`,"data-testid":`onboarding-step-${s.id}`,id:t,type:`button`,onClick:a,children:[(0,b.jsxs)(`span`,{className:`flex min-w-0 items-center ${e?`opacity-20 group-hover:opacity-25`:`group-hover:opacity-90`}`,children:[(0,b.jsx)(c,{className:`mr-4 size-5 shrink-0 text-purple`}),(0,b.jsxs)(`span`,{className:`min-w-0 text-left`,children:[(0,b.jsx)(`span`,{className:`block truncate pr-8 text-[16px] leading-[1.3] font-bold text-foreground`,children:s.title}),i&&(0,b.jsx)(`span`,{className:`mt-1 block pr-8 text-[15px] leading-[1.4] text-muted-foreground`,children:s.description})]})]}),(0,b.jsx)(`span`,{className:`flex shrink-0 items-center transition-transform group-hover:translate-x-[5px] ${e?`text-green`:`text-purple`}`,children:e?(0,b.jsx)(l,{className:`size-5`}):(0,b.jsx)(o,{className:`size-3.5`})})]})}function C({allStepsCompleted:e,completedSteps:t,nextStep:n,onComplete:r,onDismiss:i,onStepClick:a,siteTitle:o}){let c=new Set(t);return(0,b.jsx)(`main`,{className:`relative flex min-h-screen flex-col items-center justify-center px-6 py-8`,children:(0,b.jsxs)(`section`,{className:`mt-[-48px] flex w-full flex-col items-center`,"data-test-dashboard":`onboarding-checklist`,"data-testid":`onboarding-checklist`,children:[(0,b.jsxs)(`div`,{className:`mb-8 flex flex-col items-center text-center`,children:[(0,b.jsx)(x,{}),e?(0,b.jsx)(`h1`,{className:`text-[32px] leading-[1.15] font-bold tracking-normal text-foreground max-[480px]:text-[24px]`,children:`You're all set.`}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`h1`,{className:`text-[32px] leading-[1.15] font-bold tracking-normal text-foreground max-[480px]:text-[24px]`,children:`Let's get started!`}),(0,b.jsxs)(`p`,{className:`mt-2 mb-0 text-[15px] text-muted-foreground max-[480px]:m-0 max-[480px]:text-[14px]`,children:[`Welcome! It's time to set up `,o,`.`]})]})]}),(0,b.jsxs)(`div`,{className:`w-full max-w-[540px] rounded-md border border-border bg-background px-6 pt-4 pb-1`,children:[(0,b.jsxs)(`div`,{className:`mt-[-12px] flex items-center justify-between py-6 ${n===`customize-design`?`border-b-0`:`border-b border-border`}`,children:[(0,b.jsxs)(`span`,{className:`flex min-w-0 items-center opacity-20`,children:[(0,b.jsx)(s,{className:`mr-4 size-5 shrink-0 text-purple`}),(0,b.jsx)(`span`,{className:`truncate pr-8 text-[16px] leading-[1.3] font-bold text-foreground`,children:`Start a new Ghost publication`})]}),(0,b.jsx)(`span`,{className:`shrink-0 text-green`,children:(0,b.jsx)(l,{className:`size-5`})})]}),f.map((e,t)=>(0,b.jsx)(S,{complete:c.has(e.id),id:`ob-${e.id}`,isBeforeNext:f[t+1]?.id===n,isLast:t===f.length-1,isNext:n===e.id,step:e,onClick:()=>a(e.id)},e.id))]}),e&&(0,b.jsx)(u,{className:`mt-6 h-auto w-full max-w-[540px] p-3 text-[16px] max-[480px]:text-[15px]`,"data-testid":`onboarding-complete`,id:`ob-completed`,type:`button`,onClick:r,children:`Explore your dashboard`}),(0,b.jsxs)(`p`,{className:`mt-8 mb-0 text-[15px] text-muted-foreground max-[480px]:text-[14px]`,children:[`More questions? Check out our`,` `,(0,b.jsx)(u,{className:`h-auto p-0 align-baseline text-[15px] text-green hover:text-green/90 max-[480px]:text-[14px]`,variant:`link`,asChild:!0,children:(0,b.jsx)(`a`,{href:`https://ghost.org/help?utm_source=admin&utm_campaign=onboarding`,id:`ob-help-center`,rel:`noreferrer`,target:`_blank`,children:`Help Center`})}),`.`]}),!e&&(0,b.jsx)(u,{className:`mt-6 h-[38px] overflow-hidden px-3.5 py-px text-[15px] font-normal whitespace-nowrap text-muted-foreground hover:border-gray-300 hover:text-foreground`,"data-testid":`onboarding-skip`,id:`ob-skip`,type:`button`,variant:`outline`,onClick:i,children:`Skip onboarding`})]})})}function w({description:e,imageUrl:t,onOpenChange:n,open:r,siteTitle:i,siteUrl:a}){let o=encodeURIComponent(a),s=[{href:`https://twitter.com/intent/tweet?url=${o}`,id:`ob-share-on-x`,label:`Share your publication on X`,service:`x`},{href:`https://threads.net/intent/post?text=${o}`,id:`ob-share-on-threads`,label:`Share your publication on Threads`,service:`threads`},{href:`https://www.facebook.com/sharer/sharer.php?u=${o}`,id:`ob-share-on-fb`,label:`Share your publication on Facebook`,service:`facebook`},{href:`https://www.linkedin.com/feed/?shareActive=true&text=${o}`,id:`ob-share-on-li`,label:`Share your publication on LinkedIn`,service:`linkedin`}];return(0,b.jsx)(g.Root,{open:r,onOpenChange:n,children:(0,b.jsxs)(g.Content,{className:`dark:bg-surface-elevated`,"data-test-modal":`onboarding-share`,"data-testid":`onboarding-share-modal`,children:[(0,b.jsxs)(g.Header,{className:`flex-row items-center justify-between gap-4 space-y-0 text-left`,children:[(0,b.jsx)(g.Title,{className:`text-2xl`,children:`Share your publication`}),(0,b.jsx)(g.CloseButton,{id:`ob-close-share-modal`,onClick:()=>n(!1)})]}),(0,b.jsxs)(g.Preview,{className:`rounded-lg bg-card`,href:a,children:[t?(0,b.jsx)(`div`,{className:`aspect-video bg-cover bg-center`,style:{backgroundImage:`url(${t})`}}):(0,b.jsx)(`div`,{className:`flex aspect-video items-center justify-center bg-muted text-muted-foreground`,children:(0,b.jsx)(c,{className:`size-8`})}),(0,b.jsxs)(`div`,{className:`p-5`,children:[(0,b.jsx)(`div`,{className:`text-lg font-semibold`,children:i}),e&&(0,b.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e})]})]}),(0,b.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Set your publication's cover image and description in`,` `,(0,b.jsx)(u,{className:`h-auto p-0 align-baseline text-sm text-green hover:text-green/90`,variant:`link`,asChild:!0,children:(0,b.jsx)(`a`,{href:`#/settings/design/edit?ref=setup`,id:`ob-share-modal-design-settings`,children:`Design settings`})}),`.`]}),(0,b.jsxs)(g.Footer,{children:[(0,b.jsx)(g.SocialLinks,{links:s}),(0,b.jsx)(g.CopyButton,{className:`ml-0! grow cursor-pointer`,copyURL:a,"data-testid":`onboarding-copy-link`,icon:`link`,id:`ob-copy-publication-link`,label:`Copy link`})]})]})})}function T(e){return e&&/^\/analytics(?:\/|\?|$)/.test(e)?e:`/analytics`}function E(){let e=i(),[t]=r(),n=T(t.get(`returnTo`)),o=d(),s=h(),c=p(),l=(0,_.useRef)(!1),[u,g]=(0,_.useState)(!1),[v,y]=(0,_.useState)(!1),x=String(m(s.data?.settings,`title`)||c.data?.site.title||`your publication`),S=String(m(s.data?.settings,`description`)||c.data?.site.description||``),E=String(m(s.data?.settings,`cover_image`)||``),D=c.data?.site.url||`/`,{allStepsCompleted:O,completeChecklist:k,completedSteps:A,dismissChecklist:j,shouldShowChecklist:M,isLoading:N,markStepCompleted:P,nextStep:F}=o;if(N||c.isLoading||u||l.current)return null;if(!M)return(0,b.jsx)(a,{to:n,replace:!0});let I=async t=>{l.current=!0,g(!0);try{await t(),e(n,{replace:!0})}catch(e){l.current=!1,g(!1),console.error(e)}},L=async t=>{if(t===`share-publication`){await P(t),y(!0);return}await P(t);let n=f.find(({id:e})=>e===t);n?.route&&e(n.route)};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(C,{allStepsCompleted:O,completedSteps:A,nextStep:F,siteTitle:x,onComplete:()=>{I(k)},onDismiss:()=>{I(j)},onStepClick:e=>{L(e)}}),(0,b.jsx)(w,{description:S,imageUrl:E,open:v,siteTitle:x,siteUrl:D,onOpenChange:y})]})}export{E as default};
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"./chunk-KS7C4IRE-DCsL4i4D.js";import{a as i,t as a}from"./router-provider-BSvTXgZY.js";import{Dr as o,at as s,fn as c,nr as l,t as u}from"./button-Dvcv1QSR.js";import{B as d,_i as f,mt as p,pi as m,z as h}from"./index-CgMCwsxN.js";import{t as g}from"./share-modal-SskCmVGL.js";var _=e(t(),1),v=``+new URL(`logo-loader-dark-CuSPz-zc.mp4`,import.meta.url).href,y=``+new URL(`logo-loader-88VPEpXE.mp4`,import.meta.url).href,b=n();function x(){return(0,b.jsxs)(`div`,{className:`relative mb-6 size-20`,children:[(0,b.jsx)(`video`,{"aria-hidden":`true`,className:`size-20 dark:hidden`,height:80,preload:`metadata`,role:`presentation`,tabIndex:-1,width:80,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,children:(0,b.jsx)(`source`,{src:y,type:`video/mp4`})}),(0,b.jsx)(`video`,{"aria-hidden":`true`,className:`hidden size-20 dark:block`,height:80,preload:`metadata`,role:`presentation`,tabIndex:-1,width:80,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,children:(0,b.jsx)(`source`,{src:v,type:`video/mp4`})}),(0,b.jsx)(`div`,{className:`pointer-events-none absolute inset-0 hidden bg-[hsl(216deg_11%_70%/1%)] dark:block`})]})}function S({complete:e,id:t,isBeforeNext:n,isLast:r,isNext:i,onClick:a,step:s}){let c=s.icon;return(0,b.jsxs)(`button`,{className:`group ${i?`relative z-10 -mx-8 flex w-[calc(100%+64px)] items-center justify-between rounded-md bg-background px-8 py-6 text-left shadow-[0_1px_0_rgba(17,17,26,0.05),0_0_8px_rgba(17,17,26,0.10)] transition-none dark:ring-1 dark:ring-border ${r?`-mb-[18px]`:`mb-1.5`}`:`relative flex w-full items-center justify-between bg-transparent py-6 text-left ${r||n||i?``:`after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border after:content-['']`}`}`,"data-testid":`onboarding-step-${s.id}`,id:t,type:`button`,onClick:a,children:[(0,b.jsxs)(`span`,{className:`flex min-w-0 items-center ${e?`opacity-20 group-hover:opacity-25`:`group-hover:opacity-90`}`,children:[(0,b.jsx)(c,{className:`mr-4 size-5 shrink-0 text-purple`}),(0,b.jsxs)(`span`,{className:`min-w-0 text-left`,children:[(0,b.jsx)(`span`,{className:`block truncate pr-8 text-[16px] leading-[1.3] font-bold text-foreground`,children:s.title}),i&&(0,b.jsx)(`span`,{className:`mt-1 block pr-8 text-[15px] leading-[1.4] text-muted-foreground`,children:s.description})]})]}),(0,b.jsx)(`span`,{className:`flex shrink-0 items-center transition-transform group-hover:translate-x-[5px] ${e?`text-green`:`text-purple`}`,children:e?(0,b.jsx)(l,{className:`size-5`}):(0,b.jsx)(o,{className:`size-3.5`})})]})}function C({allStepsCompleted:e,completedSteps:t,nextStep:n,onComplete:r,onDismiss:i,onStepClick:a,siteTitle:o}){let c=new Set(t);return(0,b.jsx)(`main`,{className:`relative flex min-h-screen flex-col items-center justify-center px-6 py-8`,children:(0,b.jsxs)(`section`,{className:`mt-[-48px] flex w-full flex-col items-center`,"data-test-dashboard":`onboarding-checklist`,"data-testid":`onboarding-checklist`,children:[(0,b.jsxs)(`div`,{className:`mb-8 flex flex-col items-center text-center`,children:[(0,b.jsx)(x,{}),e?(0,b.jsx)(`h1`,{className:`text-[32px] leading-[1.15] font-bold tracking-normal text-foreground max-[480px]:text-[24px]`,children:`You're all set.`}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`h1`,{className:`text-[32px] leading-[1.15] font-bold tracking-normal text-foreground max-[480px]:text-[24px]`,children:`Let's get started!`}),(0,b.jsxs)(`p`,{className:`mt-2 mb-0 text-[15px] text-muted-foreground max-[480px]:m-0 max-[480px]:text-[14px]`,children:[`Welcome! It's time to set up `,o,`.`]})]})]}),(0,b.jsxs)(`div`,{className:`w-full max-w-[540px] rounded-md border border-border bg-background px-6 pt-4 pb-1`,children:[(0,b.jsxs)(`div`,{className:`mt-[-12px] flex items-center justify-between py-6 ${n===`customize-design`?`border-b-0`:`border-b border-border`}`,children:[(0,b.jsxs)(`span`,{className:`flex min-w-0 items-center opacity-20`,children:[(0,b.jsx)(s,{className:`mr-4 size-5 shrink-0 text-purple`}),(0,b.jsx)(`span`,{className:`truncate pr-8 text-[16px] leading-[1.3] font-bold text-foreground`,children:`Start a new Ghost publication`})]}),(0,b.jsx)(`span`,{className:`shrink-0 text-green`,children:(0,b.jsx)(l,{className:`size-5`})})]}),d.map((e,t)=>(0,b.jsx)(S,{complete:c.has(e.id),id:`ob-${e.id}`,isBeforeNext:d[t+1]?.id===n,isLast:t===d.length-1,isNext:n===e.id,step:e,onClick:()=>a(e.id)},e.id))]}),e&&(0,b.jsx)(u,{className:`mt-6 h-auto w-full max-w-[540px] p-3 text-[16px] max-[480px]:text-[15px]`,"data-testid":`onboarding-complete`,id:`ob-completed`,type:`button`,onClick:r,children:`Explore your dashboard`}),(0,b.jsxs)(`p`,{className:`mt-8 mb-0 text-[15px] text-muted-foreground max-[480px]:text-[14px]`,children:[`More questions? Check out our`,` `,(0,b.jsx)(u,{className:`h-auto p-0 align-baseline text-[15px] text-green hover:text-green/90 max-[480px]:text-[14px]`,variant:`link`,asChild:!0,children:(0,b.jsx)(`a`,{href:`https://ghost.org/help?utm_source=admin&utm_campaign=onboarding`,id:`ob-help-center`,rel:`noreferrer`,target:`_blank`,children:`Help Center`})}),`.`]}),!e&&(0,b.jsx)(u,{className:`mt-6 h-[38px] overflow-hidden px-3.5 py-px text-[15px] font-normal whitespace-nowrap text-muted-foreground hover:border-gray-300 hover:text-foreground`,"data-testid":`onboarding-skip`,id:`ob-skip`,type:`button`,variant:`outline`,onClick:i,children:`Skip onboarding`})]})})}function w({description:e,imageUrl:t,onOpenChange:n,open:r,siteTitle:i,siteUrl:a}){let o=encodeURIComponent(a),s=[{href:`https://twitter.com/intent/tweet?url=${o}`,id:`ob-share-on-x`,label:`Share your publication on X`,service:`x`},{href:`https://threads.net/intent/post?text=${o}`,id:`ob-share-on-threads`,label:`Share your publication on Threads`,service:`threads`},{href:`https://www.facebook.com/sharer/sharer.php?u=${o}`,id:`ob-share-on-fb`,label:`Share your publication on Facebook`,service:`facebook`},{href:`https://www.linkedin.com/feed/?shareActive=true&text=${o}`,id:`ob-share-on-li`,label:`Share your publication on LinkedIn`,service:`linkedin`}];return(0,b.jsx)(g.Root,{open:r,onOpenChange:n,children:(0,b.jsxs)(g.Content,{className:`dark:bg-surface-elevated`,"data-test-modal":`onboarding-share`,"data-testid":`onboarding-share-modal`,children:[(0,b.jsxs)(g.Header,{className:`flex-row items-center justify-between gap-4 space-y-0 text-left`,children:[(0,b.jsx)(g.Title,{className:`text-2xl`,children:`Share your publication`}),(0,b.jsx)(g.CloseButton,{id:`ob-close-share-modal`,onClick:()=>n(!1)})]}),(0,b.jsxs)(g.Preview,{className:`rounded-lg bg-card`,href:a,children:[t?(0,b.jsx)(`div`,{className:`aspect-video bg-cover bg-center`,style:{backgroundImage:`url(${t})`}}):(0,b.jsx)(`div`,{className:`flex aspect-video items-center justify-center bg-muted text-muted-foreground`,children:(0,b.jsx)(c,{className:`size-8`})}),(0,b.jsxs)(`div`,{className:`p-5`,children:[(0,b.jsx)(`div`,{className:`text-lg font-semibold`,children:i}),e&&(0,b.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e})]})]}),(0,b.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Set your publication's cover image and description in`,` `,(0,b.jsx)(u,{className:`h-auto p-0 align-baseline text-sm text-green hover:text-green/90`,variant:`link`,asChild:!0,children:(0,b.jsx)(`a`,{href:`#/settings/design/edit?ref=setup`,id:`ob-share-modal-design-settings`,children:`Design settings`})}),`.`]}),(0,b.jsxs)(g.Footer,{children:[(0,b.jsx)(g.SocialLinks,{links:s}),(0,b.jsx)(g.CopyButton,{className:`ml-0! grow cursor-pointer`,copyURL:a,"data-testid":`onboarding-copy-link`,icon:`link`,id:`ob-copy-publication-link`,label:`Copy link`})]})]})})}function T(e){return e&&/^\/analytics(?:\/|\?|$)/.test(e)?e:`/analytics`}function E(){let e=i(),[t]=r(),n=T(t.get(`returnTo`)),o=h(),s=f(),c=p(),l=(0,_.useRef)(!1),[u,g]=(0,_.useState)(!1),[v,y]=(0,_.useState)(!1),x=String(m(s.data?.settings,`title`)||c.data?.site.title||`your publication`),S=String(m(s.data?.settings,`description`)||c.data?.site.description||``),E=String(m(s.data?.settings,`cover_image`)||``),D=c.data?.site.url||`/`,{allStepsCompleted:O,completeChecklist:k,completedSteps:A,dismissChecklist:j,shouldShowChecklist:M,isLoading:N,markStepCompleted:P,nextStep:F}=o;if(N||c.isLoading||u||l.current)return null;if(!M)return(0,b.jsx)(a,{to:n,replace:!0});let I=async t=>{l.current=!0,g(!0);try{await t(),e(n,{replace:!0})}catch(e){l.current=!1,g(!1),console.error(e)}},L=async t=>{if(t===`share-publication`){await P(t),y(!0);return}await P(t);let n=d.find(({id:e})=>e===t);n?.route&&e(n.route)};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(C,{allStepsCompleted:O,completedSteps:A,nextStep:F,siteTitle:x,onComplete:()=>{I(k)},onDismiss:()=>{I(j)},onStepClick:e=>{L(e)}}),(0,b.jsx)(w,{description:S,imageUrl:E,open:v,siteTitle:x,siteUrl:D,onOpenChange:y})]})}export{E 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{t as r}from"./use-tinybird-query-CmdbCS9X.js";import{i}from"./pagemenu-vgZVUVKR.js";import{r as a}from"./posts-pCPrhQeR.js";import{o}from"./config-kSHvwdTG.js";import{t as s}from"./analytics-53FOa2wq.js";import{t as c}from"./post-utils-DKF4mfuo.js";import{t as l}from"./post-helpers-C88JBa4D.js";import{a as u}from"./router-provider-BSvTXgZY.js";import{h as d,l as f,m as p,s as m,u as h}from"./dist-B3keLvjj.js";import{r as g}from"./heading-Dh5SFVjL.js";import{At as _,Dn as v,Ln as y,X as b,Yt as x,_n as S,cr as C,et as w,g as T,kt as E,or as ee,r as D,rr as O,t as k,u as A,xt as te}from"./button-Dvcv1QSR.js";import{r as j}from"./trend-badge-CideVzQd.js";import{n as M,t as N}from"./skeleton-Ce9GgUpf.js";import{a as P,n as F,o as I,r as L,s as ne,t as R}from"./card--VNbfgo3.js";import{t as z}from"./empty-indicator-D9QdpuNX.js";import{t as re}from"./use-host-limits-D0Dv3tKA.js";import{Di as B,Si as V,T as H,V as ie,X as U,bi as ae,q as oe,tr as se,wi as W,xi as ce}from"./index-CgMCwsxN.js";import{i as le,n as ue,r as de,t as fe}from"./stats-view-W2g6Jsd-.js";import{g as pe,u as me}from"./stats-D9PDLS3x.js";import{a as he,c as G,i as K,n as q,r as ge,t as J}from"./chart-helpers-FHywU0pj.js";import{t as _e}from"./use-growth-stats-937CUj6j.js";import{n as ve,r as ye,t as be}from"./kpi-card-B21aToe8.js";import{t as Y}from"./use-analytics-data-DAIGcr2f.js";import{n as xe}from"./audience-ceV3XVHq.js";import{n as Se}from"./url-helpers-DcQbx-Xg.js";import{t as Ce}from"./get-site-timezone-HgL0jI_F.js";import{t as we}from"./post-share-modal-DvhC1XgV.js";import{t as Te}from"./feature-image-placeholder-BrIHmPs8.js";var X=e(t(),1),Ee=()=>{let{data:{posts:[e]}={posts:[]},isLoading:t}=a({searchParams:{filter:`status:[published,sent]`,order:`published_at DESC`,limit:`1`,include:`authors,email,count.clicks`}}),n=e,{data:r,isLoading:i}=me(n?.id||``,{enabled:!!n?.id});return{data:(0,X.useMemo)(()=>{if(!n)return null;let e=r?.stats?.[0]||{id:n.id,recipient_count:null,opened_count:null,open_rate:null,member_delta:0,free_members:0,paid_members:0,visitors:0};return{id:n.id,uuid:n.uuid,title:n.title||``,slug:n.slug||``,feature_image:n.feature_image||null,published_at:n.published_at||``,url:n.url||``,excerpt:n.excerpt||``,email_only:n.email_only||!1,status:n.status,email:n.email,count:n.count,authors:n.authors||[],recipient_count:e.recipient_count,opened_count:e.opened_count,open_rate:e.open_rate,member_delta:e.member_delta,free_members:e.free_members,paid_members:e.paid_members,visitors:e.visitors,click_rate:null}},[n,r]),isLoading:t||!!n?.id&&i}},Z=n(),De=e=>e.email_only?`Sent`:e.email?`Published and sent`:`Published`,Oe=({latestPostStats:e,isLoading:t})=>{let n=u(),[r,i]=(0,X.useState)(!1),{site:a,settings:o}=Y(),c=ae(),m=ce(),g=B(),y=V()??!1;(0,X.useEffect)(()=>{r&&s(`Share Modal Opened`,{giftLinkShown:!1,source:`stats-overview`})},[r]);let C=a.title||String(o.find(e=>e.key===`title`)?.value||`Ghost Site`),w=Ce(o),E=e?l(e,{membersTrackSources:y}):null,D=`group mr-2 flex flex-col gap-1.5 hover:cursor-pointer`,O=!!e?.email,A=Se({postId:e?.id,hasEmailData:O,analytics:{webAnalytics:g,membersTrackSources:y}}),j=A.startsWith(`/editor/`),M=H(A);return(0,Z.jsxs)(R,{className:`group/card`,"data-testid":`latest-post`,children:[(0,Z.jsxs)(P,{children:[(0,Z.jsx)(I,{className:`flex items-baseline justify-between leading-snug font-medium text-muted-foreground`,children:`Latest post performance`}),(0,Z.jsx)(L,{className:`hidden`,children:`How your last post did`})]}),(0,Z.jsxs)(F,{className:`flex flex-col gap-6 px-0 lg:flex-row xl:grid xl:grid-cols-3`,children:[t&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex w-full items-center gap-6 px-6 xl:col-span-2`,children:[(0,Z.jsx)(`div`,{className:`w-full max-w-[232px] grow`,children:(0,Z.jsx)(N,{className:`aspect-[16/10] rounded-md`})}),(0,Z.jsxs)(`div`,{className:`w-full grow`,children:[(0,Z.jsx)(N,{className:`w-full max-w-[420px]`}),(0,Z.jsx)(N,{className:`w-1/2`})]})]}),(0,Z.jsx)(`div`,{className:`flex flex-col items-stretch gap-2 px-6`,children:(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-5`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(N,{className:`w-3/4`}),(0,Z.jsx)(N,{className:`h-10 w-1/3`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(N,{className:`w-3/4`}),(0,Z.jsx)(N,{className:`h-10 w-1/3`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(N,{className:`w-3/4`}),(0,Z.jsx)(N,{className:`h-10 w-1/3`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(N,{className:`w-3/4`}),(0,Z.jsx)(N,{className:`h-10 w-1/3`})]})]})})]}),!t&&e&&E?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-6 px-6 transition-all md:flex-row md:items-start xl:col-span-2`,children:[e.feature_image&&(0,Z.jsx)(`div`,{className:`aspect-[16/10] w-full min-w-[100px] rounded-sm bg-cover bg-center sm:max-w-[170px] lg:max-w-[170px] xl:max-w-[232px]`,style:{backgroundImage:`url(${e.feature_image})`}}),(0,Z.jsxs)(`div`,{className:`flex grow flex-col items-start justify-center self-stretch`,children:[(0,Z.jsx)(`div`,{className:`text-md leading-tighter font-semibold tracking-tight hover:cursor-pointer hover:opacity-75`,onClick:()=>{!t&&e&&n(A,{crossApp:M})},children:e.title}),(0,Z.jsxs)(`div`,{className:`mt-1 text-muted-foreground`,children:[e.authors&&e.authors.length>0&&(0,Z.jsxs)(`div`,{children:[`By `,e.authors.map(e=>e.name).join(`, `),` –`,` `,h(e.published_at,w)]}),(0,Z.jsx)(`div`,{className:`mt-0.5`,children:De(e)})]}),(0,Z.jsxs)(`div`,{className:`mt-6 flex items-center gap-2`,children:[!e.email_only&&(0,Z.jsx)(we,{author:e.authors?.map(e=>e.name).join(`, `)||``,description:``,faviconURL:a.icon||``,featureImageURL:e.feature_image||``,open:r,postExcerpt:e.excerpt||``,postTitle:e.title,postURL:e.url||``,siteTitle:C,onClose:()=>i(!1),onOpenChange:i,children:(0,Z.jsxs)(k,{onClick:()=>i(!0),children:[(0,Z.jsx)(b,{}),` Share post`]})}),(0,Z.jsx)(k,{className:e.email_only?`w-full`:``,variant:`outline`,onClick:()=>{n(A,{crossApp:M})},children:j?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(te,{}),(0,Z.jsx)(`span`,{className:`hidden md:visible! md:block!`,children:`Edit post`})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(ee,{}),(0,Z.jsx)(`span`,{className:`hidden md:visible! md:block!`,children:e.email_only?`Post analytics`:`Analytics`})]})})]})]})]}),(0,Z.jsx)(`div`,{className:`-ml-4 flex w-full flex-col items-stretch gap-2 pr-6 xl:h-full xl:max-w-none`,children:(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-6 pl-10 lg:border-l xl:h-full`,children:[E.showWebMetrics&&g&&(0,Z.jsxs)(`div`,{className:D,"data-testid":`latest-post-visitors`,onClick:()=>{n(`/posts/analytics/${e.id}/web`)},children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground`,children:[(0,Z.jsx)(S,{size:16,strokeWidth:1.25}),(0,Z.jsx)(`span`,{className:`hidden md:visible! md:block!`,children:`Visitors`})]}),(0,Z.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold tracking-tighter`,children:p(e.visitors)})]}),E.showMemberGrowth&&(0,Z.jsxs)(`div`,{className:f(D,E.showEmailMetrics&&(!E.showWebMetrics||!g)&&`col-[1/2] row-[2/3]`),"data-testid":`latest-post-members`,onClick:()=>{n(`/posts/analytics/${e.id}/growth`)},children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground`,children:[(0,Z.jsx)(T,{size:16,strokeWidth:1.25}),(0,Z.jsx)(`span`,{className:`hidden md:visible! md:block!`,children:`Members`})]}),(0,Z.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold tracking-tighter`,children:e.member_delta?(0,Z.jsxs)(Z.Fragment,{children:[`+`,p(e.member_delta)]}):0})]}),E.showEmailMetrics&&e.email&&(0,Z.jsxs)(Z.Fragment,{children:[m&&(0,Z.jsxs)(`div`,{className:D,onClick:()=>{n(`/posts/analytics/${e.id}/newsletter`)},children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground`,children:[(0,Z.jsx)(x,{size:16,strokeWidth:1.25}),(0,Z.jsx)(`span`,{className:`hidden whitespace-nowrap md:visible! md:block!`,children:`Opens`})]}),(0,Z.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold tracking-tighter`,children:e.email.email_count?d((e.email.opened_count||0)/e.email.email_count):`0%`})]}),c&&(0,Z.jsxs)(`div`,{className:D,onClick:()=>{n(`/posts/analytics/${e.id}/newsletter`)},children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground`,children:[(0,Z.jsx)(_,{size:16,strokeWidth:1.25}),(0,Z.jsx)(`span`,{className:`hidden whitespace-nowrap md:visible! md:block!`,children:`Clicks`})]}),(0,Z.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold tracking-tighter`,children:e.email.email_count&&e.count?.clicks?d((e.count.clicks||0)/e.email.email_count):`0%`})]})]})]})})]}):!t&&(0,Z.jsx)(z,{actions:(0,Z.jsx)(k,{variant:`secondary`,onClick:()=>{n(`/editor/post`,{crossApp:!0})},children:`New post`}),className:`w-full pb-10 xl:col-span-3`,description:`Once it's live, you can track performance here`,title:`Publish your first post`,children:(0,Z.jsx)(v,{strokeWidth:1.5})})]})]})},Q=({title:e,iconName:t,description:n,color:r,diffDirection:i,diffValue:a,formattedValue:o,trendingFromValue:s,children:c,onClick:l})=>{let{range:u}=U(),d=t&&D[t],f=X.useMemo(()=>{if(!i||i===`empty`||u===oe.allTime.value||!a)return``;let e=i===`up`?`up`:i===`down`?`down`:`at`,t=K(u).replace(`in the `,``).replace(/^\(|\)$/g,``);return i===`same`?(0,Z.jsxs)(`span`,{children:[`You're trending at the same level as`,` `,(0,Z.jsx)(`span`,{className:`font-semibold`,children:o}),` compared to the`,` `,(0,Z.jsx)(`span`,{className:`font-semibold`,children:t})]}):(0,Z.jsxs)(`span`,{children:[`You're trending`,` `,(0,Z.jsxs)(`span`,{className:`font-semibold`,children:[e,` `,a]}),` `,`from `,(0,Z.jsx)(`span`,{className:`font-semibold`,children:s}),` compared to the`,` `,t]})},[i,a,s,o,u]);return(0,Z.jsxs)(R,{className:`group`,"data-testid":e,children:[(0,Z.jsxs)(P,{className:`hidden`,children:[(0,Z.jsx)(I,{children:e}),(0,Z.jsx)(L,{children:n})]}),(0,Z.jsxs)(be,{className:`relative flex grow flex-row items-start justify-between gap-5 border-none pb-2 xl:pb-4`,children:[(0,Z.jsxs)(`div`,{className:`flex grow flex-col gap-1.5 border-none pb-0`,children:[(0,Z.jsxs)(ve,{className:l&&`transition-all group-hover:text-foreground`,children:[r&&(0,Z.jsx)(`span`,{className:`inline-block size-2 rounded-full opacity-50`,style:{backgroundColor:r}}),d&&(0,Z.jsx)(d,{size:16,strokeWidth:1.5}),e]}),(0,Z.jsx)(ye,{diffDirection:u===oe.allTime.value?`hidden`:i,diffTooltip:f,diffValue:a,value:o})]}),l&&(0,Z.jsx)(k,{className:`absolute right-6 translate-x-10 opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100`,size:`sm`,variant:`outline`,onClick:l,children:`View more`})]}),(0,Z.jsx)(F,{children:c})]})},ke=({kpiValues:e,visitorsChartData:t,visitorsChartRange:n,visitorsYRange:r,growthTotals:i,membersChartData:a,mrrChartData:s,growthChartRange:c,currencySymbol:l,isLoading:d})=>{let f=u(),m=B(),h=W(),g=re(),{config:_}=Y(),v=g?.limitAnalytics?.disabled===!0,y=`-mb-3 h-[10vw] max-h-[200px] min-h-[100px] hover:cursor-pointer!`;if(d)return(0,Z.jsx)(ne,{className:`flex h-[calc(10vw+116px)] max-h-[416px] min-h-20 items-center justify-center hover:cursor-pointer!`,children:(0,Z.jsx)(se,{})});let b=m,x=v&&!b,S=h,C=[b,x,!0,S].filter(Boolean).length,w=`lg:grid-cols-3`;return C===2?w=`lg:grid-cols-2`:C===1&&(w=`lg:grid-cols-1`),(0,Z.jsxs)(`div`,{className:`flex flex-col lg:grid ${w} gap-6`,children:[b&&!x&&(0,Z.jsx)(Q,{description:`Number of individual people who visited your website`,diffDirection:`empty`,formattedValue:e.visits,iconName:`Globe`,linkto:`/analytics/web/`,title:`Unique visitors`,onClick:()=>{f(`/analytics/web/`)},children:(0,Z.jsx)(j,{className:y,color:`var(--chart-blue)`,data:t,id:`visitors`,range:n,showHorizontalLines:!0,showYAxisValues:!1,syncId:`overview-charts`,yAxisRange:r})}),x&&(0,Z.jsxs)(R,{children:[(0,Z.jsxs)(P,{className:`hidden`,children:[(0,Z.jsx)(I,{children:`Unlock web analytics`}),(0,Z.jsx)(L,{children:`Get the full picture of what's working with detailed, cookie-free traffic analytics.`})]}),(0,Z.jsx)(F,{className:`flex h-full items-center justify-center p-6`,children:(0,Z.jsx)(z,{actions:(0,Z.jsx)(k,{variant:`outline`,onClick:()=>f(o(_),{crossApp:!0}),children:`Upgrade now`}),className:`py-10`,description:`Get the full picture of what's working with detailed, cookie-free traffic analytics.`,title:`Unlock web analytics`,children:(0,Z.jsx)(O,{})})})]}),(0,Z.jsx)(Q,{description:`How number of members of your publication changed over time`,diffDirection:i.directions.total,diffValue:i.percentChanges.total,formattedValue:p(i.totalMembers),iconName:`User`,linkto:`/analytics/growth/`,title:`Members`,trendingFromValue:`${p(a[0]?.value??0)}`,onClick:()=>{f(`/analytics/growth/?tab=total-members`)},children:(0,Z.jsx)(j,{className:y,color:`var(--chart-darkblue)`,data:a,id:`members`,range:c,showHorizontalLines:!0,showYAxisValues:!1,syncId:`overview-charts`})}),S&&(0,Z.jsx)(Q,{description:`Monthly recurring revenue changes over time`,diffDirection:i.directions.mrr,diffValue:i.percentChanges.mrr,formattedValue:`${l}${p(J(i.mrr))}`,iconName:`Coins`,linkto:`/analytics/growth/`,title:`MRR`,trendingFromValue:`${l}${p(s[0]?.value??0)}`,onClick:()=>{f(`/analytics/growth/?tab=mrr`)},children:(0,Z.jsx)(j,{className:y,color:`var(--chart-teal)`,data:s,id:`mrr`,range:c,showHorizontalLines:!0,showYAxisValues:!1,syncId:`overview-charts`})})]})},$=({className:e,metrics:t,title:n})=>(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsxs)(`div`,{className:f(`pointer-events-none absolute bottom-[calc(100%+2px)] left-1/2 z-50 min-w-[160px] -translate-x-1/2 rounded-md bg-background p-3 text-sm opacity-0 shadow-md transition-all group-hover/tooltip:bottom-[calc(100%+12px)] group-hover/tooltip:opacity-100`,e),children:[(0,Z.jsx)(`div`,{className:`mb-1.5 border-b pr-10 pb-1.5 font-medium whitespace-nowrap text-muted-foreground`,children:n}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:t?.map(e=>(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 whitespace-nowrap`,children:[e.icon,e.label]}),(0,Z.jsx)(`span`,{className:`font-mono`,children:e.metric})]},e.label))})]})}),Ae=({topPostsData:e,isLoading:t})=>{let n=u(),r=H(`/editor`),{range:i}=U(),{settings:a}=Y(),o=W(),s=Ce(a),l=B(),d=V()??!1,f=ae()??!1,g=ce()??!1,_=`flex items-center justify-end gap-1 rounded-md px-2 py-1 font-mono text-gray-800 hover:bg-muted-foreground/10 group-hover:text-foreground`;return(0,Z.jsxs)(R,{className:`group/card w-full lg:col-span-2`,"data-testid":`top-posts-card`,children:[(0,Z.jsxs)(P,{children:[(0,Z.jsxs)(I,{className:`flex items-baseline justify-between leading-snug font-medium text-muted-foreground`,children:[`Top posts `,K(i)]}),(0,Z.jsx)(L,{className:`hidden`,children:`Most viewed posts in this period`})]}),(0,Z.jsx)(F,{children:t?(0,Z.jsx)(M,{className:`mt-6`}):(0,Z.jsxs)(Z.Fragment,{children:[e?.stats?.map(e=>(0,Z.jsxs)(`div`,{className:`group relative flex w-full items-start justify-between gap-5 border-t border-border/50 py-4 before:absolute before:-inset-x-4 before:inset-y-0 before:z-0 before:hidden before:rounded-md before:bg-table-row-hover before:content-[""] first:border-border! hover:cursor-pointer hover:border-transparent hover:before:block md:items-center [&+div]:hover:border-transparent`,children:[(0,Z.jsxs)(`div`,{className:`z-10 flex min-w-[160px] grow items-start gap-4 md:items-center lg:min-w-[320px]`,onClick:()=>{let t=Se({postId:e.post_id,hasEmailData:e.sent_count!==null,analytics:{webAnalytics:l,membersTrackSources:d}});n(t,{crossApp:t.startsWith(`/editor/`)&&r})},children:[e.feature_image?(0,Z.jsx)(`div`,{className:`hidden aspect-[16/10] w-[80px] shrink-0 rounded-sm bg-cover bg-center sm:visible! sm:block! lg:w-[100px]`,style:{backgroundImage:`url(${e.feature_image})`}}):(0,Z.jsx)(Te,{className:`hidden aspect-[16/10] w-[80px] shrink-0 group-hover:bg-muted-foreground/10 sm:visible! sm:flex! lg:w-[100px]`}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Z.jsx)(`span`,{className:`line-clamp-2 text-md font-semibold`,children:e.title}),(0,Z.jsxs)(`span`,{className:`text text-muted-foreground`,children:[`By `,e.authors,` –`,` `,h(e.published_at,s)]}),(0,Z.jsx)(`span`,{className:`text text-muted-foreground`,children:c(e)})]})]}),(0,Z.jsxs)(`div`,{className:`z-10 flex flex-col items-end justify-center gap-0.5 text-sm md:flex-row md:items-center md:justify-end md:gap-3`,children:[l&&(0,Z.jsxs)(`div`,{className:`group/tooltip relative flex w-[66px] lg:w-[92px]`,"data-testid":`statistics-visitors`,onClick:t=>{t.stopPropagation(),n(`/posts/analytics/${e.post_id}/web`)},children:[(0,Z.jsx)($,{metrics:[{icon:(0,Z.jsx)(S,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Unique visitors`,metric:p(e.views)}],title:`Web traffic`}),(0,Z.jsxs)(`div`,{className:_,children:[(0,Z.jsx)(S,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),m(e.views)]})]}),e.sent_count!==null&&(0,Z.jsxs)(`div`,{className:`group/tooltip relative flex w-[66px] lg:w-[92px]`,onClick:t=>{t.stopPropagation(),n(`/posts/analytics/${e.post_id}/newsletter`)},children:[(0,Z.jsx)($,{className:`${d?``:`right-0 left-auto translate-x-0`}`,metrics:[{icon:(0,Z.jsx)(w,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Sent`,metric:p(e.sent_count||0)},...g?[{icon:(0,Z.jsx)(x,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Opens`,metric:p(e.opened_count||0)}]:[],...f?[{icon:(0,Z.jsx)(E,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Clicks`,metric:p(e.clicked_count||0)}]:[]],title:`Newsletter performance`}),(0,Z.jsx)(`div`,{className:_,children:g?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(x,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),e.open_rate?`${Math.round(e.open_rate)}%`:`0%`]}):f?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(E,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),e.click_rate?`${Math.round(e.click_rate)}%`:`0%`]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(w,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),m(e.sent_count||0)]})})]}),d&&(0,Z.jsxs)(`div`,{className:`group/tooltip relative flex w-[66px] lg:w-[92px]`,"data-testid":`statistics-members`,onClick:t=>{t.stopPropagation(),n(`/posts/analytics/${e.post_id}/growth`)},children:[(0,Z.jsx)($,{className:`right-0 left-auto translate-x-0`,metrics:[{icon:(0,Z.jsx)(A,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Free`,metric:e.free_members>0?`+${p(e.free_members)}`:`0`},...o?[{icon:(0,Z.jsx)(y,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Paid`,metric:e.paid_members>0?`+${p(e.paid_members)}`:`0`}]:[]],title:`New members`}),(0,Z.jsxs)(`div`,{className:_,children:[(0,Z.jsx)(T,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),e.members>0?`+${p(e.members)}`:`0`]})]})]})]},e.post_id)),(!e?.stats||e.stats.length===0)&&(0,Z.jsx)(z,{className:`w-full pb-10`,title:`No posts ${K(i)}`,children:(0,Z.jsx)(v,{strokeWidth:1.5})})]})})]})},je=({className:e,title:t,description:n,url:r,children:i})=>(0,Z.jsx)(`a`,{className:f(`group/card block rounded-xl border bg-card p-6 transition-all hover:bg-table-row-hover hover:shadow-xs`,e),href:r,rel:`noreferrer`,target:`_blank`,children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-6`,children:[i,(0,Z.jsxs)(`div`,{className:`flex flex-col gap-0.5 leading-tight`,children:[(0,Z.jsx)(`span`,{className:`text-base font-semibold`,children:t}),(0,Z.jsx)(`span`,{className:`text-sm font-normal text-gray-700`,children:n})]})]})}),Me=()=>{let e=W(),{range:t}=U(),{statsConfig:n,isLoading:a}=Y(),{startDate:o,endDate:s,timezone:c}=he(t),{isLoading:l,chartData:u,totals:d,currencySymbol:f}=_e(t),{data:m,isLoading:h}=Ee(),{data:_,isLoading:v}=pe({searchParams:{date_from:q(o),date_to:q(s),limit:`5`,timezone:c}}),{data:y,loading:b}=r({endpoint:`api_kpis`,statsConfig:n,params:{site_uuid:n?.id||``,date_from:q(o),date_to:q(s),timezone:c,member_status:xe(ie)}}),x=(0,X.useMemo)(()=>G(y||[],t,`visits`,`sum`)?.map(e=>{let t=Number(e.visits),n=isNaN(t)?0:t;return{date:String(e.date),value:n,formattedValue:p(n),label:`Visitors`}}),[y,t]),w=(0,X.useMemo)(()=>ge(t,y||[],{fieldName:`visits`}),[y,t]),T=(0,X.useMemo)(()=>{let e=[0,1];if(!x||x.length===0)return e;let t=x.map(e=>e.value).filter(e=>e>=0);return t.length===0?e:[0,Math.max(...t)||e[1]]},[x]),E=(0,X.useMemo)(()=>ge(t,u||[]),[u,t]),ee=(0,X.useMemo)(()=>{if(!u||u.length===0)return[];let e=[];return e=G(u,t,`value`,`exact`),e.map(e=>({date:e.date,value:e.free+e.paid,formattedValue:p(e.free+e.paid),label:`Members`}))},[u,t]),D=(0,X.useMemo)(()=>{if(!e||!u||u.length===0)return[];let n=[];return n=G(u,t,`mrr`,`exact`),n.map(e=>({date:e.date,value:J(e.mrr),formattedValue:`${f}${p(J(e.mrr))}`,label:`MRR`}))},[u,t,f,e]),O=(0,X.useMemo)(()=>y?.length?{visits:p(y.reduce((e,t)=>{let n=Number(t.visits);return e+(isNaN(n)?0:n)},0))}:{visits:`0`},[y]);return(0,Z.jsxs)(ue,{children:[(0,Z.jsx)(de,{children:(0,Z.jsx)(i,{children:(0,Z.jsx)(le,{excludeRanges:[`today`]})})}),(0,Z.jsxs)(fe,{isLoading:a,loadingComponent:(0,Z.jsx)(Z.Fragment,{}),children:[(0,Z.jsx)(ke,{currencySymbol:f,growthChartRange:E,growthTotals:d,isLoading:b||l,kpiValues:O,membersChartData:ee,mrrChartData:D,visitorsChartData:x,visitorsChartRange:w,visitorsYRange:T}),(0,Z.jsx)(Oe,{isLoading:h,latestPostStats:m}),(0,Z.jsx)(Ae,{isLoading:v,topPostsData:_}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2`,children:[(0,Z.jsx)(g,{className:`mt-4 -mb-4 lg:col-span-2`,children:`Grow your audience`}),(0,Z.jsx)(je,{description:`Find out how to review the performance of your content and get the most out of post analytics in Ghost.`,title:`Understanding analytics in Ghost`,url:`https://ghost.org/help/native-analytics`,children:(0,Z.jsx)(`div`,{className:`flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md bg-gradient-to-tr from-[#14B8FF]/20 to-[#00BBA7]/20 p-4 opacity-80 transition-all group-hover/card:opacity-100`,children:(0,Z.jsx)(C,{className:`text-[#00BBA7]`,size:20,strokeWidth:1.5})})}),(0,Z.jsx)(je,{description:`Use these content distribution tactics to get more people to discover your work and increase engagement.`,title:`How to get your content seen online`,url:`https://ghost.org/resources/content-distribution/`,children:(0,Z.jsx)(`div`,{className:`flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md bg-gradient-to-tl from-[#FDC700]/20 to-[#FF2056]/20 p-4 opacity-80 transition-all group-hover/card:opacity-100`,children:(0,Z.jsx)(S,{className:`text-[#FE9A00]`,size:20,strokeWidth:1.5})})})]})]})]})};export{Me 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{t as r}from"./use-tinybird-query-CmdbCS9X.js";import{r as i}from"./post-helpers-C88JBa4D.js";import{h as a}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{a as o}from"./router-provider-BSvTXgZY.js";import{h as s,l as c,m as l}from"./dist-B3keLvjj.js";import{a as u}from"./heading-Dh5SFVjL.js";import{Gt as d,_n as f,q as p,rn as m,t as h,vn as g}from"./button-Dvcv1QSR.js";import{r as _}from"./trend-badge-CideVzQd.js";import{t as v}from"./skeleton-Ce9GgUpf.js";import{a as y,n as b,o as x,t as S}from"./card--VNbfgo3.js";import{c as ee,l as C,n as w,o as te,r as T,s as E,t as ne,u as re}from"./data-list-CA2jYGPq.js";import{t as D}from"./empty-indicator-D9QdpuNX.js";import{Di as O,Si as ie,bi as ae,q as oe,qn as k,tr as A,wi as se,xi as ce}from"./index-CgMCwsxN.js";import{t as le}from"./disabled-sources-indicator-Cy7Zp4c8.js";import{a as ue,c as de,n as fe,o as pe,r as me,t as he}from"./chart-helpers-FHywU0pj.js";import{n as j,r as M,t as N}from"./kpi-card-B21aToe8.js";import{t as P}from"./use-analytics-data-DAIGcr2f.js";import{n as F}from"./email-sending-status-context-CWDOD1FN.js";import{r as I}from"./links-BDHPTlyj.js";import{n as ge}from"./post-analytics-context-D0Mw-Pmv.js";import{a as L,n as R,r as z,t as B}from"./kpi-card-pz6Wv4Ae.js";import{n as _e,r as ve,t as ye}from"./post-analytics-header-OATo3X_r.js";import{t as be}from"./gift-links-CfLSnst2.js";import{r as xe,t as Se}from"./gift-link-modal-B7u5bD4e.js";import{t as Ce}from"./use-post-referrers-BCQI7fDg.js";import{a as V,i as H,r as U,t as W}from"./link-helpers-BRAg9SCj.js";import{n as we,r as G}from"./kpi-helpers-Dq5jelmP.js";var K=e(t(),1),q=n(),Te=({post:e,isNewsletterStatsLoading:t,isWebShown:n})=>{let{postId:r}=a(),i=o(),{isNewsletterDataHidden:f}=F(),p=(0,K.useMemo)(()=>{let t=e.email?.opened_count||0,n=e.email?.email_count||0,r=e.count?.clicks||0;return{opened:t,clicked:r,openedRate:n>0?t/n:0,clickedRate:n>0?r/n:0,sent:n}},[e]),{data:g}=I({searchParams:{filter:`post_id:'${r}'`}}),_=(0,K.useMemo)(()=>U(g),[g]),v=[{datatype:`Clicked`,value:p.clickedRate,fill:`url(#gradientTeal)`,color:`var(--chart-teal)`},{datatype:`Opened`,value:p.openedRate,fill:`url(#gradientBlue)`,color:`var(--chart-blue)`}],D={percentage:{label:`Opened`},Average:{label:`Clicked`},"This newsletter":{label:`Opened`}},O=e.email_only||!n;return(0,q.jsxs)(S,{className:`group/datalist overflow-hidden ${O&&`col-span-2`}`,children:[(0,q.jsxs)(`div`,{className:`relative flex items-center justify-between gap-6`,children:[(0,q.jsx)(y,{children:(0,q.jsxs)(x,{className:`flex items-center gap-1.5 text-lg`,children:[(0,q.jsx)(d,{size:16,strokeWidth:1.5}),`Newsletter performance`]})}),!f&&(0,q.jsx)(h,{className:`absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100`,size:`sm`,variant:`outline`,onClick:()=>{i(`/posts/analytics/${r}/newsletter`)},children:`View more`})]}),t?(0,q.jsx)(b,{children:(0,q.jsx)(`div`,{className:`mx-auto flex min-h-[250px] items-center justify-center xl:size-full`,children:(0,q.jsx)(A,{})})}):(0,q.jsx)(b,{children:(0,q.jsxs)(V,{className:c(O&&`grid gap-6 md:grid-cols-2 md:gap-0`),description:`Opens and clicks will appear once every email has been sent`,title:`This newsletter is still sending`,children:[(0,q.jsxs)(`div`,{className:c(O&&`md:border-r md:pr-6`),children:[(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-6`,children:[(0,q.jsx)(N,{className:`group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0`,children:(0,q.jsxs)(`div`,{className:`flex grow flex-col gap-1.5 border-none pb-0`,children:[(0,q.jsx)(j,{color:`var(--chart-blue)`,children:`Open rate`}),(0,q.jsx)(M,{value:s(p.openedRate)})]})}),(0,q.jsx)(N,{className:`group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0`,children:(0,q.jsxs)(`div`,{className:`flex grow flex-col gap-1.5 border-none pb-0`,children:[(0,q.jsx)(j,{color:`var(--chart-teal)`,children:`Click rate`}),(0,q.jsx)(M,{value:s(p.clickedRate)})]})})]}),!O&&(0,q.jsx)(k,{}),(0,q.jsx)(`div`,{className:`mx-auto my-6 h-[240px]`,children:(0,q.jsx)(H,{className:`pointer-events-none aspect-square h-[240px]`,config:D,data:v,tooltip:!1})})]}),(0,q.jsxs)(`div`,{className:c(O&&`border-t pt-6 md:border-t-0 md:pt-0 md:pl-6`),children:[!O&&(0,q.jsx)(k,{}),(0,q.jsxs)(`div`,{className:O?``:`pt-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 ${O?`pb-3`:`py-3`}`,children:[(0,q.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:`Top clicked links in this email`}),(0,q.jsx)(u,{children:`Members`})]}),_.length>0?(0,q.jsx)(ne,{className:``,children:(0,q.jsx)(T,{children:_.slice(0,O?10:5).map(e=>{let t=p.clicked>0?e.count/p.clicked:0;return(0,q.jsxs)(re,{children:[(0,q.jsx)(w,{style:{width:`${t?Math.round(t*100):0}%`}}),(0,q.jsx)(te,{children:(0,q.jsxs)(`div`,{className:`flex items-center space-x-2 overflow-hidden`,children:[(0,q.jsx)(m,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),(0,q.jsx)(`a`,{className:`block truncate font-medium hover:underline`,href:e.link.to,rel:`noreferrer`,target:`_blank`,title:e.link.to,children:W(e.link.to,!0)})]})}),(0,q.jsxs)(E,{children:[(0,q.jsx)(ee,{children:l(e.count||0)}),(0,q.jsx)(C,{children:s(t)})]})]},e.link.link_id)})})}):(0,q.jsx)(`div`,{className:`py-20 text-center text-sm text-muted-foreground`,children:`You have no links in your post.`})]})]})]})})]})},Ee=({chartData:e,range:t,isLoading:n,visitors:r,sourcesData:i,isNewsletterShown:s=!0})=>{let{postId:c}=a(),d=o(),{site:p}=P(),m=p.url,g=p.icon,v=(0,K.useMemo)(()=>i?i.reduce((e,t)=>e+Number(t.visits||0),0):0,[i]);return(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)(S,{className:`group/datalist overflow-hidden ${!s&&`col-span-2`}`,"data-testid":`web-performance`,children:[(0,q.jsxs)(`div`,{className:`relative flex items-center justify-between gap-6`,children:[(0,q.jsx)(y,{children:(0,q.jsxs)(x,{className:`flex items-center gap-1.5 text-lg`,children:[(0,q.jsx)(f,{size:16,strokeWidth:1.5}),`Web performance`]})}),(0,q.jsx)(h,{className:`absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100`,size:`sm`,variant:`outline`,onClick:()=>{d(`/posts/analytics/${c}/web`)},children:`View more`})]}),(0,q.jsxs)(b,{children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(N,{className:`group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0`,"data-testid":`unique-visitors`,children:(0,q.jsxs)(`div`,{className:`flex grow flex-col gap-1.5 border-none pb-0`,children:[(0,q.jsx)(j,{color:`var(--chart-blue)`,children:`Unique visitors`}),(0,q.jsx)(M,{value:l(r)})]})}),(0,q.jsx)(k,{}),(0,q.jsx)(`div`,{className:`max-h-[288px] py-6 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:n?(0,q.jsx)(`div`,{className:`flex h-[16vw] min-h-[240px] items-center justify-center`,children:(0,q.jsx)(A,{})}):(0,q.jsx)(_,{className:`aspect-auto h-[240px] w-full`,color:`var(--chart-blue)`,data:e||[],id:`visitors`,range:t,syncId:`overview-charts`})})]}),s&&(0,q.jsxs)(`div`,{className:s?`border-t pt-3`:`-mt-3`,children:[(0,q.jsx)(`div`,{children:(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-3`,children:[(0,q.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:`How readers found this post`}),(0,q.jsx)(u,{children:`Visitors`})]})}),i&&i.length>0?(0,q.jsx)(G,{data:i,range:t,siteIcon:g,siteUrl:m,tableOnly:!0,topSourcesLimit:5,totalVisitors:v}):(0,q.jsx)(D,{className:`h-full py-10`,description:`Once someone visits this post, sources will show here`,title:`No visitors since you published this post`,children:(0,q.jsx)(f,{strokeWidth:1.5})})]})]})]})})},J=()=>{let e=o(),{statsConfig:t,isLoading:n}=P(),{post:a,isPostLoading:s,postId:c}=ge(),{totals:u,isLoading:d,currencySymbol:f}=Ce(c),m=ae(),_=ce(),ee=ie(),C=se(),w=O(),{hasNewsletterAnalytics:te,isStatusLoading:T}=F(),E=_e(a),{token:ne,isLoading:re,error:D}=be(c,{enabled:E}),{usage:k,loading:j,error:M}=xe({postUuid:a?.uuid,token:ne,tokenLoading:re,tokenError:D,enabled:E}),[N,I]=(0,K.useState)(!1),V=(0,K.useMemo)(()=>a?.published_at?pe(a.published_at):oe.allTime.value,[a?.published_at]),{startDate:H,endDate:U,timezone:W}=ue(V),G=(0,K.useMemo)(()=>{let e={site_uuid:t?.id||``,date_from:fe(H),date_to:fe(U),timezone:W,post_uuid:``};return!s&&a?.uuid?{...e,post_uuid:a.uuid}:e},[s,a,t?.id,H,U,W]),{data:J,loading:De}=r({endpoint:`api_kpis`,statsConfig:t,params:G}),Oe=(0,K.useMemo)(()=>J?.length?J.reduce((e,t)=>{let n=Number(t.visits);return e+(isNaN(n)?0:n)},0):0,[J]),Y=we.visits,ke=me(V,J||[],{fieldName:Y.dataKey}),Ae=de(J||[],V,Y.dataKey,`sum`)?.map(e=>{let t=Number(e[Y.dataKey]);return{date:String(e.date),value:t,formattedValue:Y.formatter(t),label:Y.label}}),{data:je,loading:Me}=r({endpoint:`api_top_sources`,statsConfig:t,params:G}),Ne=n||d||s||De,Pe=s||n||De,X=te&&_&&m,Z=!a?.email_only&&w,Q=ee,$=!!(E&&a&&w);return(0,K.useEffect)(()=>{!s&&a&&i(a)&&!w&&Q&&e(`/posts/analytics/${c}/growth`,{replace:!0})},[s,a,w,e,c,Q]),s?(0,q.jsx)(A,{}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ye,{currentTab:`Overview`}),(0,q.jsx)(ve,{children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-6 lg:grid lg:grid-cols-2`,children:[Z&&(0,q.jsx)(Ee,{chartData:Ae,isLoading:Pe||Ne||Me,isNewsletterShown:X,range:ke,sourcesData:je,visitors:Oe}),X&&(0,q.jsx)(Te,{isNewsletterStatsLoading:s||T,isWebShown:Z,post:a}),(Q||$)&&(0,q.jsxs)(`div`,{className:`col-span-2 flex flex-col gap-6 lg:grid lg:grid-cols-3`,children:[Q&&(0,q.jsxs)(S,{className:`group overflow-hidden p-0 ${$?`lg:col-span-2`:`lg:col-span-3`}`,"data-testid":`growth`,children:[(0,q.jsxs)(`div`,{className:`relative flex items-center justify-between gap-6`,children:[(0,q.jsx)(y,{children:(0,q.jsxs)(x,{className:`flex items-center gap-1.5 text-lg`,children:[(0,q.jsx)(p,{size:16,strokeWidth:1.5}),`Growth`]})}),(0,q.jsx)(h,{className:`absolute right-6 translate-x-10 opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100`,size:`sm`,variant:`outline`,onClick:()=>{e(`/posts/analytics/${c}/growth`)},children:`View more`})]}),(0,q.jsx)(b,{className:`flex flex-col gap-6 px-0 md:grid md:grid-cols-3 md:items-stretch md:gap-0`,children:Ne?Array.from({length:3},(e,t)=>(0,q.jsxs)(`div`,{className:`h-[98px] gap-1 border-r px-6 py-5 last:border-r-0`,children:[(0,q.jsx)(v,{className:`w-2/3`}),(0,q.jsx)(v,{className:`h-7 w-12`})]},t)):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(B,{className:`grow gap-1 py-0`,children:[(0,q.jsx)(z,{children:`Free members`}),(0,q.jsx)(R,{children:(0,q.jsx)(L,{className:`text-[2.2rem]`,children:l(u?.free_members||0)})})]}),C&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(B,{className:`grow gap-1 py-0`,children:[(0,q.jsx)(z,{children:`Paid members`}),(0,q.jsx)(R,{children:(0,q.jsx)(L,{className:`text-[2.2rem]`,children:l(u?.paid_members||0)})})]}),(0,q.jsxs)(B,{className:`grow gap-1 py-0`,children:[(0,q.jsx)(z,{children:`MRR impact`}),(0,q.jsx)(R,{children:(0,q.jsxs)(L,{className:`text-[2.2rem]`,children:[f,l(he(u?.mrr||0))]})})]})]})]})})]}),$&&(0,q.jsxs)(S,{className:`group/datalist overflow-hidden ${Q?`lg:col-span-1`:`lg:col-span-3`}`,"data-testid":`gift-link-card`,children:[(0,q.jsxs)(`div`,{className:`relative flex items-center justify-between gap-6`,children:[(0,q.jsx)(y,{children:(0,q.jsxs)(x,{className:`flex items-center gap-1.5 text-lg`,children:[(0,q.jsx)(g,{size:16,strokeWidth:1.5}),`Gift link`]})}),(0,q.jsx)(h,{className:`absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100`,size:`sm`,variant:`outline`,onClick:()=>I(!0),children:`Share`})]}),!j&&!M&&(0,q.jsxs)(b,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`Visitors`}),(0,q.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold`,"data-testid":`gift-link-card-visitors`,children:l(k?.visits??0)})]})]})]}),!Z&&!X&&!Q&&!$&&(0,q.jsx)(le,{className:`col-span-2 py-20`})]})}),$&&(0,q.jsx)(Se,{open:N,postId:c,source:`gift-link-card`,onOpenChange:I},c)]})};export{J 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{l as r}from"./dist-B3keLvjj.js";import{t as i}from"./inline-BWSs_VzR.js";import{t as a}from"./stack-B2eszIiq.js";import{t as o}from"./text-BQDSDsKs.js";import{t as s}from"./heading-Dh5SFVjL.js";import{Cr as c,jr as l,xr as u}from"./index-6MkPdCtr.js";var d=e(t(),1),f=n();function p({className:e,children:t}){return(0,f.jsx)(i,{align:`center`,className:r(`pt-1 text-sm text-muted-foreground`,e),"data-page-header":`breadcrumb`,gap:`sm`,children:t})}function m({className:e,children:t}){return(0,f.jsx)(o,{as:`span`,className:r(`ml-1 text-base tabular-nums`,e),"data-page-header":`count`,tone:`secondary`,weight:`regular`,children:t})}function h({className:e,children:t}){return(0,f.jsx)(o,{as:`p`,className:e,"data-page-header":`description`,size:`sm`,tone:`secondary`,children:t})}function g({className:e,children:t}){return(0,f.jsx)(o,{as:`p`,className:r(`mt-0.5`,e),"data-page-header":`meta`,size:`sm`,tone:`secondary`,children:t})}function _({className:e,children:t}){let n=[],i=[];d.Children.forEach(t,e=>{if(!d.isValidElement(e)){n.push(e);return}switch(e.type){case h:case g:i.push(e);break;default:n.push(e)}});let o=(0,f.jsx)(s,{className:r(`text-lg font-semibold tracking-[0.1px] whitespace-nowrap`,e),"data-page-header":`title`,children:n});return i.length>0?(0,f.jsxs)(a,{"data-page-header":`title-body`,gap:`none`,children:[o,i]}):o}function v({className:e,children:t}){return(0,f.jsx)(a,{className:r(`h-full min-h-(--control-height) min-w-0`,e),"data-page-header":`left`,gap:`xs`,justify:`center`,children:t})}function y({children:e}){return(0,f.jsx)(f.Fragment,{children:e})}function b({children:e}){return(0,f.jsx)(u,{children:e})}function x({children:e,...t}){return(0,f.jsx)(l,{asChild:!0,...t,children:e})}function S({children:e,...t}){return(0,f.jsx)(c,{align:`end`,sideOffset:8,...t,children:e})}var C=640,w=e=>typeof window>`u`?!1:window.innerWidth<e,T=e=>{let[t,n]=d.useState(()=>w(e));return d.useEffect(()=>{let t=()=>{n(w(e))};return t(),window.addEventListener(`resize`,t),()=>{window.removeEventListener(`resize`,t)}},[e]),t},E=Object.assign(function({className:e,children:t,mobileMenuBreakpoint:n=C}){let r=d.Children.toArray(t),a=[],o=null,s=null,c=T(n);return r.forEach(e=>{if(!d.isValidElement(e)){a.push(e);return}let t=e;if(t.type===b){o=t;return}if(t.type===y){s=t.props.children??null,a.push(t.props.children??null);return}a.push(t)}),o?c?(0,f.jsx)(i,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:(0,f.jsxs)(i,{align:`center`,className:`ml-auto`,"data-page-header":`action-group-mobile`,gap:`sm`,children:[o,s&&(0,f.jsx)(`div`,{"data-page-header":`action-group-mobile-primary`,children:s})]})}):(0,f.jsx)(i,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:(0,f.jsx)(i,{align:`center`,"data-page-header":`action-group-desktop`,gap:`sm`,justify:`end`,children:a})}):(0,f.jsx)(i,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:t})},{Primary:y,MobileMenu:b,MobileMenuTrigger:x,MobileMenuContent:S});function D({className:e,children:t}){return(0,f.jsx)(i,{align:`center`,className:r(`min-h-(--control-height) shrink-0`,e),"data-page-header":`actions`,gap:`lg`,children:t})}var O=Object.assign(function({className:e,children:t,sticky:n=!0,blurredBackground:a=!0}){return(0,f.jsx)(`header`,{className:r(`flex flex-col`,n&&`sticky top-0 z-50`,a&&`bg-gradient-to-b from-background via-background/70 to-background/70 backdrop-blur-md dark:bg-black`,e),"data-page-header":`page-header`,children:(0,f.jsx)(i,{align:`start`,className:`w-full`,"data-page-header":`main`,gap:`lg`,justify:`between`,children:t})})},{Left:v,Breadcrumb:p,Title:_,Count:m,Description:h,Meta:g,Actions:D,ActionGroup:E});export{O 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{l as r}from"./dist-B3keLvjj.js";import{t as i}from"./inline-BWSs_VzR.js";import{t as a}from"./stack-B2eszIiq.js";import{t as o}from"./text-BQDSDsKs.js";import{t as s}from"./heading-Dh5SFVjL.js";import{Dr as c,Fr as l,Tr as u}from"./index-CgMCwsxN.js";var d=e(t(),1),f=n();function p({className:e,children:t}){return(0,f.jsx)(i,{align:`center`,className:r(`pt-1 text-sm text-muted-foreground`,e),"data-page-header":`breadcrumb`,gap:`sm`,children:t})}function m({className:e,children:t}){return(0,f.jsx)(o,{as:`span`,className:r(`ml-1 text-base tabular-nums`,e),"data-page-header":`count`,tone:`secondary`,weight:`regular`,children:t})}function h({className:e,children:t}){return(0,f.jsx)(o,{as:`p`,className:e,"data-page-header":`description`,size:`sm`,tone:`secondary`,children:t})}function g({className:e,children:t}){return(0,f.jsx)(o,{as:`p`,className:r(`mt-0.5`,e),"data-page-header":`meta`,size:`sm`,tone:`secondary`,children:t})}function _({className:e,children:t}){let n=[],i=[];d.Children.forEach(t,e=>{if(!d.isValidElement(e)){n.push(e);return}switch(e.type){case h:case g:i.push(e);break;default:n.push(e)}});let o=(0,f.jsx)(s,{className:r(`text-lg font-semibold tracking-[0.1px] whitespace-nowrap`,e),"data-page-header":`title`,children:n});return i.length>0?(0,f.jsxs)(a,{"data-page-header":`title-body`,gap:`none`,children:[o,i]}):o}function v({className:e,children:t}){return(0,f.jsx)(a,{className:r(`h-full min-h-(--control-height) min-w-0`,e),"data-page-header":`left`,gap:`xs`,justify:`center`,children:t})}function y({children:e}){return(0,f.jsx)(f.Fragment,{children:e})}function b({children:e}){return(0,f.jsx)(u,{children:e})}function x({children:e,...t}){return(0,f.jsx)(l,{asChild:!0,...t,children:e})}function S({children:e,...t}){return(0,f.jsx)(c,{align:`end`,sideOffset:8,...t,children:e})}var C=640,w=e=>typeof window>`u`?!1:window.innerWidth<e,T=e=>{let[t,n]=d.useState(()=>w(e));return d.useEffect(()=>{let t=()=>{n(w(e))};return t(),window.addEventListener(`resize`,t),()=>{window.removeEventListener(`resize`,t)}},[e]),t},E=Object.assign(function({className:e,children:t,mobileMenuBreakpoint:n=C}){let r=d.Children.toArray(t),a=[],o=null,s=null,c=T(n);return r.forEach(e=>{if(!d.isValidElement(e)){a.push(e);return}let t=e;if(t.type===b){o=t;return}if(t.type===y){s=t.props.children??null,a.push(t.props.children??null);return}a.push(t)}),o?c?(0,f.jsx)(i,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:(0,f.jsxs)(i,{align:`center`,className:`ml-auto`,"data-page-header":`action-group-mobile`,gap:`sm`,children:[o,s&&(0,f.jsx)(`div`,{"data-page-header":`action-group-mobile-primary`,children:s})]})}):(0,f.jsx)(i,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:(0,f.jsx)(i,{align:`center`,"data-page-header":`action-group-desktop`,gap:`sm`,justify:`end`,children:a})}):(0,f.jsx)(i,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:t})},{Primary:y,MobileMenu:b,MobileMenuTrigger:x,MobileMenuContent:S});function D({className:e,children:t}){return(0,f.jsx)(i,{align:`center`,className:r(`min-h-(--control-height) shrink-0`,e),"data-page-header":`actions`,gap:`lg`,children:t})}var O=Object.assign(function({className:e,children:t,sticky:n=!0,blurredBackground:a=!0}){return(0,f.jsx)(`header`,{className:r(`flex flex-col`,n&&`sticky top-0 z-50`,a&&`bg-gradient-to-b from-background via-background/70 to-background/70 backdrop-blur-md dark:bg-black`,e),"data-page-header":`page-header`,children:(0,f.jsx)(i,{align:`start`,className:`w-full`,"data-page-header":`main`,gap:`lg`,justify:`between`,children:t})})},{Left:v,Breadcrumb:p,Title:_,Count:m,Description:h,Meta:g,Actions:D,ActionGroup:E});export{O 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{t as r}from"./use-tinybird-query-CSnGXzZh.js";import{l as i}from"./dist-B3keLvjj.js";import{Mn as a,t as o}from"./button-eNMKQWXr.js";import{Cr as s,Tr as c,jr as l,xr as u}from"./index-6MkPdCtr.js";var d=e(t(),1),f=60*1e3,p=(e={})=>{let{postUuid:t,statsConfig:n,enabled:i=!0}=e,[a,o]=(0,d.useState)(null),{data:s,loading:c,error:l}=r({statsConfig:n,endpoint:`api_active_visitors`,params:{site_uuid:n?.id||``,...t&&{post_uuid:t}},enabled:i,refetchInterval:f,refetchIntervalInBackground:!0}),u=s?.[0]?.active_visitors;return(0,d.useEffect)(()=>{i&&u!==void 0&&typeof u==`number`&&o(u)},[i,u]),{activeVisitors:i&&a||0,isLoading:i&&c&&a===null,error:i?l:null}},m=n(),h=d.forwardRef(({children:e,className:t,...n},r)=>(0,m.jsx)(`div`,{ref:r,className:i(`mt-3 flex items-center gap-2 [grid-area:actions] lg:mt-0`,t),"data-navbar":`navbar-actions`,...n,children:e}));h.displayName=`NavbarActions`;var g=d.forwardRef(({children:e,className:t,...n},r)=>(0,m.jsx)(`div`,{ref:r,className:i(`[grid-area:navigation]`,t),"data-navbar":`navbar-navigation`,...n,children:e}));g.displayName=`NavbarNavigation`;var _=d.forwardRef(({children:e,className:t,...n},r)=>(0,m.jsx)(`div`,{ref:r,className:i(`grid grid-cols-[1fr] justify-between gap-x-5 gap-y-2 border-b [grid-template-areas:'navigation''actions''subactions'] lg:grid-cols-[1fr_auto] lg:[grid-template-areas:'navigation_actions''subactions_subactions']`,t),"data-navbar":`navbar`,...n,children:e}));_.displayName=`Navbar`;var v=d.createContext(null),y=d.forwardRef(({children:e,responsive:t=!1,value:n,defaultValue:r,onValueChange:f,className:p,...h},g)=>{let[_,y]=d.useState(d.Children.count(e)),[b,x]=d.useState(0),S=d.useRef(null),C=d.useRef(null);d.useLayoutEffect(()=>{if(!t||!S.current||!C.current){y(d.Children.count(e));return}requestAnimationFrame(()=>{if(!S.current||!C.current)return;let e=S.current,t=C.current,n=e.clientWidth,r=Array.from(t.children),i=0;for(let e=0;e<r.length;e++){let t=r[e].getBoundingClientRect().width;i+=(e>0?6:0)+t}if(i<=n-8){y(r.length);return}let a=0,o=0;for(let e=0;e<r.length;e++){let t=r[e].getBoundingClientRect().width,i=a+(e>0?6:0)+t;if(i+60<=n)a=i,o+=1;else break}y(o)})},[t,e,b]),d.useLayoutEffect(()=>{if(!t||!S.current)return;let e=new ResizeObserver(()=>{x(e=>e+1)});return e.observe(S.current),()=>e.disconnect()},[t]);let w=d.Children.toArray(e),T=w.slice(0,_),E=w.slice(_),D=E.length>0,O=E.find(e=>d.isValidElement(e)&&e.props?.value===n);return t?(0,m.jsxs)(v.Provider,{value:{defaultValue:r},children:[(0,m.jsx)(`div`,{ref:C,"aria-hidden":`true`,className:`pointer-events-none absolute flex items-center gap-2 opacity-0`,style:{top:-9999,left:-9999},children:e}),(0,m.jsxs)(`div`,{ref:S,className:`flex w-full min-w-0 flex-1 items-center gap-2`,children:[(0,m.jsx)(`div`,{ref:g,className:i(`flex min-w-0 items-center gap-2`,p),...h,children:T}),D&&(0,m.jsxs)(u,{children:[(0,m.jsx)(l,{asChild:!0,children:(0,m.jsx)(o,{className:i(`h-[30px] flex-shrink-0 px-3 py-2`,O&&`bg-accent text-accent-foreground`),variant:`ghost`,children:O?(0,m.jsx)(`span`,{className:`max-w-[100px] truncate`,children:O.props.children}):(0,m.jsx)(a,{className:`size-6`})})}),(0,m.jsx)(s,{align:`end`,children:E.map((e,t)=>!d.isValidElement(e)||!e.props?.value?null:(0,m.jsx)(c,{className:i(e.props.value===n&&`bg-accent text-accent-foreground`),onClick:()=>{f?.(e.props.value),e.props.onClick?.()},children:e.props.children},e.props.value||t))})]})]})]}):(0,m.jsx)(v.Provider,{value:{defaultValue:r},children:(0,m.jsx)(`div`,{ref:g,className:i(`flex items-center gap-2`,p),...h,children:e})})});y.displayName=`PageMenu`;var b=d.forwardRef(({children:e,value:t,className:n,...r},a)=>{let s=d.useContext(v)?.defaultValue===t;return(0,m.jsx)(o,{ref:a,className:i(`relative gap-1.5 px-3 text-control font-medium text-text-secondary hover:text-foreground focus-visible:ring-0`,`data-[state=active]:bg-muted-foreground/10 data-[state=active]:text-foreground`,`dark:hover:bg-tab-hover dark:data-[state=active]:bg-tab-active dark:data-[state=active]:hover:bg-tab-active`,n),"data-state":s?`active`:void 0,variant:`ghost`,...r,children:e})});b.displayName=`PageMenuItem`;export{g as a,h as i,b as n,p as o,_ as r,y 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{t as r}from"./use-tinybird-query-CmdbCS9X.js";import{l as i}from"./dist-B3keLvjj.js";import{Nn as a,t as o}from"./button-Dvcv1QSR.js";import{Dr as s,Fr as c,Tr as l,kr as u}from"./index-CgMCwsxN.js";var d=e(t(),1),f=60*1e3,p=(e={})=>{let{postUuid:t,statsConfig:n,enabled:i=!0}=e,[a,o]=(0,d.useState)(null),{data:s,loading:c,error:l}=r({statsConfig:n,endpoint:`api_active_visitors`,params:{site_uuid:n?.id||``,...t&&{post_uuid:t}},enabled:i,refetchInterval:f,refetchIntervalInBackground:!0}),u=s?.[0]?.active_visitors;return(0,d.useEffect)(()=>{i&&u!==void 0&&typeof u==`number`&&o(u)},[i,u]),{activeVisitors:i&&a||0,isLoading:i&&c&&a===null,error:i?l:null}},m=n(),h=d.forwardRef(({children:e,className:t,...n},r)=>(0,m.jsx)(`div`,{ref:r,className:i(`mt-3 flex items-center gap-2 [grid-area:actions] lg:mt-0`,t),"data-navbar":`navbar-actions`,...n,children:e}));h.displayName=`NavbarActions`;var g=d.forwardRef(({children:e,className:t,...n},r)=>(0,m.jsx)(`div`,{ref:r,className:i(`[grid-area:navigation]`,t),"data-navbar":`navbar-navigation`,...n,children:e}));g.displayName=`NavbarNavigation`;var _=d.forwardRef(({children:e,className:t,...n},r)=>(0,m.jsx)(`div`,{ref:r,className:i(`grid grid-cols-[1fr] justify-between gap-x-5 gap-y-2 border-b [grid-template-areas:'navigation''actions''subactions'] lg:grid-cols-[1fr_auto] lg:[grid-template-areas:'navigation_actions''subactions_subactions']`,t),"data-navbar":`navbar`,...n,children:e}));_.displayName=`Navbar`;var v=d.createContext(null),y=d.forwardRef(({children:e,responsive:t=!1,value:n,defaultValue:r,onValueChange:f,className:p,...h},g)=>{let[_,y]=d.useState(d.Children.count(e)),[b,x]=d.useState(0),S=d.useRef(null),C=d.useRef(null);d.useLayoutEffect(()=>{if(!t||!S.current||!C.current){y(d.Children.count(e));return}requestAnimationFrame(()=>{if(!S.current||!C.current)return;let e=S.current,t=C.current,n=e.clientWidth,r=Array.from(t.children),i=0;for(let e=0;e<r.length;e++){let t=r[e].getBoundingClientRect().width;i+=(e>0?6:0)+t}if(i<=n-8){y(r.length);return}let a=0,o=0;for(let e=0;e<r.length;e++){let t=r[e].getBoundingClientRect().width,i=a+(e>0?6:0)+t;if(i+60<=n)a=i,o+=1;else break}y(o)})},[t,e,b]),d.useLayoutEffect(()=>{if(!t||!S.current)return;let e=new ResizeObserver(()=>{x(e=>e+1)});return e.observe(S.current),()=>e.disconnect()},[t]);let w=d.Children.toArray(e),T=w.slice(0,_),E=w.slice(_),D=E.length>0,O=E.find(e=>d.isValidElement(e)&&e.props?.value===n);return t?(0,m.jsxs)(v.Provider,{value:{defaultValue:r},children:[(0,m.jsx)(`div`,{ref:C,"aria-hidden":`true`,className:`pointer-events-none absolute flex items-center gap-2 opacity-0`,style:{top:-9999,left:-9999},children:e}),(0,m.jsxs)(`div`,{ref:S,className:`flex w-full min-w-0 flex-1 items-center gap-2`,children:[(0,m.jsx)(`div`,{ref:g,className:i(`flex min-w-0 items-center gap-2`,p),...h,children:T}),D&&(0,m.jsxs)(l,{children:[(0,m.jsx)(c,{asChild:!0,children:(0,m.jsx)(o,{className:i(`h-[30px] flex-shrink-0 px-3 py-2`,O&&`bg-accent text-accent-foreground`),variant:`ghost`,children:O?(0,m.jsx)(`span`,{className:`max-w-[100px] truncate`,children:O.props.children}):(0,m.jsx)(a,{className:`size-6`})})}),(0,m.jsx)(s,{align:`end`,children:E.map((e,t)=>!d.isValidElement(e)||!e.props?.value?null:(0,m.jsx)(u,{className:i(e.props.value===n&&`bg-accent text-accent-foreground`),onClick:()=>{f?.(e.props.value),e.props.onClick?.()},children:e.props.children},e.props.value||t))})]})]})]}):(0,m.jsx)(v.Provider,{value:{defaultValue:r},children:(0,m.jsx)(`div`,{ref:g,className:i(`flex items-center gap-2`,p),...h,children:e})})});y.displayName=`PageMenu`;var b=d.forwardRef(({children:e,value:t,className:n,...r},a)=>{let s=d.useContext(v)?.defaultValue===t;return(0,m.jsx)(o,{ref:a,className:i(`relative gap-1.5 px-3 text-control font-medium text-text-secondary hover:text-foreground focus-visible:ring-0`,`data-[state=active]:bg-muted-foreground/10 data-[state=active]:text-foreground`,`dark:hover:bg-tab-hover dark:data-[state=active]:bg-tab-active dark:data-[state=active]:hover:bg-tab-active`,n),"data-state":s?`active`:void 0,variant:`ghost`,...r,children:e})});b.displayName=`PageMenuItem`;export{g as a,h as i,b as n,p as o,_ as r,y as t};
@@ -0,0 +1 @@
1
+ import{i as e,n as t,r as n,t as r}from"./hooks-Cy_-oZ4o.js";import{h as i,m as a,p as o}from"./posts-pCPrhQeR.js";var s=`PagesResponseType`,c=s,l=n({dataType:s,path:`/pages/`}),u=r({dataType:s,path:`/pages/`,defaultNextPageParams:(e,t)=>{if(e.meta?.pagination.next)return{...t,page:e.meta.pagination.next.toString()}},returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.pages),r=t[t.length-1].meta;return{pages:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}});e({dataType:s,path:e=>`/pages/${e}/`});var d=e({dataType:s,path:e=>`/pages/${e}/`}),f=(e,t={})=>{let{searchParams:n,...r}=t;return d(e,{...r,searchParams:{...n,...a()}})},p=t({method:`POST`,path:()=>`/pages/`,searchParams:({options:e})=>o(e),body:({page:e})=>({pages:[i(e,`page`)]}),requestOptions:({sessionExpiryRedirect:e})=>({sessionExpiryRedirect:e}),invalidateQueries:{dataType:s}}),m=t({method:`PUT`,path:({page:e})=>`/pages/${e.id}/`,searchParams:({options:e})=>o(e),body:({page:e})=>({pages:[i(e,`page`)]}),requestOptions:({sessionExpiryRedirect:e})=>({sessionExpiryRedirect:e}),invalidateQueries:{dataType:s}}),h=t({method:`DELETE`,path:({id:e})=>`/pages/${e}/`,requestOptions:({sessionExpiryRedirect:e})=>({sessionExpiryRedirect:e})}),g=t({method:`POST`,path:e=>`/pages/${e}/copy/`}),_=t({method:`PUT`,path:()=>`/pages/bulk/`,searchParams:({filter:e})=>({filter:e}),body:({action:e})=>({bulk:{action:e.type,meta:`meta`in e?e.meta:{}}})}),v=t({method:`DELETE`,path:()=>`/pages/`,searchParams:({filter:e})=>({filter:e})});export{v as a,h as c,u as i,m as l,p as n,_ as o,l as r,g as s,c as t,f as u};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{t}from"./posts-list-screen-o4ZjbgS3.js";var n=e();function r(){return(0,n.jsx)(t,{resource:`pages`})}export{r 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{n as r,p as i}from"./hooks-CuEZV2-q.js";import{n as a}from"./dist-Ndy-PuGN.js";import{t as o}from"./switch-CI4gLWqb.js";import{t as s}from"./dropzone-D7nFdAe5.js";import{o as c,t as l}from"./use-settings-navigation-CZjGrhsp.js";import{a as u,c as d,n as f,o as p,r as m,s as h,t as g}from"./field-Dihp5p18.js";import{oi as _,ti as v}from"./index-6MkPdCtr.js";import{n as y}from"./global-data-context-gAMDH9u1.js";import{t as b}from"./integration-header-Bm6IDb1A.js";import{t as x}from"./brand-icon-CrIGOA3Z.js";``+new URL(`pintura-screenshot-DTzk1LjU.png`,import.meta.url).href;var S=e(t(),1),C=r({method:`POST`,path:()=>`/files/upload/`,body:({file:e})=>{let t=new FormData;return t.append(`file`,e),t}}),w=n();function T(){let{updateRoute:e}=l(),[t,n]=(0,S.useState)({js:!1,css:!1}),{settings:r,config:T}=y(),[E]=v(r,[`pintura`]),{mutateAsync:D}=_(),{mutateAsync:O}=C(),k=i();(0,S.useEffect)(()=>{N(E||!1)},[E]);let[A,j]=(0,S.useState)(`Save`),[M,N]=(0,S.useState)(!!E),P=async()=>{let e=[{key:`pintura`,value:M}];try{j(`Saving...`),await Promise.all([D(e),new Promise(e=>{setTimeout(e,1e3)})]),j(`Saved`)}catch(e){k(e)}finally{setTimeout(()=>j(`Save`),1e3)}},F=async(e,t)=>{try{n(e=>({...e,[t]:!0}));let{files:r}=await O({file:e}),i=r[0].url,o=[{key:`pintura_${t}_url`,value:i}];await D(o),a.success(`Pintura ${t} uploaded`)}catch(e){k(e)}finally{n(e=>({...e,[t]:!1}))}};return(0,w.jsxs)(c,{cancelLabel:`Close`,dirty:M!==E,okLabel:A,okVariant:`default`,testId:`pintura-modal`,title:``,onClose:()=>{e(`integrations`)},onOk:P,children:[(0,w.jsx)(b,{detail:`Advanced image editing`,icon:(0,w.jsx)(x,{name:`pintura`,size:48}),title:`Pintura`}),(0,w.jsxs)(`div`,{className:`mt-7`,children:[!T.pintura&&(0,w.jsxs)(`div`,{className:`mb-7 flex flex-col items-stretch justify-between gap-4 rounded-sm bg-gray-50 p-4 md:flex-row md:p-7 dark:bg-gray-950`,children:[(0,w.jsxs)(`div`,{className:`md:basis-1/2`,children:[(0,w.jsx)(`p`,{className:`mb-4 text-md font-semibold`,children:`Add advanced image editing to Ghost, with Pintura`}),(0,w.jsx)(`p`,{className:`mb-4`,children:`Pintura is a powerful JavaScript image editor that allows you to crop, rotate, annotate and modify images directly inside Ghost.`}),(0,w.jsx)(`p`,{children:`Try a demo, purchase a license, and download the required CSS/JS files from pqina.nl/pintura/ to activate this feature.`})]}),(0,w.jsxs)(`div`,{className:`flex grow flex-col items-end justify-between gap-2 md:basis-1/2`,children:[(0,w.jsx)(`img`,{alt:`Pintura screenshot`,src:``+new URL(`pintura-screenshot-DTzk1LjU.png`,import.meta.url).href}),(0,w.jsx)(`a`,{className:`-mb-1 font-medium text-green`,href:`https://pqina.nl/pintura/ghost/?ref=ghost.org`,rel:`noopener noreferrer`,target:`_blank`,children:`Find out more →`})]})]}),(0,w.jsxs)(d,{className:`gap-0`,children:[(0,w.jsx)(h,{className:`mb-3 text-md! leading-supertight font-bold md:text-lg!`,children:`Pintura configuration`}),(0,w.jsxs)(u,{className:`gap-8 rounded-sm border border-border-default p-4 md:p-7`,children:[(0,w.jsxs)(g,{orientation:`horizontal`,children:[(0,w.jsxs)(f,{children:[(0,w.jsx)(p,{htmlFor:`pintura-enabled`,children:`Enable Pintura`}),(0,w.jsxs)(m,{children:[`Enable`,` `,(0,w.jsx)(`a`,{className:`text-green`,href:`https://pqina.nl/pintura/ghost/?ref=ghost.org`,rel:`noopener noreferrer`,target:`_blank`,children:`Pintura`}),` `,`for editing your images in Ghost`]})]}),(0,w.jsx)(o,{checked:M,id:`pintura-enabled`,onCheckedChange:N})]}),M&&!T.pintura&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{className:`flex flex-col justify-between gap-1 md:flex-row md:items-center`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`div`,{children:`Upload Pintura script`}),(0,w.jsxs)(`div`,{className:`text-sm text-gray-600`,children:[`Upload the `,(0,w.jsx)(`code`,{children:`pintura-umd.js`}),` file from the Pintura package`]})]}),(0,w.jsx)(s,{accept:{"text/javascript":[`.js`],"application/javascript":[`.js`]},disabled:t.js,variant:`button`,onDropAccepted:e=>void F(e[0],`js`),children:t.js?`Uploading...`:`Upload`})]}),(0,w.jsxs)(`div`,{className:`flex flex-col justify-between gap-1 md:flex-row md:items-center`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`div`,{children:`Upload Pintura styles`}),(0,w.jsxs)(`div`,{className:`text-sm text-gray-600`,children:[`Upload the `,(0,w.jsx)(`code`,{children:`pintura.css`}),` file from the Pintura package`]})]}),(0,w.jsx)(s,{accept:{"text/css":[`.css`]},disabled:t.css,variant:`button`,onDropAccepted:e=>void F(e[0],`css`),children:t.css?`Uploading...`:`Upload`})]})]})]})]})]})]})}export{T as default};
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,p as i}from"./hooks-Cy_-oZ4o.js";import{n as a}from"./dist-Ndy-PuGN.js";import{t as o}from"./switch-CI4gLWqb.js";import{t as s}from"./dropzone-Dtz5Rmjt.js";import{o as c,t as l}from"./use-settings-navigation-B-qrriKD.js";import{a as u,c as d,n as f,o as p,r as m,s as h,t as g}from"./field-C93_Mg6j.js";import{mi as _,yi as v}from"./index-CgMCwsxN.js";import{t as y}from"./brand-icon-CrIGOA3Z.js";import{n as b}from"./global-data-context-gAMDH9u1.js";import{t as x}from"./integration-header-Bm6IDb1A.js";``+new URL(`pintura-screenshot-DTzk1LjU.png`,import.meta.url).href;var S=e(t(),1),C=r({method:`POST`,path:()=>`/files/upload/`,body:({file:e})=>{let t=new FormData;return t.append(`file`,e),t}}),w=n();function T(){let{updateRoute:e}=l(),[t,n]=(0,S.useState)({js:!1,css:!1}),{settings:r,config:T}=b(),[E]=_(r,[`pintura`]),{mutateAsync:D}=v(),{mutateAsync:O}=C(),k=i();(0,S.useEffect)(()=>{N(E||!1)},[E]);let[A,j]=(0,S.useState)(`Save`),[M,N]=(0,S.useState)(!!E),P=async()=>{let e=[{key:`pintura`,value:M}];try{j(`Saving...`),await Promise.all([D(e),new Promise(e=>{setTimeout(e,1e3)})]),j(`Saved`)}catch(e){k(e)}finally{setTimeout(()=>j(`Save`),1e3)}},F=async(e,t)=>{try{n(e=>({...e,[t]:!0}));let{files:r}=await O({file:e}),i=r[0].url,o=[{key:`pintura_${t}_url`,value:i}];await D(o),a.success(`Pintura ${t} uploaded`)}catch(e){k(e)}finally{n(e=>({...e,[t]:!1}))}};return(0,w.jsxs)(c,{cancelLabel:`Close`,dirty:M!==E,okLabel:A,okVariant:`default`,testId:`pintura-modal`,title:``,onClose:()=>{e(`integrations`)},onOk:P,children:[(0,w.jsx)(x,{detail:`Advanced image editing`,icon:(0,w.jsx)(y,{name:`pintura`,size:48}),title:`Pintura`}),(0,w.jsxs)(`div`,{className:`mt-7`,children:[!T.pintura&&(0,w.jsxs)(`div`,{className:`mb-7 flex flex-col items-stretch justify-between gap-4 rounded-sm bg-gray-50 p-4 md:flex-row md:p-7 dark:bg-gray-950`,children:[(0,w.jsxs)(`div`,{className:`md:basis-1/2`,children:[(0,w.jsx)(`p`,{className:`mb-4 text-md font-semibold`,children:`Add advanced image editing to Ghost, with Pintura`}),(0,w.jsx)(`p`,{className:`mb-4`,children:`Pintura is a powerful JavaScript image editor that allows you to crop, rotate, annotate and modify images directly inside Ghost.`}),(0,w.jsx)(`p`,{children:`Try a demo, purchase a license, and download the required CSS/JS files from pqina.nl/pintura/ to activate this feature.`})]}),(0,w.jsxs)(`div`,{className:`flex grow flex-col items-end justify-between gap-2 md:basis-1/2`,children:[(0,w.jsx)(`img`,{alt:`Pintura screenshot`,src:``+new URL(`pintura-screenshot-DTzk1LjU.png`,import.meta.url).href}),(0,w.jsx)(`a`,{className:`-mb-1 font-medium text-green`,href:`https://pqina.nl/pintura/ghost/?ref=ghost.org`,rel:`noopener noreferrer`,target:`_blank`,children:`Find out more →`})]})]}),(0,w.jsxs)(d,{className:`gap-0`,children:[(0,w.jsx)(h,{className:`mb-3 text-md! leading-supertight font-bold md:text-lg!`,children:`Pintura configuration`}),(0,w.jsxs)(u,{className:`gap-8 rounded-sm border border-border-default p-4 md:p-7`,children:[(0,w.jsxs)(g,{orientation:`horizontal`,children:[(0,w.jsxs)(f,{children:[(0,w.jsx)(p,{htmlFor:`pintura-enabled`,children:`Enable Pintura`}),(0,w.jsxs)(m,{children:[`Enable`,` `,(0,w.jsx)(`a`,{className:`text-green`,href:`https://pqina.nl/pintura/ghost/?ref=ghost.org`,rel:`noopener noreferrer`,target:`_blank`,children:`Pintura`}),` `,`for editing your images in Ghost`]})]}),(0,w.jsx)(o,{checked:M,id:`pintura-enabled`,onCheckedChange:N})]}),M&&!T.pintura&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{className:`flex flex-col justify-between gap-1 md:flex-row md:items-center`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`div`,{children:`Upload Pintura script`}),(0,w.jsxs)(`div`,{className:`text-sm text-gray-600`,children:[`Upload the `,(0,w.jsx)(`code`,{children:`pintura-umd.js`}),` file from the Pintura package`]})]}),(0,w.jsx)(s,{accept:{"text/javascript":[`.js`],"application/javascript":[`.js`]},disabled:t.js,variant:`button`,onDropAccepted:e=>void F(e[0],`js`),children:t.js?`Uploading...`:`Upload`})]}),(0,w.jsxs)(`div`,{className:`flex flex-col justify-between gap-1 md:flex-row md:items-center`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`div`,{children:`Upload Pintura styles`}),(0,w.jsxs)(`div`,{className:`text-sm text-gray-600`,children:[`Upload the `,(0,w.jsx)(`code`,{children:`pintura.css`}),` file from the Pintura package`]})]}),(0,w.jsx)(s,{accept:{"text/css":[`.css`]},disabled:t.css,variant:`button`,onDropAccepted:e=>void F(e[0],`css`),children:t.css?`Uploading...`:`Upload`})]})]})]})]})]})]})}export{T 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{t as r}from"./inline-BWSs_VzR.js";import{Qn as i}from"./index-6MkPdCtr.js";var a=e(t(),1),o=n(),s=({href:e,onDestroyed:t,selectedTab:n,portalParent:s})=>{n||=`signup`;let c=(0,a.useRef)(null),[l,u]=(0,a.useState)(!1),[d,f]=(0,a.useState)(!0),p=(0,a.useCallback)(()=>{setTimeout(()=>{c.current&&f(!1)},300)},[c]);if((0,a.useEffect)(()=>{let n=t=>{e&&new URL(t.origin).origin===new URL(e).origin&&t.data?.type===`portal-preview-ready`&&p()};return window.addEventListener(`message`,n,!0),()=>{window.removeEventListener(`message`,n,!0),t?.()}},[e,t,p,l]),!e)return null;let m=`mt-[-7%] flex h-screen items-center justify-center`,h=`hidden`;return s===`preview`?(m=`pointer-events-none absolute inset-0 z-50`,h=`invisible`):s===`offers`&&(m=`absolute inset-0 z-50`,h=`invisible`),(0,o.jsxs)(o.Fragment,{children:[d&&(0,o.jsx)(r,{align:`center`,className:m,justify:`center`,children:(0,o.jsx)(i,{size:`lg`})}),(0,o.jsx)(`iframe`,{ref:c,className:!d&&l?``:h,"data-testid":`portal-preview`,height:`100%`,src:e,title:`Portal Preview`,width:`100%`,onLoad:()=>{u(!0)}})]})};export{s 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{t as r}from"./inline-BWSs_VzR.js";import{nr as i}from"./index-CgMCwsxN.js";var a=e(t(),1),o=n(),s=({href:e,onDestroyed:t,selectedTab:n,portalParent:s})=>{n||=`signup`;let c=(0,a.useRef)(null),[l,u]=(0,a.useState)(!1),[d,f]=(0,a.useState)(!0),p=(0,a.useCallback)(()=>{setTimeout(()=>{c.current&&f(!1)},300)},[c]);if((0,a.useEffect)(()=>{let n=t=>{e&&new URL(t.origin).origin===new URL(e).origin&&t.data?.type===`portal-preview-ready`&&p()};return window.addEventListener(`message`,n,!0),()=>{window.removeEventListener(`message`,n,!0),t?.()}},[e,t,p,l]),!e)return null;let m=`mt-[-7%] flex h-screen items-center justify-center`,h=`hidden`;return s===`preview`?(m=`pointer-events-none absolute inset-0 z-50`,h=`invisible`):s===`offers`&&(m=`absolute inset-0 z-50`,h=`invisible`),(0,o.jsxs)(o.Fragment,{children:[d&&(0,o.jsx)(r,{align:`center`,className:m,justify:`center`,children:(0,o.jsx)(i,{size:`lg`})}),(0,o.jsx)(`iframe`,{ref:c,className:!d&&l?``:h,"data-testid":`portal-preview`,height:`100%`,src:e,title:`Portal Preview`,width:`100%`,onLoad:()=>{u(!0)}})]})};export{s as t};
@@ -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{n as r,p as i}from"./hooks-Cy_-oZ4o.js";import{t as a}from"./use-form-vRjI0Kwk.js";import{m as o}from"./dist-B3keLvjj.js";import{t as s}from"./grid-Dj29PY05.js";import{t as c}from"./inline-BWSs_VzR.js";import{t as l}from"./stack-B2eszIiq.js";import{t as u}from"./text-BQDSDsKs.js";import{s as d}from"./shade-app-CcS3f8MZ-vwURazk8.js";import{D as f,t as p,v as m}from"./button-Dvcv1QSR.js";import{i as h,n as g,r as _,t as v}from"./tabs-eBBlxPp8.js";import{t as y}from"./switch-CI4gLWqb.js";import{i as b,n as x,o as S,s as C,t as w}from"./select-v5YbA3Mw.js";import{t as T}from"./use-settings-navigation-B-qrriKD.js";import{t as E}from"./checkbox-BtayFtjg.js";import{a as D,i as O,n as k,o as A,r as j,t as M}from"./copy-field-DCJwh9qf.js";import{a as N,c as P,i as F,n as I,o as L,r as R,s as z,t as B}from"./field-C93_Mg6j.js";import{n as ee,t as te}from"./toggle-group-CviIkyok.js";import{dt as V,fi as H,ft as ne,mi as U,pi as W,pt as re,qn as ie,rr as G,wi as ae,yi as oe}from"./index-CgMCwsxN.js";import{a as se,c as ce,i as le,n as ue,o as de,r as fe,s as pe,t as me}from"./images-KXmyO3Ss.js";import{a as he,o as ge,r as _e}from"./tiers-BCpIOGQr.js";import{t as ve}from"./modal-page-xCivTMvI.js";import{t as ye}from"./validator-Cr0sMKuW.js";import{t as be}from"./brand-icon-CrIGOA3Z.js";import{n as xe}from"./confirmation-context-DwXX_Y5h.js";import{n as K}from"./global-data-context-gAMDH9u1.js";import{t as Se}from"./html-field-DA4eU7eq.js";import{t as Ce}from"./preview-modal-YYbzlYdO.js";import{t as q}from"./portal-frame-Cqanidq4.js";import{t as we}from"./use-query-params-BfzuqbcD.js";var J=e(t(),1),Y=n(),X=({localSettings:e,settingKey:t,updateSetting:n})=>{let r=t.replaceAll(`_`,`-`);return(0,Y.jsxs)(B,{orientation:`horizontal`,children:[(0,Y.jsx)(L,{htmlFor:r,children:`Display option to purchase gift`}),(0,Y.jsx)(y,{checked:!!W(e,t),id:r,onCheckedChange:e=>n(t,e)})]})},Te=({localSettings:e,updateSetting:t})=>{let[n,r,i,a,o,s]=U(e,[`transistor`,`transistor_portal_enabled`,`transistor_portal_heading`,`transistor_portal_description`,`transistor_portal_button_text`,`transistor_portal_url_template`]);if(n!==!0)return null;let c=r===!0;return(0,Y.jsxs)(l,{gap:`xl`,children:[(0,Y.jsx)(ie,{}),(0,Y.jsxs)(l,{gap:`md`,children:[(0,Y.jsx)(u,{as:`h5`,className:`md:text-lg`,leading:`supertight`,weight:`bold`,children:`Transistor`}),(0,Y.jsxs)(B,{orientation:`horizontal`,children:[(0,Y.jsxs)(I,{children:[(0,Y.jsx)(L,{htmlFor:`transistor-portal-enabled`,children:`Enable Transistor integration`}),(0,Y.jsx)(R,{children:`Show a section on the account page for members to access private podcasts`})]}),(0,Y.jsx)(y,{checked:c,id:`transistor-portal-enabled`,onCheckedChange:e=>t(`transistor_portal_enabled`,e)})]})]}),c&&(0,Y.jsxs)(N,{className:`gap-6`,children:[(0,Y.jsxs)(B,{children:[(0,Y.jsx)(L,{htmlFor:`transistor-heading`,children:`Heading`}),(0,Y.jsx)(G,{id:`transistor-heading`,placeholder:`Podcasts`,value:i,onChange:e=>t(`transistor_portal_heading`,e.target.value)}),(0,Y.jsx)(R,{children:`The heading displayed above the Transistor section`})]}),(0,Y.jsxs)(B,{children:[(0,Y.jsx)(L,{htmlFor:`transistor-description`,children:`Description`}),(0,Y.jsx)(G,{id:`transistor-description`,placeholder:`Access your RSS feeds`,value:a,onChange:e=>t(`transistor_portal_description`,e.target.value)}),(0,Y.jsx)(R,{children:`A short description of what members can do`})]}),(0,Y.jsxs)(B,{children:[(0,Y.jsx)(L,{htmlFor:`transistor-button-text`,children:`Button text`}),(0,Y.jsx)(G,{id:`transistor-button-text`,placeholder:`Manage`,value:o,onChange:e=>t(`transistor_portal_button_text`,e.target.value)}),(0,Y.jsx)(R,{children:`The text displayed on the button`})]}),(0,Y.jsxs)(B,{children:[(0,Y.jsx)(L,{htmlFor:`transistor-url-template`,children:`URL template`}),(0,Y.jsx)(G,{id:`transistor-url-template`,placeholder:`https://partner.transistor.fm/ghost/{memberUuid}`,value:s,onChange:e=>t(`transistor_portal_url_template`,e.target.value)}),(0,Y.jsxs)(R,{children:[`Use `,`{memberUuid}`,` as a placeholder for the member ID`]})]})]})]})},Ee=e(ye(),1),De=({localSettings:e,updateSetting:t,errors:n,setError:r})=>{let{siteData:i,settings:a,config:o}=K(),[s,c]=U(a,[`members_support_address`,`support_email_address`]),l=c?.toString()||V(s?.toString()||``,i,o),u=ne(i,o),[d,f]=(0,J.useState)(l);return(0,J.useEffect)(()=>{f(l)},[l]),(0,Y.jsx)(`div`,{className:`mt-7`,children:(0,Y.jsxs)(N,{className:`mb-10 gap-8`,children:[(0,Y.jsx)(X,{localSettings:e,settingKey:`portal_account_gift_promotion`,updateSetting:t}),(0,Y.jsxs)(B,{"data-invalid":!!n.members_support_address||void 0,children:[(0,Y.jsx)(L,{htmlFor:`members-support-address`,children:`Support email address`}),(0,Y.jsx)(G,{"aria-invalid":!!n.members_support_address||void 0,id:`members-support-address`,value:d,onBlur:e=>{let n=e.target.value;n?Ee.default.isEmail(n)?r(`members_support_address`,``):r(`members_support_address`,`Enter a valid email address`):r(`members_support_address`,`Enter an email address`);let a=u&&n===`noreply@${u}`?`noreply`:n;t(`members_support_address`,a),f(V(a,i,o))},onChange:e=>f(e.target.value)}),n.members_support_address&&(0,Y.jsx)(F,{children:n.members_support_address})]}),(0,Y.jsx)(Te,{localSettings:e,updateSetting:t})]})})},Z=[{icon:`portal-icon-1`,label:`Portal icon 1`,value:`icon-1`},{icon:`portal-icon-2`,label:`Portal icon 2`,value:`icon-2`},{icon:`portal-icon-3`,label:`Portal icon 3`,value:`icon-3`},{icon:`portal-icon-4`,label:`Portal icon 4`,value:`icon-4`},{icon:`portal-icon-5`,label:`Portal icon 5`,value:`icon-5`}],Oe=({localSettings:e,updateSetting:t})=>{let{mutateAsync:n}=ue(),r=i(),[a,o,c,d]=U(e,[`portal_button`,`portal_button_style`,`portal_button_icon`,`portal_button_signup_text`]),h=c||Z[0].value,[g,_]=(0,J.useState)(Z.map(({value:e})=>e).includes(h)?void 0:h),v=async e=>{try{let r=me(await n({file:e}));t(`portal_button_icon`,r),_(r)}catch(e){let t=e;t.response.status===415&&(t.message=`Unsupported file type`),r(t)}};return(0,Y.jsx)(`div`,{className:`mt-7`,children:(0,Y.jsxs)(N,{className:`mb-10 gap-8`,children:[(0,Y.jsxs)(B,{orientation:`horizontal`,children:[(0,Y.jsx)(L,{htmlFor:`show-portal-button`,children:`Show portal button`}),(0,Y.jsx)(y,{checked:!!a,id:`show-portal-button`,onCheckedChange:e=>t(`portal_button`,e)})]}),a&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(B,{children:[(0,Y.jsx)(L,{children:`Button style`}),(0,Y.jsxs)(w,{value:o,onValueChange:e=>t(`portal_button_style`,e),children:[(0,Y.jsx)(S,{"aria-label":`Button style`,children:(0,Y.jsx)(C,{})}),(0,Y.jsx)(x,{children:[{value:`icon-and-text`,label:`Icon and text`},{value:`icon-only`,label:`Icon only`},{value:`text-only`,label:`Text only`}].map(e=>(0,Y.jsx)(b,{value:e.value,children:e.label},e.value))})]})]}),o?.toString()?.includes(`icon`)&&(0,Y.jsxs)(l,{gap:`sm`,children:[(0,Y.jsx)(u,{as:`h6`,className:`text-base`,weight:`semibold`,children:`Icon`}),(0,Y.jsxs)(s,{className:`w-full gap-px rounded-(--input-group-radius) bg-muted p-0.5`,columns:6,gap:`none`,children:[(0,Y.jsx)(te,{"aria-label":`Portal button icon`,className:`contents border-0! bg-transparent! p-0`,type:`single`,value:h,onValueChange:e=>e&&t(`portal_button_icon`,e),children:Z.map(e=>(0,Y.jsx)(ee,{"aria-label":e.label,className:`group h-[46px] w-full min-w-0 rounded-[calc(var(--radius-md)+1px)] p-3`,value:e.value,children:(0,Y.jsx)(be,{className:`size-[18px] opacity-70 transition-opacity group-hover:opacity-100 group-data-[state=on]:opacity-100`,name:e.icon})},e.value))}),(0,Y.jsx)(fe,{className:`h-[46px] w-full min-w-0 overflow-visible rounded-[calc(var(--radius-md)+1px)] ${h===g?`bg-background shadow-sm`:``}`,children:g?(0,Y.jsxs)(ce,{className:`overflow-visible`,children:[(0,Y.jsx)(pe,{className:`rounded-md`,src:g}),(0,Y.jsx)(p,{"aria-label":`Use uploaded Portal icon`,"aria-pressed":h===g,className:`absolute inset-0 z-10 size-full rounded-md bg-transparent hover:bg-transparent`,size:`icon`,type:`button`,variant:`ghost`,onClick:()=>t(`portal_button_icon`,g)}),(0,Y.jsx)(se,{className:`-top-2 -right-2 z-20 opacity-100`,children:(0,Y.jsx)(le,{"aria-label":`Delete uploaded Portal icon`,className:`size-6 rounded-full p-0`,onClick:()=>{h===g&&t(`portal_button_icon`,null),_(void 0)},children:(0,Y.jsx)(f,{})})})]}):(0,Y.jsx)(de,{accept:{"image/*":[]},"aria-label":`Upload Portal icon`,className:`size-full rounded-[calc(var(--radius-md)+1px)] border-0 bg-transparent p-0 hover:bg-surface-elevated`,inputAriaLabel:`Upload Portal icon`,onDropAccepted:e=>void v(e[0]),children:(0,Y.jsx)(m,{className:`size-5`})})})]})]}),o?.toString()?.includes(`text`)&&(0,Y.jsxs)(B,{children:[(0,Y.jsx)(L,{htmlFor:`portal-signup-button-text`,children:`Signup button text`}),(0,Y.jsx)(G,{id:`portal-signup-button-text`,value:d,onChange:e=>t(`portal_button_signup_text`,e.target.value)})]})]})]})})},Q=({name:e,value:t})=>(0,Y.jsxs)(M,{className:`lg:flex-row lg:items-center lg:gap-5`,value:t,children:[(0,Y.jsx)(D,{className:`shrink-0 whitespace-nowrap lg:w-[180px]`,children:e}),(0,Y.jsxs)(j,{children:[(0,Y.jsx)(A,{}),(0,Y.jsx)(k,{children:(0,Y.jsx)(O,{})})]})]}),ke=()=>{let[e,t]=(0,J.useState)(!1),[n,r]=(0,J.useState)(``),{siteData:i}=K(),{data:{tiers:a}={}}=he(),o=_e(a||[]),s=ae();(0,J.useEffect)(()=>{o?.length&&!n&&r(o[0].id)},[o,n]);let d=o?.map(e=>({label:e.name,value:e.id})),f=re(i);return(0,Y.jsx)(ve,{className:`max-w-[920px] text-base text-foreground`,children:(0,Y.jsxs)(l,{gap:`2xl`,children:[(0,Y.jsxs)(l,{gap:`xs`,children:[(0,Y.jsx)(ve.Title,{className:`mb-0`,children:`Links`}),(0,Y.jsxs)(u,{children:[`Use these `,e?`data attributes`:`links`,` in your theme to show pages of Portal.`]})]}),(0,Y.jsx)(`section`,{children:(0,Y.jsxs)(l,{gap:`lg`,children:[(0,Y.jsxs)(c,{as:`header`,className:`border-b border-border pb-2`,justify:`between`,children:[(0,Y.jsx)(u,{as:`h2`,size:`xl`,weight:`semibold`,children:`Generic`}),(0,Y.jsx)(v,{value:e?`data-attributes`:`links`,variant:`segmented-sm`,onValueChange:e=>t(e===`data-attributes`),children:(0,Y.jsxs)(_,{"aria-label":`Portal link format`,children:[(0,Y.jsx)(h,{value:`links`,children:`Links`}),(0,Y.jsx)(h,{value:`data-attributes`,children:`Data attributes`})]})})]}),(0,Y.jsxs)(l,{gap:`md`,children:[(0,Y.jsx)(Q,{name:`Default`,value:e?`data-portal`:`${f}#/portal`}),(0,Y.jsx)(Q,{name:`Sign in`,value:e?`data-portal="signin"`:`${f}#/portal/signin`}),(0,Y.jsx)(Q,{name:`Sign up`,value:e?`data-portal="signup"`:`${f}#/portal/signup`}),s&&(0,Y.jsx)(Q,{name:`Gift subscriptions`,value:e?`data-portal="gift"`:`${f}#/portal/gift`})]})]})}),(0,Y.jsx)(`section`,{children:(0,Y.jsxs)(l,{gap:`lg`,children:[(0,Y.jsx)(u,{as:`h2`,className:`border-b border-border pb-2`,size:`xl`,weight:`semibold`,children:`Tiers`}),(0,Y.jsxs)(l,{gap:`md`,children:[(0,Y.jsxs)(B,{className:`lg:flex-row lg:items-center lg:justify-between lg:gap-5 [&>*]:w-auto`,children:[(0,Y.jsx)(L,{className:`shrink-0 whitespace-nowrap lg:w-[180px]`,children:`Tier`}),(0,Y.jsxs)(w,{value:n,onValueChange:r,children:[(0,Y.jsx)(S,{"aria-label":`Tier`,className:`w-fit`,children:(0,Y.jsx)(C,{})}),(0,Y.jsx)(x,{children:d.map(e=>(0,Y.jsx)(b,{value:e.value,children:e.label},e.value))})]})]}),(0,Y.jsx)(Q,{name:`Signup / Monthly`,value:e?`data-portal="signup/${n}/monthly"`:`${f}#/portal/signup/${n}/monthly`}),(0,Y.jsx)(Q,{name:`Signup / Yearly`,value:e?`data-portal="signup/${n}/yearly"`:`${f}#/portal/signup/${n}/yearly`}),(0,Y.jsx)(Q,{name:`Signup / Free`,value:e?`data-portal="signup/free"`:`${f}#/portal/signup/free`})]})]})}),(0,Y.jsx)(`section`,{children:(0,Y.jsxs)(l,{gap:`lg`,children:[(0,Y.jsx)(u,{as:`h2`,className:`border-b border-border pb-2`,size:`xl`,weight:`semibold`,children:`Account`}),(0,Y.jsxs)(l,{gap:`md`,children:[(0,Y.jsx)(Q,{name:`Account`,value:e?`data-portal="account"`:`${f}#/portal/account`}),(0,Y.jsx)(Q,{name:`Account / Plans`,value:e?`data-portal="account/plans"`:`${f}#/portal/account/plans`}),(0,Y.jsx)(Q,{name:`Account / Profile`,value:e?`data-portal="account/profile"`:`${f}#/portal/account/profile`}),(0,Y.jsx)(Q,{name:`Account / Newsletters`,value:e?`data-portal="account/newsletters"`:`${f}#/portal/account/newsletters`}),(0,Y.jsx)(Q,{name:`Account / Newsletter help`,value:e?`data-portal="account/newsletters/help"`:`${f}#/portal/account/newsletters/help`})]})]})})]})})},Ae=({settings:e,config:t,tiers:n,siteData:r,selectedTab:i,previewTheme:a})=>{if(!r?.url)return null;let o=n.filter(e=>e.visibility===`public`&&e.type===`paid`).map(e=>e.id),s=r.url.replace(/\/$/,``),c=JSON.parse(W(e,`portal_plans`)||``),l=new URLSearchParams;l.append(`button`,W(e,`portal_button`)?`true`:`false`),l.append(`name`,W(e,`portal_name`)?`true`:`false`),l.append(`signupGiftPromotion`,W(e,`portal_signup_gift_promotion`)?`true`:`false`),l.append(`accountGiftPromotion`,W(e,`portal_account_gift_promotion`)?`true`:`false`),l.append(`isFree`,c.includes(`free`)?`true`:`false`),l.append(`isMonthly`,H(e,t)&&c.includes(`monthly`)?`true`:`false`),l.append(`isYearly`,H(e,t)&&c.includes(`yearly`)?`true`:`false`),l.append(`page`,i===`account`?`accountHome`:`signup`),l.append(`previewTheme`,a),l.append(`buttonIcon`,encodeURIComponent(W(e,`portal_button_icon`)||`icon-1`)),l.append(`signupButtonText`,encodeURIComponent(W(e,`portal_button_signup_text`)||``)),l.append(`membersSignupAccess`,W(e,`members_signup_access`)||`all`),l.append(`allowSelfSignup`,W(e,`allow_self_signup`)||`false`),l.append(`signupTermsHtml`,W(e,`portal_signup_terms_html`)||``),l.append(`signupCheckboxRequired`,W(e,`portal_signup_checkbox_required`)?`true`:`false`),l.append(`portalProducts`,o.join(`,`));let u=W(e,`portal_default_plan`);u&&l.append(`portalDefaultPlan`,u),c&&c.length&&l.append(`portalPrices`,encodeURIComponent(c.join(`,`)));let d=W(e,`accent_color`);d!=null&&l.append(`accentColor`,encodeURIComponent(d));let f=W(e,`portal_button_style`);return f&&l.append(`buttonStyle`,encodeURIComponent(f)),l.append(`disableBackground`,`false`),W(e,`transistor`)&&l.append(`transistorPortalSettings`,JSON.stringify({enabled:W(e,`transistor_portal_enabled`),heading:W(e,`transistor_portal_heading`)||`Podcasts`,description:W(e,`transistor_portal_description`)||`Access your RSS feeds`,button_text:W(e,`transistor_portal_button_text`)||`Manage`,url_template:W(e,`transistor_portal_url_template`)||`https://partner.transistor.fm/ghost/{memberUuid}`})),l.append(`admin_toolbar`,`0`),`${s}/?v=modal-portal-settings#/portal/preview?${l.toString()}`},je=({darkMode:e,selectedTab:t=`signup`,localSettings:n,localTiers:r})=>{let{siteData:i,config:a}=K(),o=Ae({settings:n,tiers:r,selectedTab:t,previewTheme:e?`dark`:`light`,siteData:i,config:a}),s=(0,Y.jsx)(Y.Fragment,{});switch(t){case`account`:s=(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(q,{href:o||``,portalParent:`preview`,selectedTab:t})});break;case`links`:s=(0,Y.jsx)(ke,{});break;default:s=(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(q,{href:o||``,portalParent:`preview`,selectedTab:t})});break}return s},Me=({localSettings:e,updateSetting:t,localTiers:n,updateTier:r,errors:i,setError:a})=>{let{config:s}=K(),[c,l,u,d,f,p]=U(e,[`members_signup_access`,`portal_name`,`portal_signup_terms_html`,`portal_signup_checkbox_required`,`portal_plans`,`portal_default_plan`]),m=JSON.parse(f?.toString()||`[]`),h=(0,J.useMemo)(()=>{let e=document.createElement(`div`);return e.innerHTML=u?.toString()||``,e.innerText.length},[u]),g=(0,J.useCallback)((e,t)=>{a(e,t)},[]);(0,J.useEffect)(()=>{h>115?g(`portal_signup_terms_html`,`Signup notice is too long`):g(`portal_signup_terms_html`,void 0)},[h,g]);let _=e=>{let n=m.indexOf(e);n===-1?m.push(e):m.splice(n,1),t(`portal_plans`,JSON.stringify(m)),p===`yearly`?!m.includes(`yearly`)&&m.includes(`monthly`)&&t(`portal_default_plan`,`monthly`):p===`monthly`&&(m.includes(`monthly`)||t(`portal_default_plan`,`yearly`))},v=c===`all`||c===`paid`,T=c===`all`,D=H(e,s),O=[];n&&n.forEach(e=>{e.type===`free`&&T&&O.push({checked:m.includes(`free`),disabled:!v,label:e.name,value:`free`,testId:`free-tier-checkbox`,onChange:n=>{m.includes(`free`)&&!n&&m.splice(m.indexOf(`free`),1),!m.includes(`free`)&&n&&m.push(`free`),t(`portal_plans`,JSON.stringify(m)),r({...e,visibility:n?`public`:`none`})}})});let k=_e(n)||[],A=[{value:`yearly`,label:`Yearly`},{value:`monthly`,label:`Monthly`}];D&&k.length>0&&k.forEach(e=>{O.push({checked:e.visibility===`public`,label:e.name,value:e.id,onChange:t=>r({...e,visibility:t?`public`:`none`})})});let j=D&&k.length>0&&k.some(e=>e.visibility===`public`);return(0,Y.jsx)(`div`,{className:`mt-7`,children:(0,Y.jsxs)(N,{className:`mb-10 gap-8`,children:[(0,Y.jsxs)(B,{"data-disabled":!v||void 0,orientation:`horizontal`,children:[(0,Y.jsx)(L,{htmlFor:`portal-display-name`,children:`Display name in signup form`}),(0,Y.jsx)(y,{checked:!!l,disabled:!v,id:`portal-display-name`,onCheckedChange:e=>t(`portal_name`,e)})]}),(0,Y.jsxs)(P,{children:[(0,Y.jsx)(z,{variant:`label`,children:`Available tiers`}),(0,Y.jsx)(N,{"data-slot":`checkbox-group`,children:O.map(e=>(0,Y.jsxs)(B,{"data-disabled":e.disabled||void 0,orientation:`horizontal`,children:[(0,Y.jsx)(E,{checked:e.checked,"data-testid":e.testId,disabled:e.disabled,id:`portal-tier-${e.value}`,onCheckedChange:t=>e.onChange(t===!0)}),(0,Y.jsx)(L,{htmlFor:`portal-tier-${e.value}`,children:e.label})]},e.value))})]}),j&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(P,{children:[(0,Y.jsx)(z,{variant:`label`,children:`Available prices`}),(0,Y.jsx)(N,{"data-slot":`checkbox-group`,children:[`monthly`,`yearly`].map(e=>(0,Y.jsxs)(B,{"data-disabled":!v||void 0,orientation:`horizontal`,children:[(0,Y.jsx)(E,{checked:m.includes(e),disabled:!v,id:`portal-plan-${e}`,onCheckedChange:()=>_(e)}),(0,Y.jsx)(L,{className:`capitalize`,htmlFor:`portal-plan-${e}`,children:e})]},e))})]}),m.includes(`yearly`)&&m.includes(`monthly`)&&(0,Y.jsxs)(B,{children:[(0,Y.jsx)(L,{children:`Default price at signup`}),(0,Y.jsxs)(w,{value:typeof p==`string`?p:``,onValueChange:e=>t(`portal_default_plan`,e),children:[(0,Y.jsx)(S,{"aria-label":`Default price at signup`,children:(0,Y.jsx)(C,{})}),(0,Y.jsx)(x,{children:A.map(e=>(0,Y.jsx)(b,{value:e.value,children:e.label},e.value))})]})]})]}),(0,Y.jsx)(Se,{error:!!i.portal_signup_terms_html,hint:i.portal_signup_terms_html||(0,Y.jsxs)(Y.Fragment,{children:[`Recommended: `,(0,Y.jsx)(`strong`,{children:o(115)}),` characters. You've used`,` `,(0,Y.jsx)(`strong`,{className:`text-green`,children:o(h)})]}),nodes:`MINIMAL_NODES`,placeholder:`By signing up, I agree to receive emails from ...`,title:`Display notice at signup`,value:u?.toString(),onChange:e=>t(`portal_signup_terms_html`,e)}),u?.toString()&&(0,Y.jsxs)(B,{"data-disabled":!v||void 0,orientation:`horizontal`,children:[(0,Y.jsx)(L,{htmlFor:`portal-require-agreement`,children:`Require agreement`}),(0,Y.jsx)(y,{checked:!!d,disabled:!v,id:`portal-require-agreement`,onCheckedChange:e=>t(`portal_signup_checkbox_required`,e)})]}),(0,Y.jsx)(X,{localSettings:e,settingKey:`portal_signup_gift_promotion`,updateSetting:t})]})})},Ne=r({path:()=>`/settings/verifications`,method:`PUT`,body:({token:e})=>({token:e}),updateQueries:{dataType:`SettingsResponseType`,emberUpdateType:`createOrUpdate`,update:e=>({...e,settings:e.settings})}}),Pe={signupOptions:`signup`,lookAndFeel:`signup`,accountPage:`account`},$=`border-b-2 border-transparent after:hidden data-[state=active]:border-foreground`,Fe=({localSettings:e,updateSetting:t,localTiers:n,updateTier:r,errors:i,setError:a,selectedTab:o,onTabChange:s})=>(0,Y.jsx)(`div`,{className:`pt-4`,children:(0,Y.jsxs)(v,{value:o,variant:`underline`,onValueChange:e=>s(e),children:[(0,Y.jsxs)(_,{children:[(0,Y.jsx)(h,{className:$,value:`signupOptions`,children:`Signup options`}),(0,Y.jsx)(h,{className:$,value:`lookAndFeel`,children:`Look & feel`}),(0,Y.jsx)(h,{className:$,value:`accountPage`,children:`Account page`})]}),(0,Y.jsx)(g,{value:`signupOptions`,children:(0,Y.jsx)(Me,{errors:i,localSettings:e,localTiers:n,setError:a,updateSetting:t,updateTier:r})}),(0,Y.jsx)(g,{value:`lookAndFeel`,children:(0,Y.jsx)(Oe,{localSettings:e,updateSetting:t})}),(0,Y.jsx)(g,{value:`accountPage`,children:(0,Y.jsx)(De,{errors:i,localSettings:e,setError:a,updateSetting:t})})]})}),Ie=()=>{let{updateRoute:e}=T(),{darkMode:t}=d(),[n,r]=(0,J.useState)(`signup`),[o,s]=(0,J.useState)(`signupOptions`),c=i(),{confirm:l}=xe(),{settings:u,siteData:f,config:p}=K(),{mutateAsync:m}=oe(),{data:{tiers:g}={}}=he(),{mutateAsync:y}=ge(),{mutateAsync:b}=Ne(),{getParam:x}=we(),S=x(`verifyEmail`);(0,J.useEffect)(()=>{S&&(async({token:e})=>{try{let{settings:t}=await b({token:e}),[n]=U(t,[`members_support_address`]);l({title:`Support address verified`,prompt:(0,Y.jsxs)(Y.Fragment,{children:[`Your support email address has been changed to `,(0,Y.jsx)(`strong`,{children:n}),`.`]}),okLabel:`Close`,cancelLabel:``,onOk:e=>e?.remove()})}catch(e){let t=`There was an error verifying your email address. Please try again.`;e instanceof Error&&e.message===`Token expired`&&(t=`Verification link has expired.`),l({title:`Error verifying support address`,prompt:t,okLabel:`Close`,cancelLabel:``,onOk:e=>e?.remove()}),c(e,{withToast:!1})}})({token:S})},[l,c,S,b]);let{formState:C,setFormState:w,saveState:E,handleSave:D,updateForm:O,okProps:k}=a({initialState:{settings:u,tiers:g||[]},savingDelay:500,onSave:async()=>{await Promise.all(C.tiers.filter(({dirty:e})=>e).map(e=>y(e))),w(e=>({...e,tiers:C.tiers.map(e=>({...e,dirty:!1}))}));let e=C.settings.filter(e=>e.dirty);if(!e.length)return;let{meta:t,settings:n}=await m(e);if(w(e=>({...e,settings:C.settings.map(e=>({...e,dirty:!1}))})),t?.sent_email_verification){let e=C.settings.find(e=>e.key===`members_support_address`)?.value,t=n.find(e=>e.key===`support_email_address`)?.value||V(n.find(e=>e.key===`members_support_address`)?.value?.toString()||`noreply`,f,p);l({title:`Confirm email address`,prompt:(0,Y.jsxs)(Y.Fragment,{children:[`We've sent a confirmation email to `,(0,Y.jsx)(`strong`,{children:e}),`. Until verified, your support email address will remain `,t,`.`]}),okLabel:`Close`,cancelLabel:``,onOk:e=>e?.remove()})}},onSaveError:c});(0,J.useEffect)(()=>{!C.tiers.length&&g?.length&&w(e=>({...e,tiers:g}))},[g,C.tiers,w]);let[A,j]=(0,J.useState)({}),M=(e,t)=>{O(n=>({...n,settings:n.settings.map(n=>n.key===e?{...n,value:t,dirty:!0}:n)}))},N=(e,t)=>{j(n=>({...n,[e]:t}))},P=e=>{O(t=>({...t,tiers:t.tiers.map(t=>t.id===e.id?{...e,dirty:!0}:t)}))},F=e=>{r(e),e===`account`?s(`accountPage`):e===`signup`&&o===`accountPage`&&s(`signupOptions`)},I=(0,Y.jsx)(Fe,{errors:A,localSettings:C.settings,localTiers:C.tiers,selectedTab:o,setError:N,updateSetting:M,updateTier:P,onTabChange:e=>{s(e),r(Pe[e])}}),L=(0,Y.jsx)(je,{darkMode:t,localSettings:C.settings,localTiers:C.tiers,selectedTab:n}),R=(0,Y.jsx)(v,{value:n,variant:`button`,onValueChange:e=>F(e),children:(0,Y.jsxs)(_,{children:[(0,Y.jsx)(h,{value:`signup`,children:`Signup`}),(0,Y.jsx)(h,{value:`account`,children:`Account page`}),(0,Y.jsx)(h,{value:`links`,children:`Links`})]})});return(0,Y.jsx)(Ce,{buttonsDisabled:k.disabled,cancelLabel:`Close`,dirty:E===`unsaved`,okLabel:k.label||`Save`,okVariant:k.variant,preview:L,previewBgColor:n===`links`?`white`:`greygradient`,previewToolbarTabs:R,sidebar:I,testId:`portal-modal`,title:`Portal`,onClose:()=>{e(`portal`)},onOk:async()=>{Object.values(A).filter(Boolean).length||await D({force:!0})}})};export{Ie 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{r}from"./posts-pCPrhQeR.js";import{t as i}from"./analytics-53FOa2wq.js";import{i as a}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{m as o}from"./dist-B3keLvjj.js";import{t as s}from"./box-CdfQAP_F.js";import{t as c}from"./container-BuQG1wuP.js";import{t as l}from"./index-CgMCwsxN.js";import{t as u}from"./use-analytics-data-DAIGcr2f.js";import{t as d}from"./post-share-modal-DvhC1XgV.js";var f=e(t(),1),p=n(),m=({children:e})=>(0,p.jsx)(s,{className:`size-full`,children:(0,p.jsx)(c,{className:`relative flex h-full flex-col`,size:`page`,children:(0,p.jsx)(`div`,{className:`grid w-full grow grid-cols-[minmax(0,1fr)]`,children:(0,p.jsx)(`div`,{className:`flex h-full flex-col px-(--page-gutter)`,children:e})})})}),h=()=>{let[e,t]=(0,f.useState)(!1),[n,i]=(0,f.useState)(null),[a,s]=(0,f.useState)(null),{site:c}=u(),d=l(`improveSendingUI`),{data:p}=r({searchParams:n?{filter:`id:${n.id}`,include:`authors,newsletter,email`}:{},enabled:!!n}),{data:m}=r({searchParams:{filter:`status:[published,sent]`,limit:`1`,fields:`id`},enabled:!!n}),h=p?.posts?.[0],g=e=>`${o(e)} subscriber${e===1?``:`s`}`,_=e=>new Date(e).toLocaleTimeString(`en-US`,{hour:`2-digit`,minute:`2-digit`,hour12:!1}),v=e=>e?.map(e=>e.name).join(`, `)||``,y=(0,f.useMemo)(()=>{if(!h)return null;let n=!!a,r=d&&h.email?.status!==`submitted`,l=()=>{let e=[];if(h.email_only?e.push(r?`Your email is being sent to`:`Your email was sent to`):h.email?.email_count?e.push(r?`Your post was published on your site and is being sent to`:`Your post was published on your site and sent to`):e.push(`Your post was published on your site`),h.email?.email_count){let t=g(h.email.email_count);e.push(` `),e.push(f.createElement(`strong`,{key:`subscriber-count`},t)),h.newsletter?.name&&(e.push(` of `),e.push(f.createElement(`strong`,{key:`newsletter-name`},h.newsletter.name))),e.push(`,`)}if(h.published_at){let t=new Date(h.published_at);t.toDateString()===new Date().toDateString()?(e.push(` `),e.push(f.createElement(`strong`,{key:`today`},`today`))):(e.push(` on `),e.push(f.createElement(`strong`,{key:`date`},t.toLocaleDateString(`en-US`,{month:`long`,day:`numeric`})))),e.push(` at `),e.push(f.createElement(`strong`,{key:`time`},_(h.published_at)))}return e.push(`.`),f.createElement(`span`,{},...e)},u=()=>{t(!1),i(null),s(null)};return{open:e,onOpenChange:e=>{e||u()},emailOnly:h.email_only,postURL:h.url||``,primaryTitle:`Boom! It's out there.`,secondaryTitle:n&&a?`That's ${o(a)} post${a===1?``:`s`} published.`:`Spread the word!`,description:l(),featureImageURL:h.feature_image||``,postTitle:h.title||``,postExcerpt:h.excerpt||``,faviconURL:c?.icon||``,siteTitle:c?.title||``,author:v(h.authors),onClose:u}},[h,e,a,c?.title,d]);return(0,f.useEffect)(()=>{let e=()=>{try{let e=localStorage.getItem(`ghost-last-published-post`);if(e){let n=JSON.parse(e);i(n),t(!0),localStorage.removeItem(`ghost-last-published-post`)}}catch{}};e();let n=setTimeout(e,100);return()=>clearTimeout(n)},[]),(0,f.useEffect)(()=>{m?.meta?.pagination?.total&&s(m.meta.pagination.total)},[m]),{isModalOpen:e,post:h,postCount:a,showPostCount:!!a,closeModal:()=>{t(!1),i(null),s(null)},modalProps:y}},g=()=>{let{isModalOpen:e,modalProps:t}=h(),n=e&&!!t;return(0,f.useEffect)(()=>{n&&i(`Share Modal Opened`,{giftLinkShown:!1,source:`publish-flow`})},[n]),(0,p.jsxs)(m,{children:[(0,p.jsx)(a,{}),e&&t&&(0,p.jsx)(d,{...t})]})};export{g 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{o as r,p as i}from"./hooks-Cy_-oZ4o.js";import{n as a,o,r as s,t as c}from"./pagemenu-vgZVUVKR.js";import{c as l}from"./posts-pCPrhQeR.js";import{t as u}from"./analytics-53FOa2wq.js";import{n as d,r as ee}from"./post-helpers-C88JBa4D.js";import{a as te}from"./router-provider-BSvTXgZY.js";import{f,l as p,m,u as h}from"./dist-B3keLvjj.js";import{t as g}from"./inline-BWSs_VzR.js";import{t as _}from"./text-BQDSDsKs.js";import{t as ne}from"./heading-Dh5SFVjL.js";import{E as re,Mn as ie,Nn as ae,X as oe,a as v,t as y,wr as b,xt as se}from"./button-Dvcv1QSR.js";import{a as ce,i as le,n as x,o as ue,r as de,t as fe}from"./breadcrumb-CaLk2b7D.js";import{r as S}from"./users-DVNWrqg9.js";import{Di as pe,Dr as me,Fr as he,Nr as ge,Or as C,Si as _e,T as ve,Tr as ye,Yn as w,ar as be,cr as xe,dr as Se,ir as Ce,kr as T,lr as we,or as Te,sr as E,ur as D}from"./index-CgMCwsxN.js";import{t as O}from"./use-analytics-data-DAIGcr2f.js";import{t as Ee}from"./get-site-timezone-HgL0jI_F.js";import{t as De}from"./post-share-modal-DvhC1XgV.js";import{n as k}from"./email-sending-status-context-CWDOD1FN.js";import{n as A}from"./post-analytics-context-D0Mw-Pmv.js";import{i as Oe,t as ke}from"./gift-link-modal-B7u5bD4e.js";var j=e(t(),1),M=n(),N=(0,j.forwardRef)(({children:e,className:t,...n},r)=>(0,M.jsx)(`section`,{ref:r,className:p(`flex size-full grow flex-col gap-6 py-8`,t),...n,children:e}));N.displayName=`PostAnalyticsContent`;var P=10,F=e=>e<=40?0:Math.round(e/60);function I(e,t){return t!==null&&F(e-P)<=t&&t<=F(e+P)?t:F(e)}function L(e){let t=e?.sending,n=e?`${e.id}:${e.sending.status}`:null,r=t?.status===`preparing`||t?.status===`submitting`?t.progress.estimated_seconds_remaining:null,[i,a]=(0,j.useState)({key:null,minutes:null}),o=r===null?null:I(r,i.key===n?i.minutes:null);return(i.key!==n||i.minutes!==o)&&a({key:n,minutes:o}),o===null?null:o===0?`Less than 1 minute left`:`About ${m(o)} ${o===1?`minute`:`minutes`} left`}var R=`email-sending-fill-clip`,z=()=>(0,M.jsxs)(`svg`,{"aria-hidden":`true`,fill:`none`,height:`12`,viewBox:`0 0 12 12`,width:`12`,children:[(0,M.jsx)(`clipPath`,{id:R,children:(0,M.jsx)(`circle`,{cx:`6`,cy:`6`,r:`5.1`})}),(0,M.jsx)(`circle`,{cx:`6`,cy:`6`,fill:`currentColor`,r:`4.8`}),(0,M.jsx)(`g`,{clipPath:`url(#${R})`,children:(0,M.jsx)(`rect`,{className:`animate-email-sending-fill-rise fill-muted-foreground motion-reduce:translate-y-1/2 motion-reduce:animate-none`,height:`12`,width:`12`,x:`0`,y:`0`})})]}),B=({sending:e})=>e.status===`preparing`?(0,M.jsx)(`span`,{className:`relative flex size-4 shrink-0 items-center justify-center overflow-hidden rounded-full bg-muted-foreground text-white ring-1 ring-muted-foreground ring-offset-1 ring-offset-background`,children:(0,M.jsx)(z,{})}):e.status===`failed`?(0,M.jsx)(`span`,{className:`relative flex size-4 shrink-0 items-center justify-center overflow-hidden rounded-full bg-state-danger text-white ring-1 ring-state-danger ring-offset-1 ring-offset-background`,children:(0,M.jsx)(v,{"aria-hidden":`true`,size:12,strokeWidth:2.5})}):(0,M.jsx)(`span`,{className:`relative flex size-4 shrink-0 items-center justify-center overflow-hidden rounded-full bg-state-info text-white ring-1 ring-state-info ring-offset-1 ring-offset-background`,children:(0,M.jsx)(`span`,{className:`animate-email-sending-arrow-rise motion-reduce:animate-none`,children:(0,M.jsx)(b,{"aria-hidden":`true`,size:12,strokeWidth:2.5})})}),V=(e,t)=>{let{completed:n,total:r}=e.progress;return r===0?t:(0,M.jsxs)(M.Fragment,{children:[`${m(n)} of ${m(r)}`,t&&` · ${t}`]})},H=(e,t)=>{let{completed:n,total:r}=e.progress,i=e.failed_during===`submitting`?n:0,a=i>0?`${m(i)} of ${m(r)} emails were sent.`:r>0?`None of the ${m(r)} emails were sent.`:`No emails were sent.`;return t?`${a} ${t}`:a},Ae=()=>{let{post:e}=A(),{status:t,isNewsletterDataHidden:n,hasUnknownDeliveryOutcome:r,isRetrying:i,retrySending:a}=k(),o=t?.sending,s=L(t);if(!o||o.status===`submitted`&&!n)return null;let c=o.status===`failed`,l=c?!r&&o.failed_during===`submitting`&&o.progress.completed>0:!1,u=c?l?`Some emails failed to send`:`Emails failed to send`:o.status===`preparing`?`Preparing emails`:`Sending emails`,d=c?r?e?.email?.error||`Something went wrong while sending this email.`:H(o,e?.email?.error):V(o,s);return(0,M.jsx)(w,{className:`bg-surface-elevated shadow-none hover:shadow-none`,"data-testid":`email-sending-status-banner`,role:c?`alert`:`status`,size:`lg`,children:(0,M.jsxs)(g,{align:`center`,gap:`md`,justify:`between`,wrap:!0,children:[(0,M.jsxs)(g,{align:`center`,className:`min-w-0`,gap:`sm`,children:[(0,M.jsx)(B,{sending:o}),(0,M.jsxs)(_,{className:`min-w-0 tabular-nums`,size:`sm`,children:[(0,M.jsx)(_,{as:`strong`,size:`sm`,weight:`semibold`,children:u}),d&&(0,M.jsxs)(_,{as:`span`,size:`sm`,tone:`secondary`,children:[` · `,d]})]})]}),c&&!r&&(0,M.jsx)(y,{className:`shrink-0`,disabled:i,size:`sm`,variant:`outline`,onClick:()=>void a(),children:i?`Sending…`:l?`Send remaining emails`:`Retry sending email`})]})})},U=e=>{let{data:t}=r();return!e||!t?!1:e.status===`published`&&!!e.visibility&&e.visibility!==`public`&&S(t)},W=({currentTab:e,children:t})=>{let n=te(),r=pe(),p=_e(),{mutateAsync:g}=l(),_=i(),[v,b]=(0,j.useState)(!1),[S,w]=(0,j.useState)(!1),[N,P]=(0,j.useState)(!1),{settings:F,site:I,statsConfig:L}=O(),{post:R,isPostLoading:z,postId:B}=A(),{hasNewsletterAnalytics:V,status:H}=k(),W=U(R),G=`/editor/post/${B}`,je=ve(G),K=Ee(F),q=R?.status===`published`,J=H?.sending.status===`failed`,Y=q&&(!V||J),Me=q&&V&&!J,X=(0,j.useRef)(!1);(0,j.useEffect)(()=>{if(!S){X.current=!1;return}X.current||(X.current=!0,u(`Share Modal Opened`,{giftLinkShown:W,source:`post-analytics`}))},[S,W]);let{activeVisitors:Z,isLoading:Q}=o({postUuid:R?.uuid,statsConfig:L,enabled:r}),$=(0,j.useMemo)(()=>{if(!R)return[];let e=[];return ee(R)&&!r||(e.push(`Overview`),!R.email_only&&r&&e.push(`Web`)),V&&e.push(`Newsletter`),p&&e.push(`Growth`),e},[R,r,p,V]),Ne=()=>{R&&b(!0)},Pe=async()=>{if(R)try{await g({id:B}),b(!1),n(`/posts/`,{crossApp:!0})}catch(e){_(e)}};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`header`,{className:`z-50 -mx-(--page-gutter) bg-white/70 backdrop-blur-md dark:bg-background`,children:(0,M.jsx)(`div`,{className:`relative flex min-h-[102px] w-full items-start justify-between gap-5 px-(--page-gutter) pt-[28px]! pb-0`,"data-header":`header`,children:(0,M.jsxs)(`div`,{className:`flex w-full flex-col gap-6`,children:[(0,M.jsxs)(`div`,{className:`flex w-full flex-col flex-wrap justify-between md:flex-row md:items-center`,children:[(0,M.jsx)(fe,{children:(0,M.jsxs)(le,{children:[(0,M.jsx)(x,{children:(0,M.jsx)(de,{asChild:!0,children:(0,M.jsx)(`button`,{className:`cursor-pointer rounded-sm focus-visible:ring-1 focus-visible:ring-focus-ring focus-visible:outline-hidden`,type:`button`,onClick:()=>n(`/analytics/`),children:`Analytics`})})}),(0,M.jsx)(ue,{}),(0,M.jsx)(x,{children:(0,M.jsx)(ce,{children:`Post analytics`})})]})}),(0,M.jsxs)(`div`,{className:`flex w-full items-center gap-2 md:w-auto`,children:[r&&!R?.email_only&&(0,M.jsx)(`div`,{className:`mr-3 flex grow items-center gap-2 md:grow-0`,children:(0,M.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,title:`Active readers in the last 5 minutes · Updates every 60 seconds`,children:[(0,M.jsxs)(`span`,{children:[Q?``:m(Z),` reading now`]}),(0,M.jsx)(`div`,{className:`size-2 rounded-full ${Q?`animate-pulse bg-muted`:Z?`bg-green-500`:`border border-muted-foreground`}`})]})}),!z&&(0,M.jsxs)(M.Fragment,{children:[!R?.email_only&&(0,M.jsx)(De,{author:R?.authors?.[0]?.name||``,canShareAsGift:W,description:``,faviconURL:I?.icon||``,featureImageURL:R?.feature_image??void 0,giftAccessLabel:Oe(R?.visibility),open:S,postExcerpt:R?.excerpt||``,postTitle:R?.title,postURL:R?.url,siteTitle:I?.title||``,onClose:()=>w(!1),onOpenChange:w,onShareAsGift:()=>{w(!1),P(!0)},children:(0,M.jsxs)(y,{variant:`outline`,onClick:()=>w(!0),children:[(0,M.jsx)(oe,{}),` Share`]})}),(0,M.jsxs)(ye,{children:[(0,M.jsx)(he,{asChild:!0,children:(0,M.jsx)(y,{variant:`outline`,children:(0,M.jsx)(ae,{})})}),(0,M.jsxs)(me,{align:`end`,children:[(0,M.jsxs)(C,{children:[(0,M.jsx)(T,{asChild:!0,children:(0,M.jsxs)(`a`,{href:R?.url,rel:`noopener noreferrer`,target:`_blank`,children:[(0,M.jsx)(ie,{}),`View in browser`]})}),(0,M.jsxs)(T,{onClick:()=>{n(G,{crossApp:je})},children:[(0,M.jsx)(se,{}),`Edit post`]})]}),(0,M.jsx)(ge,{}),(0,M.jsx)(C,{children:(0,M.jsxs)(T,{className:`text-destructive focus:text-destructive`,onClick:Ne,children:[(0,M.jsx)(re,{}),`Delete post`]})})]})]})]})]})]}),!z&&(0,M.jsxs)(`div`,{className:`flex items-start gap-6 md:items-center`,children:[R?.feature_image&&(0,M.jsx)(`div`,{className:`aspect-[16/10] w-full max-w-[100px] rounded-md bg-cover bg-center md:max-w-[132px]`,style:{backgroundImage:`url(${R.feature_image})`}}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(ne,{className:`-ml-px max-w-[920px] indent-0 !text-xl md:leading-[1.2em]`,"data-header":`header-title`,children:R?.title}),R?.published_at&&(0,M.jsxs)(`div`,{className:`mt-0.5 flex items-center justify-start leading-[1.65em] text-muted-foreground`,children:[d(R)&&`Sent on ${h(R.published_at,K)} at ${f(R.published_at,K)}`,Y&&`Published on your site on ${h(R.published_at,K)} at ${f(R.published_at,K)}`,Me&&`Published and sent on ${h(R.published_at,K)} at ${f(R.published_at,K)}`]})]})]}),(0,M.jsx)(Ae,{})]})})}),(0,M.jsxs)(s,{className:`sticky top-0 z-50 -mb-8 transform-gpu flex-col items-start gap-y-0 border-none bg-white/70 py-8 backdrop-blur-md lg:flex-row lg:items-center dark:bg-background`,children:[!z&&(0,M.jsxs)(c,{className:`min-h-[34px]`,defaultValue:e,responsive:!0,children:[$.includes(`Overview`)&&(0,M.jsx)(a,{value:`Overview`,onClick:()=>{n(`/posts/analytics/${B}`)},children:`Overview`}),$.includes(`Web`)&&(0,M.jsx)(a,{value:`Web`,onClick:()=>{n(`/posts/analytics/${B}/web`)},children:`Web traffic`}),$.includes(`Newsletter`)&&(0,M.jsx)(a,{value:`Newsletter`,onClick:()=>{n(`/posts/analytics/${B}/newsletter`)},children:`Newsletter`}),$.includes(`Growth`)&&(0,M.jsx)(a,{value:`Growth`,onClick:()=>{n(`/posts/analytics/${B}/growth`)},children:`Growth`})]}),t]}),W&&B&&(0,M.jsx)(ke,{open:N,postId:B,source:`share-modal`,onOpenChange:P},B),(0,M.jsx)(Ce,{open:v,onOpenChange:b,children:(0,M.jsxs)(E,{children:[(0,M.jsxs)(D,{children:[(0,M.jsx)(Se,{children:`Are you sure you want to delete this post?`}),(0,M.jsxs)(xe,{children:[`You're about to delete "`,(0,M.jsx)(`strong`,{children:R?.title}),`". This is permanent! We warned you, k?`]})]}),(0,M.jsxs)(we,{children:[(0,M.jsx)(Te,{children:`Cancel`}),(0,M.jsx)(be,{className:`bg-red-600 text-white hover:bg-red-700`,onClick:()=>void Pe(),children:`Delete`})]})]})})]})};export{U as n,N as r,W as t};
@@ -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{r}from"./posts-pCPrhQeR.js";import{h as i}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{W as a,q as o}from"./index-CgMCwsxN.js";import{t as s}from"./post-analytics-context-D0Mw-Pmv.js";var c=e(t(),1),l=n(),u=({children:e})=>{let{postId:t}=i();if(!t)throw Error(`Post ID is required for PostAnalyticsProvider`);let[n,u]=(0,c.useState)(o.last30Days.value),{data:{posts:[d]}={posts:[]},isLoading:f,refetch:p}=r({searchParams:{filter:`id:${t}`,include:a}}),m=(0,c.useCallback)(async()=>{await p()},[p]);return(0,l.jsx)(s.Provider,{value:{postId:t,post:d,isPostLoading:f,refetchPost:m,range:n,setRange:u},children:e})};export{u as default};
@@ -0,0 +1 @@
1
+ function e(e){return!!e.email_only&&e.status===`sent`}function t(e){return e.status===`published`&&!r(e)}function n(e){return e.status===`published`&&r(e)}function r(e){let t=e.status===`published`,n=e.status===`sent`,r=!!e.email,i=e.email?.status!==`failed`,a=typeof e.email?.email_count==`number`&&e.email.email_count>0;return(n||t)&&r&&(i||a)}function i(r,i){let a=i?.membersTrackSources??!0;return e(r)?{showEmailMetrics:!0,showWebMetrics:!1,showMemberGrowth:a}:t(r)?{showEmailMetrics:!1,showWebMetrics:!0,showMemberGrowth:a}:n(r)?{showEmailMetrics:!0,showWebMetrics:!0,showMemberGrowth:a}:{showEmailMetrics:!1,showWebMetrics:!0,showMemberGrowth:a}}export{e as n,t as r,i as t};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-DAXXjFlN.js";import{t as e}from"./react-Bb3IsNbi.js";import{t}from"./jsx-runtime-DX3WBWVO.js";import{r as n}from"./heading-Dh5SFVjL.js";import{t as r}from"./button-Dvcv1QSR.js";import{t as i}from"./share-modal-SskCmVGL.js";e();var a=t(),o=({author:e=``,canShareAsGift:t=!1,children:o,description:s=``,emailOnly:c=!1,faviconURL:l=``,featureImageURL:u=``,giftAccessLabel:d=``,onClose:f=()=>{},onShareAsGift:p=()=>{},postExcerpt:m=``,postTitle:h=``,postURL:g=``,primaryTitle:_=`Your post is published.`,secondaryTitle:v=`Spread the word!`,siteTitle:y=``,...b})=>{let x=encodeURIComponent(h),S=encodeURIComponent(g),C=encodeURIComponent(`${h} ${g}`),w=c?[]:[{href:`https://twitter.com/intent/tweet?text=${x}%0A${S}`,label:`Share on X`,service:`x`},{href:`https://threads.net/intent/post?text=${C}`,label:`Share on Threads`,service:`threads`},{href:`https://www.facebook.com/sharer/sharer.php?u=${S}`,label:`Share on Facebook`,service:`facebook`},{href:`https://www.linkedin.com/shareArticle?mini=true&title=${x}&url=${S}`,label:`Share on LinkedIn`,service:`linkedin`},{href:`https://bsky.app/intent/compose?text=${C}`,label:`Share on Bluesky`,service:`bluesky`}];return(0,a.jsxs)(i.Root,{...b,children:[o&&(0,a.jsx)(i.Trigger,{children:o}),(0,a.jsxs)(i.Content,{children:[(0,a.jsx)(`div`,{className:`sticky top-0 ml-auto size-0`,children:(0,a.jsx)(i.CloseButton,{className:`absolute -top-5 -right-5`,onClick:f})}),(0,a.jsxs)(i.Header,{className:`relative -mt-5`,children:[(0,a.jsxs)(i.Title,{className:`text-3xl leading-[1.15em] font-bold`,children:[_&&(0,a.jsx)(`span`,{className:`text-state-success`,children:_}),_&&v&&(0,a.jsx)(`br`,{}),v&&(0,a.jsx)(`span`,{children:v})]}),s&&(0,a.jsx)(i.Description,{className:`mb-0 pt-1 pb-0 text-lg text-foreground`,children:s})]}),(0,a.jsxs)(i.Preview,{className:`rounded-md`,href:g,children:[u&&(0,a.jsx)(`div`,{className:`aspect-video bg-cover bg-center`,style:{backgroundImage:`url(${u})`}}),(0,a.jsxs)(`div`,{className:`p-6 pt-5`,children:[(0,a.jsx)(n,{children:h}),m&&(0,a.jsx)(`p`,{className:`line-clamp-2`,children:m}),(0,a.jsxs)(`div`,{className:`mt-2 flex items-start gap-2`,children:[(0,a.jsx)(`div`,{className:`mt-0.5 size-4 bg-cover bg-center`,style:{backgroundImage:`url(${l})`}}),(0,a.jsxs)(`div`,{className:`flex gap-1`,children:[(0,a.jsx)(`strong`,{children:y}),(0,a.jsx)(`span`,{children:`•`}),(0,a.jsx)(`span`,{children:e})]})]})]})]}),(0,a.jsx)(i.Footer,{children:c?(0,a.jsx)(r,{className:`cursor-pointer`,type:`button`,onClick:f,children:`Close`}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.SocialLinks,{links:w}),(0,a.jsx)(i.CopyButton,{className:`ml-0! grow cursor-pointer`,copyURL:g,icon:`link`})]})}),t&&!c&&(0,a.jsxs)(`p`,{className:`text-center text-sm text-muted-foreground`,children:[`Want to share full access to this `,d,` post?`,` `,(0,a.jsx)(r,{className:`h-auto p-0 align-baseline text-sm`,type:`button`,variant:`link`,onClick:p,children:`Share as a gift`}),`.`]})]})]})};export{o as t};
@@ -0,0 +1 @@
1
+ function e(e){let t=e?.status===`published`,n=e?.status===`sent`,r=!!e?.email,i=e?.email?.status!==`failed`,a=typeof e?.email?.email_count==`number`&&e.email.email_count>0;return(n||t)&&r&&(i||a)}function t(e){let t=e.open_rate!==null;return e.status===`sent`?`Email only`:e.status===`published`?t?`Published and sent`:`Published`:e.status}export{e as n,t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./gift-link-modal-B7u5bD4e.js","./rolldown-runtime-DAXXjFlN.js","./react-Bb3IsNbi.js","./jsx-runtime-DX3WBWVO.js","./hooks-Cy_-oZ4o.js","./framework-provider-DqI25epG.js","./dist-Ndy-PuGN.js","./use-tinybird-query-CmdbCS9X.js","./use-tinybird-token-KLne235s.js","./index-CgMCwsxN.js","./config-kSHvwdTG.js","./preload-helper-DYl5dUZ5.js","./chunk-KS7C4IRE-DCsL4i4D.js","./router-provider-BSvTXgZY.js","./feature-flag-overrides-context-DQjdJFAk.js","./dist-B3keLvjj.js","./text-BQDSDsKs.js","./heading-Dh5SFVjL.js","./lazy-component-COKiVB72.js","./shade-app-CcS3f8MZ-vwURazk8.js","./dist-8YJUlf3B.js","./overlay-escape-C7XYQuvP.js","./button-Dvcv1QSR.js","./dist-Dgt2cr6a.js","./Combination-B0l4MKVh.js","./dist-Dcsslyo72.js","./input-surface-BsrIZeSF.js","./skeleton-Ce9GgUpf.js","./use-navigate-with-base-path-BkxcPj5l.js","./onboarding-pXyct0Jm.js","./users-DVNWrqg9.js","./update-queries-C4CnvJaW.js","./onboarding-CUuy9unR.js","./schemas-BoYdB6YU.js","./index-BHHXtR5C.css","./posts-pCPrhQeR.js","./analytics-53FOa2wq.js","./share-modal-SskCmVGL.js","./pages-CjDY2CBI.js","./gift-links-CfLSnst2.js"])))=>i.map(i=>d[i]);
2
+ 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,s as i}from"./framework-provider-DqI25epG.js";import{o as a,p as o}from"./hooks-Cy_-oZ4o.js";import{n as s}from"./dist-Ndy-PuGN.js";import{t as c}from"./build-CsiH26uS.js";import{a as l,i as u,o as d,r as f,s as p}from"./posts-pCPrhQeR.js";import{t as m}from"./preload-helper-DYl5dUZ5.js";import{_ as h,u as g}from"./chunk-KS7C4IRE-DCsL4i4D.js";import{a as _}from"./router-provider-BSvTXgZY.js";import{l as v,m as y}from"./dist-B3keLvjj.js";import{t as ee}from"./box-CdfQAP_F.js";import{t as te}from"./container-BuQG1wuP.js";import{t as b}from"./inline-BWSs_VzR.js";import{t as x}from"./stack-B2eszIiq.js";import{t as S}from"./text-BQDSDsKs.js";import{$t as C,At as w,D as T,Dn as E,Er as ne,H as D,I as O,Rn as k,St as A,Tr as re,V as ie,Yt as j,_n as ae,b as oe,c as M,et as se,ft as ce,g as N,nn as P,or as le,rn as F,t as I,tn as L,tr as ue,tt as de,u as R,ur as z,vn as fe,xt as B}from"./button-Dvcv1QSR.js";import{i as V,n as H,o as pe,s as me,t as he}from"./select-v5YbA3Mw.js";import{t as ge}from"./checkbox-BtayFtjg.js";import{a as _e,i as ve,n as ye,r as be,t as xe}from"./context-menu-DOVB6yaz.js";import{t as Se}from"./empty-indicator-D9QdpuNX.js";import{c as Ce,f as we,l as Te,o as Ee,u as De}from"./users-DVNWrqg9.js";import{A as U,Cr as Oe,Dr as ke,Fr as Ae,Gn as je,Kn as Me,L as Ne,Mr as Pe,R as Fe,Sr as Ie,Tr as Le,Wn as Re,_i as W,_r as ze,ar as Be,br as Ve,cr as He,dr as Ue,gr as We,hr as Ge,ir as Ke,j as qe,jr as Je,lr as Ye,mt as Xe,n as Ze,nr as Qe,or as $e,pi as G,pr as et,r as tt,rr as nt,sr as rt,ur as it,xr as at,yi as ot,yr as st}from"./index-CgMCwsxN.js";import{c as ct,d as lt}from"./stats-D9PDLS3x.js";import{t as K}from"./page-header-DM_KyoFI.js";import{t as ut}from"./filter-bar-Da1qxybu.js";import{i as dt}from"./filters-DxA_a4FP.js";import{a as ft}from"./tiers-BCpIOGQr.js";import{t as pt}from"./post-share-modal-DvhC1XgV.js";import{t as mt}from"./feature-image-placeholder-BrIHmPs8.js";import{t as ht}from"./list-page-BucXJ0hi.js";import{n as gt,t as _t}from"./create-ghost-browse-value-source-5C53jJaX.js";import{a as vt,i as yt,o as bt,r as xt,s as St}from"./pages-CjDY2CBI.js";import{t as Ct}from"./virtual-list-CZ3RK2Yf.js";import{o as wt,s as Tt,t as Et}from"./tag-picker-C3UR-uJ-.js";import{n as Dt}from"./tags-ChfdwJyS.js";import{t as Ot}from"./nql-BLpCn7qX.js";var kt={deleted:{single:`{Type} deleted`,multiple:`{count} {type}s deleted`},unpublished:{single:`{Type} reverted to a draft`,multiple:`{count} {type}s reverted to drafts`},unscheduled:{single:`{Type} unscheduled`,multiple:`{count} {type}s unscheduled`},accessUpdated:{single:`{Type} access updated`,multiple:`{Type} access updated for {count} {type}s`},tagsAdded:{single:`Tags added`,multiple:`Tags added to {count} {type}s`},tagAdded:{single:`Tag added`,multiple:`Tag added to {count} {type}s`},duplicated:{single:`{Type} duplicated`,multiple:`{count} {type}s duplicated`},copiedPostUrl:{single:`Post link copied`},copiedPreviewUrl:{single:`Preview link copied`}};function q(e,{count:t,resource:n,isSingle:r=t===1}){let i=kt[e],a=(r?i.single:i.multiple)??i.single,o=n===`pages`?`page`:`post`;return a.replace(/\{Type\}/g,o.charAt(0).toUpperCase()+o.slice(1)).replace(/\{type\}/g,o).replace(/\{count\}/g,String(t))}function At(e,t){return e.uuid?`${t.replace(/\/$/,``)}/p/${e.uuid}/`:``}var J=e(t(),1),jt=new Set([`copy-link`,`copy-preview`,`duplicate`,`gift-link`,`delete`,`unpublish`,`unschedule`,`feature`,`unfeature`,`add-tag`,`change-access`]);function Mt({resource:e,posts:t,onShareAsGift:n,count:r,onBulkAction:a,selectionFilter:o,bucketFilters:c,isSingle:l,inverted:u}){let{data:d}=Xe(),f=d?.site.url??``,m=p(),h=St(),g=i();return(0,J.useCallback)(async i=>{let d=t[0];if(!d)return;let p=t=>{s.success(q(t,{count:r,resource:e,isSingle:l}))};try{switch(i){case`copy-link`:await navigator.clipboard.writeText(d.url),p(`copiedPostUrl`);break;case`copy-preview`:await navigator.clipboard.writeText(At(d,f)),p(`copiedPreviewUrl`);break;case`duplicate`:{e===`pages`?await h.mutateAsync(d.id):await m.mutateAsync(d.id);let t=e===`pages`?`PagesResponseType`:`PostsResponseType`;g.invalidateQueries({queryKey:[t]}),p(`duplicated`);break}case`gift-link`:n?.(d.id);break;default:a?.(i,{filter:o,posts:t,count:r,bucketFilters:c,isSingle:l,inverted:u});break}}catch(t){s.error(t instanceof Error&&t.message?t.message:`Could not complete that action on this ${e===`pages`?`page`:`post`}.`)}},[t,e,f,m,h,g,n,r,a,o,c,l,u])}var Y=n(),Nt={"copy-link":F,"copy-preview":F,"gift-link":fe,unpublish:oe,unschedule:z,feature:ie,unfeature:D,"add-tag":O,"change-access":C,duplicate:k,delete:T};function Pt({children:e,getItems:t,showGiftLink:n,enabled:r,onOpenChange:i,onAction:a}){if(!r)return(0,Y.jsx)(Y.Fragment,{children:e});let o=n?t():t().filter(e=>e.key!==`gift-link`);return(0,Y.jsxs)(xe,{onOpenChange:i,children:[(0,Y.jsx)(_e,{asChild:!0,children:e}),(0,Y.jsx)(ye,{children:o.map((e,t)=>{let n=Nt[e.key];return(0,Y.jsxs)(J.Fragment,{children:[t>0&&(e.separated||o[t-1].key===`gift-link`)&&(0,Y.jsx)(ve,{}),(0,Y.jsxs)(be,{"data-testid":`post-menu-${e.key}`,disabled:!jt.has(e.key),variant:e.destructive?`destructive`:void 0,onSelect:()=>{a(e.key)},children:[(0,Y.jsx)(n,{}),e.label]})]},e.key)})})]})}function Ft(e){return e.charAt(0).toUpperCase()+e.slice(1)}function It(e,t){return t===1?e:`${e}s`}function Lt(e,t){let n=RegExp(`${t}s:\\[(.*?)\\]`).exec(e);if(n)return n[1].split(`,`);let r=[...e.matchAll(RegExp(`${t}:(.*?)(?:,|$)`,`g`))].map(([,e])=>e).filter(Boolean);return r.length?r:null}function Rt(e=``){let t=e.split(`,`);if(t.includes(`status:free`)&&t.includes(`status:-free`))return`All subscribers`;let n=[];t.includes(`status:free`)?n.push(`Free subscribers`):t.includes(`status:-free`)&&n.push(`Paid subscribers`);let r=Lt(e,`label`);r&&n.push(`${It(`Label`,r.length)}: ${r.map(Ft).join(`, `)}`);let i=Lt(e,`product`);return i&&n.push(`${It(`Product`,i.length)}: ${i.map(Ft).join(`, `)}`),n.length?n.join(` & `):e}function X(e){return e.status??`draft`}function zt(e,t=`posts`){let n=X(e);return t===`posts`&&(n===`published`||n===`sent`)&&e.email?.status===`failed`}function Bt(e){return e.email?.status===`failed`}function Vt(e,t=`posts`){let n=X(e);return t===`posts`&&(n===`published`||n===`sent`)&&!!e.email&&!Bt(e)}function Ht(e){return(e.authors??[]).map(e=>e.name||e.email).filter(Boolean).join(`, `)}function Ut(e){let t=X(e);return t===`draft`||t===`scheduled`?`updated_at`:`published_at`}function Wt(e){return(Ut(e)===`updated_at`?e.updated_at:e.published_at)??void 0}function Gt(e){let t=Ht(e);return{byline:t?`By ${t}`:null,primaryTagName:e.primary_tag?.name??null}}function Kt(e,{timezone:t,now:n}={}){let{byline:r,primaryTagName:i}=Gt(e),a=Wt(e);return[r,i?`in ${i}`:null,a?Tt(a,{timezone:t,absolute:!0,short:!0,now:n}):null].filter(e=>!!e)}function qt(e,{timezone:t,now:n}={}){let r=Wt(e);if(r)return`${Ut(e)===`updated_at`?`Updated`:`Published`} ${Tt(r,{timezone:t,absolute:!0,now:n})}`}function Jt(e,t=`posts`){switch(X(e)){case`scheduled`:return`Scheduled`;case`published`:return zt(e,t)?`Published but failed to send newsletter`:Vt(e,t)?`Published and sent`:`Published`;case`sent`:return zt(e,t)?`Failed to send newsletter`:`Sent`;default:return`Draft`}}function Yt(e,{timezone:t,now:n,resource:r=`posts`}={}){if(X(e)===`scheduled`){let r=Tt(e.published_at,{timezone:t,scheduled:!0,now:n}),i=e.email_segment?`to ${Rt(e.email_segment)}`:null;return[e.email_only?`to be sent`:`to be published${e.newsletter?` and sent`:``}`,r,e.email_only||e.newsletter?i:null].filter(Boolean).join(` `)}if(Vt(e,r)){let t=e.email?.email_count??0;return`to ${y(t)} ${t===1?`member`:`members`}`}return null}var Xt={visitors:{label:`Visitors`,tab:`web`},opens:{label:`Opens`,tab:`newsletter`},clicks:{label:`Clicks`,tab:`newsletter`},sent:{label:`Sent`,tab:`newsletter`},members:{label:`Members`,tab:`growth`}};function Zt(e,t){return t===`posts`&&(e.status===`published`||e.status===`sent`)&&!!e.email&&e.email?.status!==`failed`}function Qt(e,t,n){return Zt(e,n)&&!t.isContributor&&t.membersSignupAccess!==`none`&&t.emailTrackOpens&&e.email?.track_opens===!0}function $t(e,t,n){return Zt(e,n)&&!t.isContributor&&t.membersSignupAccess!==`none`&&t.emailTrackClicks&&e.email?.track_clicks===!0}function en(e,t,n){return(n===`pages`||!e.email_only)&&e.status===`published`&&t.membersTrackSources&&!t.isMembersInviteOnly&&!t.isContributor}function tn(e,t,n){let r=[],i=e.status===`published`;if(t.webAnalyticsEnabled&&i&&r.push(`visitors`),e.email){let i=Qt(e,t,n),a=$t(e,t,n);i&&r.push(`opens`),a&&r.push(`clicks`),!i&&!a&&r.push(`sent`)}return t.membersTrackSources&&i&&r.push(`members`),r.map(e=>({key:e,...Xt[e]}))}function nn(e){let t=e.email?.email_count,n=e.count?.clicks;return!t||!n?0:Math.round(n/t*100)}function rn(e){let t=e.email?.email_count,n=e.email?.opened_count;return!t||!n?0:Math.round(n/t*100)}function an(e,t,n,r){return n!==`posts`||!r?!1:Qt(e,t,n)||$t(e,t,n)||en(e,t,n)}var on={visitors:ae,opens:j,clicks:w,sent:se,members:N,free:R,paid:M};function sn({title:e,rows:t,children:n}){return(0,Y.jsxs)(Re,{closeDelay:0,openDelay:0,children:[(0,Y.jsx)(Me,{asChild:!0,children:n}),(0,Y.jsx)(je,{className:`pointer-events-none w-48 p-3`,"data-testid":`post-metric-panel`,side:`top`,children:(0,Y.jsxs)(x,{gap:`xs`,children:[(0,Y.jsx)(S,{size:`sm`,weight:`semibold`,children:e}),t.map(e=>{let t=on[e.icon];return(0,Y.jsxs)(b,{gap:`md`,justify:`between`,children:[(0,Y.jsxs)(b,{align:`center`,gap:`xs`,children:[(0,Y.jsx)(t,{className:`size-3.5 shrink-0 text-muted-foreground`,strokeWidth:1.5}),(0,Y.jsx)(S,{size:`sm`,tone:`secondary`,children:e.label})]}),(0,Y.jsx)(S,{className:`font-mono`,size:`sm`,children:y(e.value)})]},e.label)})]})})]})}function cn(e,t,n){return e===`visitors`?{title:`Web traffic`,rows:[{label:`Unique visitors`,value:n.visitors??0,icon:`visitors`}]}:e===`opens`||e===`clicks`||e===`sent`?{title:`Newsletter performance`,rows:[{label:`Sent`,value:t.email?.email_count??0,icon:`sent`},...n.showOpens?[{label:`Opens`,value:t.email?.opened_count??0,icon:`opens`}]:[],...n.showClicks?[{label:`Clicks`,value:t.count?.clicks??0,icon:`clicks`}]:[]]}:{title:`New members`,rows:[{label:`Free`,value:n.freeMembers??0,icon:`free`},...n.paidMembersEnabled?[{label:`Paid`,value:n.paidMembers??0,icon:`paid`}]:[]]}}var ln=[`opens`,`clicks`,`sent`];function un(e,t,n,r){switch(e.key){case`visitors`:return y(n?.[t.uuid??``]??0);case`opens`:return`${rn(t)}%`;case`clicks`:return`${nn(t)}%`;case`sent`:return y(t.email?.email_count??0);case`members`:{let e=r?.[t.id];return y((e?.free??0)+(e?.paid??0))}default:return``}}function dn({post:e,settings:t,resource:n,visitorCounts:r,memberCounts:i,paidMembersEnabled:a,className:o}){let s=tn(e,t,n),c=new Set(s.map(e=>e.key)),l=i?.[e.id];if(s.length===0)return null;let u=[];return s.forEach(e=>{let t=u[u.length-1];ln.includes(e.key)&&t!==void 0&&ln.includes(t[0].key)?t.push(e):u.push([e])}),(0,Y.jsx)(b,{align:`center`,className:v(`shrink-0 max-[1200px]:hidden`,o),gap:`md`,children:u.map(t=>{let o=cn(t[0].key,e,{visitors:r?.[e.uuid??``],freeMembers:l?.free,paidMembers:l?.paid,paidMembersEnabled:a,showOpens:c.has(`opens`),showClicks:c.has(`clicks`)});return(0,Y.jsx)(sn,{rows:o.rows,title:o.title,children:(0,Y.jsx)(b,{align:`center`,gap:`md`,children:t.map(t=>{let a=on[t.key],o=un(t,e,r,i),s=(0,Y.jsxs)(b,{align:`center`,gap:`xs`,justify:`end`,children:[(0,Y.jsx)(a,{className:`size-4 shrink-0 text-muted-foreground`,strokeWidth:1.5}),(0,Y.jsx)(S,{className:`font-mono`,size:`sm`,children:o})]});return n===`pages`?(0,Y.jsx)(`span`,{"aria-label":`${t.label}: ${o}`,className:`min-w-16`,title:t.label,"data-ignore-select":!0,children:s},t.key):(0,Y.jsx)(`a`,{"aria-label":`${t.label}: ${o}`,className:`min-w-16 no-underline`,href:`#/posts/analytics/${e.id}/${t.tab}`,title:t.label,"data-ignore-select":!0,children:s},t.key)})})},t[0].key)})})}function fn(e,t){if(t)return`text-state-danger`;switch(e.status){case`draft`:return`text-pink`;case`scheduled`:return`text-green`;default:return`text-muted-foreground`}}var pn=`aspect-[16/10] w-[80px] shrink-0 rounded-sm lg:w-[100px]`;function mn({post:e}){return e.feature_image?(0,Y.jsx)(`div`,{className:v(pn,`bg-muted bg-cover bg-center`),role:`presentation`,style:{backgroundImage:`url(${JSON.stringify(e.feature_image)})`}}):(0,Y.jsx)(mt,{className:v(pn,`p-0`)})}var hn=(0,J.forwardRef)(function({post:e,resource:t,timezone:n,isContributor:r,hasAdminAccess:i,paidMembersEnabled:a,isSelected:o,onSelectMouseDown:s,onSelectClick:c,getMenuItems:l,showGiftLink:u,menuEnabled:d,menuOnOpenChange:f,menuOnAction:p,metricsSettings:m,visitorCounts:h,memberCounts:g,..._},y){let[ee,te]=(0,J.useState)(!1),C=Kt(e,{timezone:n}),w=qt(e,{timezone:n}),T=Jt(e,t),E=Yt(e,{timezone:n,resource:t}),ne=zt(e,t),D=e.status===`published`,O=t===`pages`?`page`:`post`,k=!!(r&&D),A=k?e.url:`#/editor/${O}/${e.id}`,j=an(e,m,t,!!i)?{href:`#/posts/analytics/${e.id}`,label:`Go to Analytics`,external:!1,Icon:le}:k?{href:e.url,label:`View post`,external:!0,Icon:re}:{href:A,label:`Go to Editor`,external:!1,Icon:B},ae=(0,Y.jsx)(`li`,{ref:y,..._,className:v(`group border-b border-border-default`,o?`bg-table-row-selected select-none`:`hover:bg-table-row-hover`),"data-selected":o?`true`:void 0,"data-testid":`posts-list-item`,onClickCapture:c,onMouseDownCapture:t=>{s?.(t,e.id)},onMouseEnter:()=>{te(!0)},onMouseLeave:()=>{te(!1)},children:(0,Y.jsxs)(b,{align:`center`,className:`pr-4`,gap:`md`,children:[(0,Y.jsxs)(`a`,{className:`flex min-w-0 flex-1 items-start gap-4 py-4 pl-4 no-underline`,"data-testid":`post-list-item-link`,href:A,rel:k?`noopener noreferrer`:void 0,target:k?`_blank`:void 0,children:[(0,Y.jsx)(mn,{post:e}),(0,Y.jsxs)(x,{className:`min-w-0 flex-1`,gap:`xs`,children:[(0,Y.jsxs)(b,{align:`center`,gap:`xs`,children:[e.featured&&(0,Y.jsx)(ie,{"aria-label":`Featured`,className:`size-4 shrink-0 fill-state-warning text-state-warning`,"data-testid":`post-featured`}),(0,Y.jsx)(S,{as:`h3`,className:`truncate`,weight:`semibold`,children:e.title})]}),C.length>0&&(0,Y.jsx)(S,{className:`truncate`,size:`sm`,title:w,tone:`secondary`,children:C.join(` - `)}),(0,Y.jsxs)(S,{className:fn(e,ne),size:`sm`,children:[T,ee&&E&&(0,Y.jsxs)(`span`,{children:[` `,E]})]})]})]}),(0,Y.jsx)(dn,{className:`py-4`,memberCounts:g,paidMembersEnabled:a,post:e,resource:t,settings:m,visitorCounts:h}),(0,Y.jsx)(I,{className:`my-4 ms-2 shrink-0 bg-control-surface px-4`,variant:`outline`,asChild:!0,children:(0,Y.jsx)(`a`,{"aria-label":j.label,"data-testid":`post-list-item-action`,href:j.href,rel:j.external?`noopener noreferrer`:void 0,target:j.external?`_blank`:void 0,title:j.label,"data-ignore-select":!0,children:(0,Y.jsx)(j.Icon,{})})})]})});return(0,Y.jsx)(Pt,{enabled:d??!1,getItems:l,showGiftLink:u??!1,onAction:p??(()=>{}),onOpenChange:f??(()=>{}),children:ae})}),gn=(0,J.memo)(hn),_n={posts:{title:`Posts`,plural:`posts`,newLabel:`New post`,newHref:`#/editor/post`,emptyTitle:`Start creating content.`,emptyAction:`Write a new post`},pages:{title:`Pages`,plural:`pages`,newLabel:`New page`,newHref:`#/editor/page`,emptyTitle:`Tell the world about yourself.`,emptyAction:`Create a new page`}};function vn(e){return _n[e]}function yn({resource:e,hasFilters:t,onClearFilters:n}){let r=vn(e);return t?(0,Y.jsx)(Se,{actions:(0,Y.jsxs)(I,{onClick:n,children:[`Show all `,r.plural]}),"data-testid":`posts-empty-filtered`,title:`No ${r.plural} match the current filter`,children:(0,Y.jsx)(de,{})}):(0,Y.jsx)(Se,{actions:(0,Y.jsx)(I,{asChild:!0,children:(0,Y.jsx)(`a`,{href:r.newHref,children:r.emptyAction})}),"data-testid":`posts-empty-cold`,title:r.emptyTitle,children:(0,Y.jsx)(A,{})})}var bn=[{value:`draft`,label:`Draft posts`},{value:`published`,label:`Published posts`},{value:`sent`,label:`Email only posts`},{value:`scheduled`,label:`Scheduled posts`},{value:`featured`,label:`Featured posts`}],xn=[{value:`draft`,label:`Draft pages`},{value:`published`,label:`Published pages`},{value:`scheduled`,label:`Scheduled pages`},{value:`featured`,label:`Featured pages`}],Sn=[{value:`public`,label:`Public`},{value:`members`,label:`Members-only`},{value:`[paid,tiers]`,label:`Paid members-only`}],Cn=[{value:`published_at asc`,label:`Oldest first`},{value:`updated_at desc`,label:`Recently updated`}],wn=`Newest first`;function Tn(e){return e===`pages`?xn:bn}function En(e){return e?Cn.find(t=>t.value===e)?.label??e:wn}var Dn=`100`;function On(e){return{value:e.slug,label:e.name||e.email,metadata:{id:e.id}}}var kn=_t({id:`posts.authors`,buildBrowseSearchParams:e=>({limit:Dn,order:`name asc`,...e?{filter:`name:~${c(e)}`}:{}}),buildHydrateFilter:e=>gt(`slug`,e),buildHydrateSearchParams:e=>({filter:e,order:`name asc`}),getMissingSelectedOption:e=>({value:e,label:`Unknown author`}),selectItems:e=>e?.users,useQuery:({enabled:e,searchParams:t})=>we({enabled:e,placeholderData:r,searchParams:t}),toOption:On,debounceMs:250});function An(){return kn()}var jn=`100`;function Mn(e){return{value:e.slug,label:e.name,detail:e.slug,metadata:{id:e.id}}}var Nn=_t({id:`posts.tags`,buildBrowseSearchParams:e=>({limit:jn,order:`name asc`,...e?{filter:`tags.name:~${c(e)}`}:{}}),buildHydrateFilter:e=>gt(`slug`,e),buildHydrateSearchParams:e=>({filter:e,order:`name asc`}),getMissingSelectedOption:e=>({value:e,label:`Unknown tag`}),selectItems:e=>e?.tags,useQuery:({enabled:e,searchParams:t})=>Dt({filter:{},enabled:e,placeholderData:r,searchParams:t}),toOption:Mn,debounceMs:250});function Pn(){return Nn()}var Z=[{value:`is`,label:`is`}];function Fn(e,t,n){return!t||e.some(e=>e.value===t)?e:[...e,{value:t,label:`Unknown ${n}`}]}function In({resource:e,authorValueSource:t,tagValueSource:n,isContributor:r=!1,isAuthorOrContributor:i=!1,params:a={}}){let o={key:`type`,label:`${e===`pages`?`Page`:`Post`} type`,type:`select`,icon:(0,Y.jsx)(E,{className:`size-4`}),operators:Z,options:Fn(Tn(e),a.type,`type`)};if(r)return[o];let s=[o,{key:`visibility`,label:`Access`,type:`select`,icon:(0,Y.jsx)(C,{className:`size-4`}),operators:Z,options:Fn(Sn,a.visibility,`access`)}];return i||s.push({key:`author`,label:`Author`,type:`select`,icon:(0,Y.jsx)(R,{className:`size-4`}),operators:Z,searchable:!0,placeholder:`Search authors`,valueSource:t}),s.push({key:`tag`,label:`Tag`,type:`select`,icon:(0,Y.jsx)(O,{className:`size-4`}),operators:Z,searchable:!0,placeholder:`Search tags`,valueSource:n,className:`w-[320px]`}),s}function Ln(e,t,n){return In({resource:e,authorValueSource:An(),tagValueSource:Pn(),isContributor:!!(t&&Te(t)),isAuthorOrContributor:!!(t&&Ce(t)),params:n})}function Rn({resource:e,filters:t,params:n,currentUser:r,iconOnly:i=!1,viewActions:a,onFiltersChange:o}){let s=Ln(e,r,n),c=t.length>0,l=i&&!c,u=c?(0,Y.jsxs)(b,{className:`shrink-0 sm:absolute sm:top-0 sm:right-0`,gap:`sm`,children:[(0,Y.jsx)(I,{className:`hidden items-center text-muted-foreground hover:text-foreground lg:inline-flex`,type:`button`,variant:`outline`,onClick:()=>o([]),children:`Clear`}),a]}):void 0;return(0,Y.jsx)(b,{align:`center`,className:v(!i&&`w-full`),"data-testid":`posts-filters`,gap:`sm`,children:(0,Y.jsx)(dt,{addButtonClassName:v(l&&`min-w-[34px] gap-0 !px-3 text-[0px] lg:min-w-0 lg:gap-1.5 lg:px-3 lg:text-base`,c&&`gap-0 !px-3 text-[0px]`),addButtonIcon:c?(0,Y.jsx)(P,{className:`size-4`}):(0,Y.jsx)(L,{className:`size-4`}),addButtonText:c?`Add filter`:`Filter`,allowMultiple:!1,className:v(`[&>button]:order-last`,i?`w-auto`:`w-full`,c&&`sm:!pr-40`),clearButton:u,fields:s,filters:t,keyboardShortcut:`f`,popoverAlign:`start`,showClearButton:c,showSearchInput:!1,onChange:o})})}var Q=[`midgrey`,`blue`,`green`,`red`,`teal`,`purple`,`yellow`,`orange`,`pink`];function zn(){return Q[Math.floor(Math.random()*Q.length)]}function Bn(e){let t={};return Fe.forEach(n=>{let r=e[n];r!=null&&r!==``&&(t[n]=r)}),t}function Vn(e,t,n){return{name:e.trim(),route:`posts`,color:n,filter:Bn(t)}}function Hn({isAdmin:e,resource:t,params:n,isDefaultView:r}){return!e||t!==`posts`||r?!1:Fe.some(e=>!!n[e])}function Un(e,t){let n=Bn(t);return e.find(e=>Fe.every(t=>(e.filter[t]??null)===(n[t]??null)))}var Wn=`Saved views could not be read, so nothing was changed`,Gn=`A view with this name already exists`,Kn=`Saved view could not be found`;function qn(e){let t;try{t=JSON.parse(e)}catch{throw Error(Wn)}if(!Array.isArray(t))throw Error(Wn);return t}function Jn(e,t){return e.route===`posts`&&typeof e.name==`string`&&U(e.name)===U(t.name)}function Yn(e,t,n){let r=U(t);return e.some((e,t)=>t!==n&&e.route===`posts`&&typeof e.name==`string`&&U(e.name)===r)}function Xn(e,t,n,r,i){let a=qn(e),o=Vn(t,n,r),s=i?a.findIndex(e=>Jn(e,i)):-1;if(i&&s===-1)throw Error(Kn);if(Yn(a,o.name,s))throw Error(Gn);let c=s===-1?[...a,o]:a.map((e,t)=>t===s?o:e);return JSON.stringify(c)}function Zn(e,t){let n=qn(e),r=n.findIndex(e=>Jn(e,t));if(r===-1)throw Error(Kn);return JSON.stringify(n.filter((e,t)=>t!==r))}var Qn=`Settings are still loading, so nothing was changed`;function $n(e){if(e)return G(e.settings,`shared_views`)??`[]`}function er(){let{data:e}=W(),t=$n(e);if(t===void 0)return[];let n=qe(t);return n.ok?n.views.filter(e=>e.route===`posts`):[]}function tr(){let{data:e}=W(),{mutateAsync:t}=ot(),n=o();return(0,J.useCallback)(async r=>{let i=$n(e);if(i===void 0){let e=Error(Qn);throw n(e,{withToast:!1}),e}let a=r(i);try{await t([{key:`shared_views`,value:a}])}catch(e){throw n(e,{withToast:!1}),e}},[e,t,n])}function nr(){let e=tr();return(0,J.useCallback)(async(t,n,r,i)=>{await e(e=>Xn(e,t,n,r,i))},[e])}function rr(){let e=tr();return(0,J.useCallback)(async t=>{await e(e=>Zn(e,t))},[e])}function ir(e){return Q.includes(e)}function ar({value:e,onChange:t}){return(0,Y.jsx)(b,{gap:`sm`,role:`radiogroup`,children:Q.map(n=>(0,Y.jsx)(`button`,{"aria-checked":n===e,"aria-label":n,className:v(`size-5 rounded-full border-2`,n===e?`border-foreground`:`border-transparent`),role:`radio`,style:{backgroundColor:tt(n)},type:`button`,onClick:()=>{t(n)}},n))})}function or({resource:e,params:t,activeView:n,onClose:r}){let[i,a]=(0,J.useState)(n?.name??``),[o,s]=(0,J.useState)(ir(n?.color)?n.color:zn()),[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(!1),f=nr(),p=rr(),m=_(),h=!!n,g=async()=>{if(u)return;let e=i.trim();if(!e){l(`Please enter a name`);return}d(!0);try{await f(e,t,o,n),r()}catch(e){l(e instanceof Error?e.message:`Failed to save view`)}finally{d(!1)}},v=async()=>{if(!(!n||u)){d(!0);try{await p(n),r(),m(`/${e}`)}catch(e){l(e instanceof Error?e.message:`Failed to delete view`)}finally{d(!1)}}};return(0,Y.jsxs)(x,{gap:`md`,children:[(0,Y.jsx)(nt,{"aria-label":`View name`,placeholder:`Name this view`,value:i,autoFocus:!0,onChange:e=>{a(e.target.value),l(``)},onKeyDown:e=>{e.key===`Enter`&&g()}}),(0,Y.jsx)(ar,{value:o,onChange:s}),c&&(0,Y.jsx)(S,{className:`text-state-danger`,role:`alert`,size:`sm`,children:c}),(0,Y.jsxs)(b,{gap:`sm`,justify:h?`between`:`end`,children:[h&&(0,Y.jsx)(I,{disabled:u,variant:`destructive`,onClick:()=>void v(),children:`Delete`}),(0,Y.jsx)(I,{disabled:u,onClick:()=>void g(),children:h?`Save`:`Save view`})]})]})}function sr({resource:e,params:t,activeView:n}){let[r,i]=(0,J.useState)(!1);return(0,Y.jsxs)(et,{open:r,onOpenChange:i,children:[(0,Y.jsx)(We,{asChild:!0,children:(0,Y.jsx)(I,{"data-testid":`manage-post-view`,variant:`outline`,children:n?`Edit view`:`Save view`})}),(0,Y.jsx)(Ge,{align:`end`,className:`w-72`,children:(0,Y.jsx)(or,{activeView:n,params:t,resource:e,onClose:()=>{i(!1)}},n?.name??`new`)})]})}function cr({order:e,onOrderChange:t}){return(0,Y.jsxs)(Le,{children:[(0,Y.jsx)(Ae,{asChild:!0,children:(0,Y.jsxs)(I,{"aria-label":`Sort: ${En(e)}`,"data-testid":`posts-sort`,variant:`outline`,children:[(0,Y.jsx)(ne,{className:`size-4`}),En(e),(0,Y.jsx)(ue,{className:`size-4`})]})}),(0,Y.jsx)(ke,{align:`end`,children:(0,Y.jsxs)(Je,{value:e??``,onValueChange:e=>{t(e||null)},children:[(0,Y.jsx)(Pe,{value:``,children:wn}),Cn.map(e=>(0,Y.jsx)(Pe,{value:e.value,children:e.label},e.value))]})})]})}var lr=[`scheduled`,`draft`,`publishedAndSent`],ur=[`draft`,`scheduled`,`published`,`sent`],dr={draft:[`draft`],published:[`published`],scheduled:[`scheduled`],sent:[`sent`]};function fr(e){return[...dr[e??``]??ur]}function pr(e){return e.length===1?e[0]:`[${e.join(`,`)}]`}function mr(e){return e.filter(e=>{let t=e[1];return t!=null&&t.trim()!==``}).map(([e,t])=>`${e}:${t}`).join(`+`)}function hr(e,t,{ownAuthorSlug:n}){return[[`tag`,e.tag],[`visibility`,e.visibility],[`status`,pr(t)],[`featured`,e.type===`featured`?`true`:null],[`authors`,n||e.author]]}function gr(e,t={}){return mr(hr(e,fr(e.type),t))}function _r(e){let t=fr(e.type);return lr.filter(e=>e===`publishedAndSent`?t.includes(`published`)||t.includes(`sent`):t.includes(e))}function vr(e,t){return e===`publishedAndSent`?fr(t.type).filter(e=>e===`published`||e===`sent`):[e]}function yr(e,t,n={}){return mr(hr(t,vr(e,t),n))}function br(e,t){return t||(e===`draft`?`updated_at desc`:`published_at desc`)}function xr(e,t,n={}){return{filter:yr(e,t,n),order:br(e,t.order),limit:`30`}}function Sr(e){return`'${[...e].join(`','`)}'`}function Cr(e,t){let{selectedIds:n,inverted:r}=e;return r?t?n.size===0?t:`(${t})+id:-[${Sr(n)}]`:n.size===0?``:`id:-[${Sr(n)}]`:n.size===0?`id:nothing`:`id:[${Sr(n)}]`}function wr(e,t,n){let r=e.indexOf(t),i=e.indexOf(n);return r===-1||i===-1||i===r?[]:i>r?e.slice(r+1,i+1):e.slice(i,r+1)}function Tr(){return{selectedIds:new Set,inverted:!1,lastSelectedId:null,lastShiftGroup:new Set,transient:!1}}var Er=Tr();function Dr(e,t){return e.inverted?!e.selectedIds.has(t):e.selectedIds.has(t)}function Or(e){return!e.inverted&&e.selectedIds.size===1}function kr(e,t){return e.inverted?Math.max(t-e.selectedIds.size,1):e.selectedIds.size}function Ar(e,t){let n=new Set(e.selectedIds),r=n.delete(t);r||n.add(t);let i=e.lastSelectedId;return!r||e.inverted?i=t:e.lastSelectedId===t&&(i=null),{selectedIds:n,inverted:e.inverted,lastSelectedId:i,lastShiftGroup:new Set,transient:!1}}function jr(e,t,n){if(e.lastSelectedId===null)return Ar(e,t);let r=new Set(e.selectedIds);e.lastShiftGroup.forEach(t=>{e.inverted?r.add(t):r.delete(t)});let i=wr(n,e.lastSelectedId,t);return i.forEach(t=>{e.inverted?r.delete(t):r.add(t)}),{selectedIds:r,inverted:e.inverted,lastSelectedId:e.lastSelectedId,lastShiftGroup:new Set(i),transient:!1}}function Mr(e,t){switch(t.type){case`toggle`:return Ar(e,t.id);case`shift`:return jr(e,t.id,t.orderedIds);case`selectAll`:return{selectedIds:new Set,inverted:!e.inverted,lastSelectedId:null,lastShiftGroup:new Set,transient:!1};case`contextMenu`:return Dr(e,t.id)?e:{selectedIds:new Set([t.id]),inverted:!1,lastSelectedId:t.id,lastShiftGroup:new Set,transient:!0};case`keepOnly`:{if(e.inverted)return e;let n=new Set([...e.selectedIds].filter(e=>t.ids.has(e)));return{...e,selectedIds:n,lastShiftGroup:new Set}}case`closeContextMenu`:return e.transient?Tr():e;case`clear`:return Tr();default:return e}}function Nr(){let e=window.getSelection();e&&(e.empty?e.empty():e.removeAllRanges&&e.removeAllRanges())}function Pr({orderedIds:e,allFilter:t,enabled:n}){let[r,i]=(0,J.useReducer)(Mr,Er),[a,o]=(0,J.useState)(!1),s=(0,J.useRef)({orderedIds:e,enabled:n});s.current={orderedIds:e,enabled:n};let c=(0,J.useRef)(t);(0,J.useEffect)(()=>{c.current!==t&&(c.current=t,i({type:`clear`}))},[t]),(0,J.useEffect)(()=>{function e(e){if(!s.current.enabled)return;let t=e.target;if(!(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t?.isContentEditable===!0)){if((e.metaKey||e.ctrlKey)&&!e.shiftKey&&e.key.toLowerCase()===`a`){i({type:`selectAll`}),e.preventDefault();return}e.key===`Escape`&&i({type:`clear`})}}function t(e){o(e.metaKey||e.ctrlKey||e.shiftKey)}function n(){o(!1)}function r(e){s.current.enabled&&(e.target?.closest(`[role="menu"], [role="dialog"], [role="alertdialog"], [role="listbox"]`)||!e.metaKey&&!e.ctrlKey&&i({type:`clear`}))}return window.addEventListener(`keydown`,e),window.addEventListener(`keydown`,t),window.addEventListener(`keyup`,t),window.addEventListener(`click`,r),window.addEventListener(`click`,t),window.addEventListener(`blur`,n),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keydown`,t),window.removeEventListener(`keyup`,t),window.removeEventListener(`click`,r),window.removeEventListener(`click`,t),window.removeEventListener(`blur`,n)}},[]);let l=(0,J.useCallback)((e,t)=>{if(s.current.enabled&&!e.target.closest(`[data-ignore-select]`)){if(e.ctrlKey||e.metaKey)i({type:`toggle`,id:t});else if(e.shiftKey)i({type:`shift`,id:t,orderedIds:s.current.orderedIds});else return;e.preventDefault(),e.stopPropagation(),Nr()}},[]),u=(0,J.useCallback)(e=>{s.current.enabled&&(e.target.closest(`[data-ignore-select]`)||!e.ctrlKey&&!e.metaKey&&!e.shiftKey||(e.preventDefault(),e.stopPropagation(),Nr()))},[]),d=(0,J.useCallback)((e,t)=>{s.current.enabled&&i(e?{type:`contextMenu`,id:t}:{type:`closeContextMenu`})},[]),f=(0,J.useRef)(new Map),p=(0,J.useCallback)(e=>{let t=f.current.get(e);if(t)return t;let n=t=>{d(t,e)};return f.current.set(e,n),n},[d]),m=(0,J.useCallback)(e=>{i({type:`keepOnly`,ids:e})},[]);return{state:r,filter:(0,J.useMemo)(()=>Cr(r,t),[r,t]),modifierHeld:n&&a,isSelected:(0,J.useCallback)(e=>n&&Dr(r,e),[n,r]),clear:(0,J.useCallback)(()=>i({type:`clear`}),[]),keepOnly:m,onRowMouseDown:l,onRowClick:u,getContextMenuOpenHandler:p,enabled:n}}function Fr({user:e,post:t}){if(!e||!t)return!1;let n=Ee(e)||De(e),r=t.status===`published`&&!!t.visibility&&t.visibility!==`public`;return n&&r}function Ir({wasPublished:e,type:t,emailOnly:n,postCount:r}){if(!e)return{primary:`All set!`,secondary:``};let i=typeof r==`number`,a=i?`Boom! It’s out there.`:`Your post is published.`;if(t===`page`)return{primary:a,secondary:`Your page is published.`};if(n)return{primary:a,secondary:`Your email has been sent.`};if(i){let e=r===1?`post`:`posts`;return{primary:a,secondary:`That’s ${y(r)} ${e} published.`}}return{primary:a,secondary:`Spread the word!`}}function Lr({post:e,type:t,wasPublished:n,postCount:r,siteTitle:i,onClose:a}){let o=Ir({wasPublished:n,type:t,emailOnly:e.email_only===!0,postCount:r});return(0,Y.jsx)(pt,{author:e.authors?.[0]?.name??``,emailOnly:e.email_only===!0,featureImageURL:e.feature_image??``,postExcerpt:e.excerpt??e.custom_excerpt??``,postTitle:e.title,postURL:e.url,primaryTitle:o.primary,secondaryTitle:o.secondary,siteTitle:i,open:!0,onClose:a,onOpenChange:e=>{e||a()}})}var $={published:`ghost-last-published-post`,scheduled:`ghost-last-scheduled-post`};function Rr(){let e=localStorage.getItem($.published),t=localStorage.getItem($.scheduled);localStorage.removeItem($.published),localStorage.removeItem($.scheduled);let n=e??t;if(!n)return null;try{let t=JSON.parse(n);return typeof t?.id!=`string`||!t.id?null:{id:t.id,type:typeof t.type==`string`?t.type:`post`,wasPublished:e!==null}}catch{return null}}function zr(){let[e,t]=(0,J.useState)(null),n=(0,J.useRef)(!1);(0,J.useEffect)(()=>{n.current||(n.current=!0,t(Rr()))},[]);let r=e?.type===`page`,i={filter:`id:${e?.id??``}`,limit:`1`,include:`authors,newsletter,email`},{data:a}=f({searchParams:i,enabled:!!e&&!r}),{data:o}=xt({searchParams:i,enabled:!!e&&r}),{data:s}=f({searchParams:{filter:`status:published`,limit:`1`},enabled:e?.wasPublished===!0});return{celebration:e,post:r?o?.pages?.[0]:a?.posts?.[0],postCount:e?.wasPublished?s?.meta?.pagination.total:void 0,dismiss:()=>{t(null)}}}function Br({isRunning:e,onConfirm:t,onCancel:n}){let[r,i]=(0,J.useState)([]),[a,o]=(0,J.useState)(``);return(0,Y.jsx)(ze,{open:!0,onOpenChange:e=>{e||n()},children:(0,Y.jsxs)(st,{"data-testid":`add-tag-modal`,onEscapeKeyDown:e=>{(r.length>0||a.length>0)&&e.preventDefault()},children:[(0,Y.jsxs)(Ie,{children:[(0,Y.jsx)(Oe,{children:`Add tags`}),(0,Y.jsx)(Ve,{children:`Added to everything selected, on top of any tags already applied.`})]}),(0,Y.jsx)(Et,{inputLabel:`Search tags`,selected:r,onAdd:e=>{i(t=>[...t,e])},onRemove:e=>{i(t=>t.filter(t=>wt(t)!==e))},onSearchChange:o}),(0,Y.jsxs)(at,{children:[(0,Y.jsx)(I,{disabled:e,variant:`outline`,onClick:n,children:`Cancel`}),(0,Y.jsx)(I,{disabled:e||r.length===0,onClick:()=>{t(r)},children:e?`Adding`:`Add`})]})]})})}var Vr={delete:{confirm:`Delete`,running:`Deleting`},unpublish:{confirm:`Unpublish`,running:`Unpublishing`},unschedule:{confirm:`Unschedule`,running:`Unscheduling`}};function Hr(e,{count:t,resource:n,title:r,isSingle:i=t===1}){let a=n===`pages`?`page`:`post`,o=i?`this ${a}`:`these ${a}s`,s=i?r?`"${r}"`:`this ${a}`:`${t} ${a}s`,c=e===`delete`?`You’re about to delete ${s}. This is permanent! We warned you, k?`:`You’re about to revert ${s} to a private draft.`;return{title:`Are you sure you want to ${e} ${o}?`,body:c,confirmLabel:Vr[e].confirm,runningLabel:Vr[e].running}}function Ur({count:e,resource:t,isSingle:n}){let r=t===`pages`?`page`:`post`;return n?`Change ${r} access`:`Change ${r} access for ${e} ${r}s`}var Wr=[{value:`public`,label:`Public`},{value:`members`,label:`Members only`},{value:`paid`,label:`Paid-members only`},{value:`tiers`,label:`Specific tier(s)`}];function Gr({resource:e,count:t,isSingle:n,currentVisibility:r,currentTiers:i,isRunning:a,onConfirm:o,onCancel:s}){let{data:c}=W(),l=G(c?.settings,`default_content_visibility`)??`public`,[u,d]=(0,J.useState)(n&&r?r:l),[f,p]=(0,J.useState)(n&&i?i.map(e=>e.id):[]),{data:m}=ft(),h=(m?.tiers??[]).filter(e=>e.type===`paid`&&e.active),g=u!==`tiers`||f.length>0;return(0,Y.jsx)(ze,{open:!0,onOpenChange:e=>{e||s()},children:(0,Y.jsxs)(st,{"data-testid":`change-access-modal`,children:[(0,Y.jsxs)(Ie,{children:[(0,Y.jsx)(Oe,{children:Ur({count:t,resource:e,isSingle:n})}),(0,Y.jsxs)(Ve,{children:[`Controls who can read the selected`,` `,(e===`pages`?`page`:`post`)+(n?``:`s`),`.`]})]}),(0,Y.jsxs)(x,{gap:`md`,children:[(0,Y.jsxs)(he,{value:u,onValueChange:d,children:[(0,Y.jsx)(pe,{"aria-label":`Access`,children:(0,Y.jsx)(me,{})}),(0,Y.jsx)(H,{children:Wr.map(e=>(0,Y.jsx)(V,{value:e.value,children:e.label},e.value))})]}),u===`tiers`&&(0,Y.jsx)(x,{gap:`sm`,children:h.map(e=>(0,Y.jsxs)(b,{align:`center`,gap:`sm`,children:[(0,Y.jsx)(ge,{checked:f.includes(e.id),id:`tier-${e.id}`,onCheckedChange:t=>{p(n=>t?[...n,e.id]:n.filter(t=>t!==e.id))}}),(0,Y.jsx)(`label`,{className:`text-sm`,htmlFor:`tier-${e.id}`,children:e.name})]},e.id))})]}),(0,Y.jsxs)(at,{children:[(0,Y.jsx)(I,{disabled:a,variant:`outline`,onClick:s,children:`Cancel`}),(0,Y.jsx)(I,{disabled:a||!g,onClick:()=>{o({visibility:u,tiers:u===`tiers`?f.map(e=>({id:e})):[]})},children:a?`Saving`:`Save`})]})]})})}function Kr({action:e,resource:t,count:n,title:r,isSingle:i,isRunning:a,onConfirm:o,onCancel:s}){let c=Hr(e,{count:n,resource:t,title:r,isSingle:i});return(0,Y.jsx)(Ke,{open:!0,onOpenChange:e=>{e||s()},children:(0,Y.jsxs)(rt,{"data-testid":`bulk-${e}-modal`,onEscapeKeyDown:e=>{a&&e.preventDefault()},children:[(0,Y.jsxs)(it,{children:[(0,Y.jsx)(Ue,{children:c.title}),(0,Y.jsx)(He,{children:c.body})]}),(0,Y.jsxs)(Ye,{children:[(0,Y.jsx)($e,{disabled:a,children:`Cancel`}),(0,Y.jsx)(Be,{className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,disabled:a,onClick:e=>{e.preventDefault(),o()},children:a?c.runningLabel:c.confirmLabel})]})]})})}var qr=e(Ot(),1),Jr=[{key:`primary_tag`,replacement:`tags.slug`,expansion:`posts_tags.sort_order:0+tags.visibility:public`},{key:`primary_author`,replacement:`authors.slug`,expansion:`posts_authors.sort_order:0+authors.visibility:public`},{key:`authors`,replacement:`authors.slug`},{key:`author`,replacement:`authors.slug`},{key:`tag`,replacement:`tags.slug`},{key:`tags`,replacement:`tags.slug`}];function Yr({posts:e,editedIds:t,filter:n}){let r=(0,qr.default)(n,{expansions:Jr});try{r.queryJSON({})}catch{return e}return e.filter(e=>t.has(e.id)?r.queryJSON(e):!0)}var Xr={unpublish:{action:`unpublish`,message:`unpublished`},unschedule:{action:`unschedule`,message:`unscheduled`},feature:{action:`feature`},unfeature:{action:`unfeature`}};function Zr(e,t){switch(t){case`unpublish`:return e.status===`published`?{...e,status:`draft`}:e;case`unschedule`:return e.status===`scheduled`?{...e,status:`draft`,published_at:void 0}:e;case`feature`:return{...e,featured:!0};case`unfeature`:return{...e,featured:!1};default:return e}}function Qr(e){let t=e[1];if(typeof t!=`string`)return null;try{return new URL(t,window.location.origin).searchParams.get(`filter`)}catch{return null}}function $r({resource:e,onDeleted:t,onEdited:n}){let[r,a]=(0,J.useState)(!1),o=i(),c=d(),u=bt(),f=l(),p=vt(),m=e===`pages`,h=m?`PagesResponseType`:`PostsResponseType`,g=(0,J.useCallback)((e,t)=>{let n=new Set(e.posts.map(e=>e.id)),r=t===`delete`,i=new Set;for(let a of e.bucketFilters)o.setQueriesData({queryKey:[h],predicate:e=>Qr(e.queryKey)===a},o=>{if(!Array.isArray(o?.pageParams)||!o.pages)return o;let s=0,c=0,l=o.pages.map(e=>{let o=m?`pages`:`posts`,l=e[o]??[],u;return r?u=l.filter(e=>!n.has(e.id)):(u=Yr({posts:l.map(e=>n.has(e.id)?Zr(e,t):e),editedIds:n,filter:a}),u.forEach(e=>{n.has(e.id)&&i.add(e.id)})),s+=l.length-u.length,c+=u.length,{...e,[o]:u}});return!r||s===0&&!e.inverted?{...o,pages:l}:{...o,pages:l.map(t=>typeof t.meta?.pagination?.total==`number`?{...t,meta:{...t.meta,pagination:{...t.meta.pagination,total:e.inverted?c:Math.max(0,t.meta.pagination.total-s)}}}:t)}});return i},[o,h,m]),_=(0,J.useCallback)(async(t,r,i)=>{a(!0);try{let a=t===`add-tag`?{type:`addTag`,meta:i}:{type:`access`,meta:i};if(m?await u.mutateAsync({filter:r.filter,action:a}):await c.mutateAsync({filter:r.filter,action:a}),t===`change-access`)s.success(q(`accessUpdated`,{count:r.count,resource:e,isSingle:r.isSingle}));else{let t=`tags`in i?i.tags.length:1;s.success(q(t>1?`tagsAdded`:`tagAdded`,{count:r.count,resource:e,isSingle:r.isSingle}))}n?.(new Set(r.posts.map(e=>e.id))),o.invalidateQueries({queryKey:[h]}),t===`add-tag`&&o.invalidateQueries({queryKey:[`TagsResponseType`]})}catch(e){s.error(e instanceof Error&&e.message?e.message:`That action could not be completed.`)}finally{a(!1)}},[m,e,n,o,h,c,u]);return{run:(0,J.useCallback)(async(r,i)=>{a(!0);try{if(r===`delete`){m?await p.mutateAsync({filter:i.filter}):await f.mutateAsync({filter:i.filter}),g(i,`delete`),o.invalidateQueries({queryKey:[h],refetchType:`none`}),s.success(q(`deleted`,{count:i.count,resource:e,isSingle:i.isSingle})),t?.();return}let a=Xr[r];if(!a)return;let l={filter:i.filter,action:{type:a.action}};m?await u.mutateAsync(l):await c.mutateAsync(l),a.message&&s.success(q(a.message,{count:i.count,resource:e,isSingle:i.isSingle}));let d=g(i,r);o.invalidateQueries({queryKey:[h],refetchType:`none`}),n?.(d)}catch(e){s.error(e instanceof Error&&e.message?e.message:`That action could not be completed.`)}finally{a(!1)}},[m,e,t,n,g,h,o,c,u,f,p]),runWithPayload:_,isRunning:r}}function ei(e){return e.length===1}function ti(e,t){return e.some(e=>e.status===t)}function ni(e){return e.filter(e=>e.featured).length<=e.length/2}function ri(e){let{posts:t,isAdmin:n,membersEnabled:r,canCopyGiftLink:i}=e;if(t.length===0)return[];let a=[],o=(e,t,n={})=>{a.push({key:e,label:t,separated:!1,...n})};return ti(t,`published`)?(ei(t)&&o(`copy-link`,`Copy link to post`),i&&o(`gift-link`,`Share as a gift`),o(`unpublish`,`Unpublish`)):(ei(t)&&o(`copy-preview`,`Copy preview link`),ti(t,`scheduled`)&&o(`unschedule`,`Unschedule`)),t.some(e=>e.status!==`sent`)&&(ni(t)?o(`feature`,`Feature`):o(`unfeature`,`Unfeature`)),o(`add-tag`,`Add a tag`),r&&o(`change-access`,`Change access`),ei(t)&&o(`duplicate`,`Duplicate`),n&&o(`delete`,`Delete`,{destructive:!0,separated:!0}),a}var ii=[`type`,`visibility`,`author`,`tag`],ai={type:null,visibility:null,author:null,tag:null},oi=`is`;function si(e){return ii.includes(e)}function ci(e){return ii.flatMap((t,n)=>{let r=e[t];return r==null||r.trim()===``?[]:[{id:`${t}:${n+1}`,field:t,operator:oi,values:[r]}]})}function li(e){return typeof e==`string`?e===``?null:e:typeof e==`number`||typeof e==`boolean`?String(e):null}function ui(e){let t={...ai};return e.forEach(e=>{si(e.field)&&(t[e.field]=li(e.values[0]))}),t}var di=`order`;function fi(e){let t={};return ii.forEach(n=>{t[n]=e.get(n)}),t.order=e.get(di),t}function pi(e,t){let n=new URLSearchParams(e);return Object.entries(t).forEach(([e,t])=>{t==null||t===``?n.delete(e):n.set(e,t)}),n}function mi(){let[e,t]=h(),n=(0,J.useMemo)(()=>fi(e),[e]),r=(0,J.useMemo)(()=>ci(n),[n]),i=n.order??null,a=(0,J.useCallback)((e,{replace:n=!0}={})=>{t(t=>pi(t,e),{replace:n})},[t]);return{filters:r,params:n,order:i,setFilters:(0,J.useCallback)((e,t)=>{a(ui(e),t)},[a]),setOrder:(0,J.useCallback)((e,t)=>{a({[di]:e},t)},[a]),clearFilters:(0,J.useCallback)(e=>{a(ui([]),e)},[a]),hasFilters:r.length>0}}function hi({items:e,webAnalyticsEnabled:t,membersTrackSources:n}){let r=(0,J.useMemo)(()=>e.filter(e=>e.status===`published`),[e]),i=(0,J.useMemo)(()=>r.map(e=>e.uuid).filter(e=>!!e),[r]),a=(0,J.useMemo)(()=>r.map(e=>e.id),[r]),{data:o}=lt(i,{enabled:t}),{data:s}=ct(a,{enabled:n});return{visitorCounts:o,memberCounts:s}}var gi=()=>{};function _i(e){let t=e.reduce((e,t)=>e+t.total,0),n=e.some(e=>e.isError);if(e.some(e=>e.isLoading))return{items:[],totalItems:t,hasNextPage:!1,isFetchingNextPage:!1,isLoading:!0,isError:n,fetchNextPage:gi};let r=[],i;for(let t of e){if(r.push(t),t.isError)break;if(t.hasNextPage){i=t;break}}return{items:r.flatMap(e=>e.items),totalItems:t,hasNextPage:!!i,isFetchingNextPage:i?.isFetchingNextPage??!1,isLoading:!1,isError:n,fetchNextPage:i?.fetchNextPage??gi}}function vi(e,{resource:t,params:n,context:i},a){let o=xr(e,n,i),s=u({searchParams:o,enabled:a&&t===`posts`,placeholderData:r}),c=yt({searchParams:o,enabled:a&&t===`pages`,placeholderData:r}),l=t===`pages`?c:s;return{bucket:e,items:(t===`pages`?c.data?.pages:s.data?.posts)??[],total:l.data?.meta?.pagination.total??0,hasNextPage:l.hasNextPage,isLoading:a&&l.isLoading,isFetchingNextPage:l.isFetchingNextPage,isError:l.isError,fetchNextPage:()=>{l.fetchNextPage()}}}function yi(e){let t=_r(e.params),n={scheduled:vi(`scheduled`,e,t.includes(`scheduled`)),draft:vi(`draft`,e,t.includes(`draft`)),publishedAndSent:vi(`publishedAndSent`,e,t.includes(`publishedAndSent`))};return _i(lr.filter(e=>t.includes(e)).map(e=>n[e]))}var bi=[`delete`,`unpublish`,`unschedule`],xi=(0,J.lazy)(()=>m(()=>import(`./gift-link-modal-B7u5bD4e.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39]),import.meta.url));function Si({resource:e}){let t=vn(e),{params:n,filters:r,order:i,setFilters:o,setOrder:s,hasFilters:c,clearFilters:l}=mi(),{data:u}=a(),{data:d}=W(),f=g();(0,J.useEffect)(()=>{Ne(e,f.search)},[e,f.search]);let p=G(d?.settings,`timezone`)??void 0,m=!!(u&&Te(u)),h=!!(u&&Ee(u)),_=d?.settings??null,y=(0,J.useMemo)(()=>({webAnalyticsEnabled:G(_,`web_analytics_enabled`)===!0,membersTrackSources:G(_,`members_track_sources`)===!0,emailTrackOpens:G(_,`email_track_opens`)===!0,emailTrackClicks:G(_,`email_track_clicks`)===!0,membersSignupAccess:G(_,`members_signup_access`)??`all`,isMembersInviteOnly:G(_,`members_signup_access`)===`invite`,isContributor:m}),[_,m]),b=G(_,`paid_members_enabled`)===!0,C=er(),w=e===`posts`?Un(C,n):void 0,T=Hn({isAdmin:h,resource:e,params:n,isDefaultView:Ze.some(e=>Un([{...e,route:`posts`}],n))}),E=c,ne=T&&!E,D=!!(u&&Ce(u)),O=u&&D?u.slug:null,{items:k,isLoading:A,isError:re,hasNextPage:ie,isFetchingNextPage:j,fetchNextPage:ae,totalItems:oe}=yi({resource:e,params:n,context:{ownAuthorSlug:O}}),M=Pr({orderedIds:k.map(e=>e.id),allFilter:gr(n,{ownAuthorSlug:O}),enabled:!!u&&!D}),se=(0,J.useMemo)(()=>_r(n).map(e=>yr(e,n,{ownAuthorSlug:O})),[n,O]),N=M.state,P=(0,J.useMemo)(()=>k.filter(e=>Dr(N,e.id)),[k,N]),le=G(_,`members_signup_access`)!==`none`,F=(0,J.useMemo)(()=>ri({posts:P,resource:e,isAdmin:h,membersEnabled:le,canCopyGiftLink:!0}),[P,e,h,le]),L=Or(N)?P[0]:void 0,ue=L&&Fr({user:u,post:L})?L.id:null,[de,R]=(0,J.useState)(null),z=zr(),{data:fe}=Xe(),[B,V]=(0,J.useState)(null),H=$r({resource:e,onDeleted:()=>{V(null),M.clear()},onEdited:e=>{V(null),M.keepOnly(e)}}),pe=(0,J.useRef)(F),me=(0,J.useRef)(()=>{});pe.current=F;let he=(0,J.useCallback)(()=>pe.current,[]),ge=(0,J.useCallback)(e=>me.current(e),[]);me.current=Mt({resource:e,posts:P,onShareAsGift:R,onBulkAction:(e,t)=>{if(e===`feature`||e===`unfeature`){H.run(e,t);return}V({key:e,snapshot:t})},selectionFilter:M.filter,bucketFilters:se,isSingle:Or(N),inverted:N.inverted,count:kr(N,oe)});let{visitorCounts:_e,memberCounts:ve}=hi({items:k,webAnalyticsEnabled:y.webAnalyticsEnabled,membersTrackSources:y.membersTrackSources});return(0,Y.jsx)(ee,{className:`size-full`,children:(0,Y.jsxs)(te,{className:`relative flex h-full flex-col`,size:`page`,children:[(0,Y.jsxs)(ht,{"data-testid":`${e}-page`,children:[(0,Y.jsxs)(ht.Header,{children:[(0,Y.jsxs)(K,{blurredBackground:!1,sticky:!1,children:[(0,Y.jsx)(K.Left,{children:(0,Y.jsx)(K.Title,{children:t.title})}),(0,Y.jsx)(K.Actions,{children:(0,Y.jsxs)(K.ActionGroup,{children:[!E&&(0,Y.jsx)(Rn,{currentUser:u,filters:r,iconOnly:!0,params:n,resource:e,onFiltersChange:o}),(0,Y.jsx)(cr,{order:i,onOrderChange:s}),ne&&(0,Y.jsx)(sr,{activeView:w,params:n,resource:e}),(0,Y.jsx)(I,{asChild:!0,children:(0,Y.jsxs)(`a`,{className:`font-bold`,href:t.newHref,children:[(0,Y.jsx)(ce,{className:`size-4`}),(0,Y.jsx)(`span`,{className:`hidden sm:inline`,children:t.newLabel})]})})]})})]}),E&&(0,Y.jsx)(ut,{children:(0,Y.jsx)(Rn,{currentUser:u,filters:r,params:n,resource:e,viewActions:T&&(0,Y.jsx)(sr,{activeView:w,params:n,resource:e}),onFiltersChange:o})})]}),(0,Y.jsx)(ht.Body,{children:A?(0,Y.jsx)(x,{align:`center`,className:`flex-1`,justify:`center`,children:(0,Y.jsx)(Qe,{size:`lg`})}):re?(0,Y.jsx)(x,{align:`center`,className:`flex-1`,justify:`center`,children:(0,Y.jsxs)(S,{tone:`secondary`,children:[`Error loading `,t.title.toLowerCase()]})}):k.length===0?(0,Y.jsx)(x,{align:`center`,className:`flex-1`,justify:`center`,children:(0,Y.jsx)(yn,{hasFilters:c,resource:e,onClearFilters:l})}):(0,Y.jsxs)(x,{gap:`md`,children:[(0,Y.jsx)(`ul`,{className:v(`border-t border-border-default`,M.modifierHeld&&[`cursor-default`,`[&_li_*]:pointer-events-none [&_li_*]:cursor-default`,`[&_li_[data-ignore-select]]:pointer-events-auto`,`[&_li_[data-ignore-select]]:cursor-pointer`]),"data-ctrl":M.modifierHeld?`true`:void 0,"data-selection":M.state.inverted?`inverted`:void 0,"data-testid":`posts-list`,children:k.map(t=>(0,Y.jsx)(gn,{getMenuItems:he,hasAdminAccess:h,isContributor:m,isSelected:M.isSelected(t.id),memberCounts:ve,menuEnabled:M.enabled,menuOnAction:ge,menuOnOpenChange:M.getContextMenuOpenHandler(t.id),metricsSettings:y,paidMembersEnabled:b,post:t,resource:e,showGiftLink:ue===t.id,timezone:p,visitorCounts:_e,onSelectClick:M.onRowClick,onSelectMouseDown:M.onRowMouseDown},t.id))}),ie&&(0,Y.jsx)(Ct,{isLoading:j,onClick:ae})]})})]}),B&&bi.includes(B.key)&&(0,Y.jsx)(Kr,{action:B.key,count:B.snapshot.count,isRunning:H.isRunning,isSingle:B.snapshot.isSingle,resource:e,title:B.snapshot.posts[0]?.title,onCancel:()=>{V(null)},onConfirm:()=>{H.run(B.key,B.snapshot)}}),B?.key===`add-tag`&&(0,Y.jsx)(Br,{isRunning:H.isRunning,onCancel:()=>{V(null)},onConfirm:e=>{H.runWithPayload(`add-tag`,B.snapshot,{tags:e})}}),B?.key===`change-access`&&(0,Y.jsx)(Gr,{count:B.snapshot.count,currentTiers:B.snapshot.posts[0]?.tiers,currentVisibility:B.snapshot.posts[0]?.visibility,isRunning:H.isRunning,isSingle:B.snapshot.isSingle,resource:e,onCancel:()=>{V(null)},onConfirm:e=>{H.runWithPayload(`change-access`,B.snapshot,e)}}),z.celebration&&z.post&&(0,Y.jsx)(Lr,{post:z.post,postCount:z.postCount,siteTitle:fe?.site.title??``,type:z.celebration.type,wasPublished:z.celebration.wasPublished,onClose:z.dismiss}),de&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(xi,{postId:de,resource:e,source:`context-menu`,open:!0,onOpenChange:e=>{e||R(null)}})})]})})}export{Si as t};
@@ -0,0 +1 @@
1
+ import{i as e,n as t,r as n,t as r}from"./hooks-Cy_-oZ4o.js";var i=[`tags`,`authors`,`authors.roles`,`email`,`tiers`,`newsletter`,`count.clicks`,`post_revisions`,`post_revisions.author`].join(`,`),a=`mobiledoc,lexical`,o=`status:free,status:-free`;function s(){return{formats:a}}function c(){return{formats:a,include:i}}function l(e={}){let t={formats:a};return e.source&&(t.source=e.source),e.newsletter&&(t.newsletter=e.newsletter,e.emailSegment&&(t.email_segment=e.emailSegment===o?`all`:e.emailSegment)),e.saveRevision&&(t.save_revision=`true`),e.convertToLexical&&(t.convert_to_lexical=`true`),t.include=i,t}function u(e={}){let t={formats:a};return e.source&&(t.source=e.source),e.saveRevision&&(t.save_revision=`true`),e.convertToLexical&&(t.convert_to_lexical=`true`),t.include=i,t}var d=[`author_id`,`uuid`,`url`,`send_email_when_published`,`email_recipient_filter`,`email`,`newsletter`,`post_revisions`,`author`],f=[`email_subject`,`email_only`,`email_id`];function p(e,t=`post`){let n={...e};for(let e of d)delete n[e];if(t===`page`)for(let e of f)delete n[e];else delete n.show_title_and_feature_image;return n.visibility===null&&(delete n.visibility,delete n.visibility_filter,delete n.tiers),n.visibility===`tiers`&&delete n.visibility_filter,n.visibility===`tiers`&&!n.tiers?.length&&(delete n.visibility,delete n.tiers),n}var m=`PostsResponseType`,h=m,g=n({dataType:m,path:`/posts/`}),_=r({dataType:m,path:`/posts/`,defaultNextPageParams:(e,t)=>{if(e.meta?.pagination.next)return{...t,page:e.meta.pagination.next.toString()}},returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.posts),r=t[t.length-1].meta;return{posts:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),v=e({dataType:m,path:e=>`/posts/${e}/`}),y=(e,t={})=>{let{searchParams:n,...r}=t;return v(e,{...r,searchParams:{...s(),...n}})},b=e({dataType:m,path:e=>`/posts/${e}/`}),x=(e,t={})=>{let{searchParams:n,...r}=t;return b(e,{...r,searchParams:{...n,...c()}})},S=t({method:`POST`,path:()=>`/posts/`,searchParams:({options:e})=>l(e),body:({post:e})=>({posts:[p(e)]}),requestOptions:({sessionExpiryRedirect:e})=>({sessionExpiryRedirect:e}),invalidateQueries:{dataType:m}}),C=t({method:`PUT`,path:({post:e})=>`/posts/${e.id}/`,searchParams:({options:e})=>l(e),body:({post:e})=>({posts:[p(e)]}),requestOptions:({sessionExpiryRedirect:e})=>({sessionExpiryRedirect:e}),invalidateQueries:{dataType:m}}),w=t({method:`DELETE`,path:({id:e})=>`/posts/${e}/`,requestOptions:({sessionExpiryRedirect:e})=>({sessionExpiryRedirect:e})}),T=t({method:`PUT`,path:()=>`/posts/bulk/`,searchParams:({filter:e})=>({filter:e}),body:({action:e})=>({bulk:{action:e.type,meta:`meta`in e?e.meta:{}}})}),E=t({method:`DELETE`,path:()=>`/posts/`,searchParams:({filter:e})=>({filter:e})}),D=t({method:`POST`,path:e=>`/posts/${e}/copy/`}),O=t({method:`POST`,retry:!1,path:()=>`/posts/upload/`,body:({file:e,mapping:t})=>{let n=new FormData;n.append(`postsfile`,e);for(let[e,r]of Object.entries(t))n.append(`mapping[${e}]`,r);return n}});export{E as a,w as c,O as d,y as f,p as h,_ as i,C as l,c as m,S as n,T as o,u as p,g as r,D as s,h as t,x as u};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-DX3WBWVO.js";import{t}from"./posts-list-screen-o4ZjbgS3.js";var n=e();function r(){return(0,n.jsx)(t,{resource:`posts`})}export{r as default};